41 lines
1.1 KiB
Bash
Executable File
41 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# Ensure data and backup directories exist
|
|
DATA_PATH="${DATA_DIR:-/data}"
|
|
BACKUP_PATH="${BACKUP_DIR:-/backups}"
|
|
|
|
mkdir -p "$DATA_PATH" "$BACKUP_PATH"
|
|
|
|
# Set secure permissions on SSH private key if it exists
|
|
if [ -f "$DATA_PATH/id_ed25519" ]; then
|
|
chmod 600 "$DATA_PATH/id_ed25519" 2>/dev/null || true
|
|
fi
|
|
|
|
# Optional PUID / PGID support (standard for Unraid / Linuxserver containers)
|
|
PUID=${PUID:-0}
|
|
PGID=${PGID:-0}
|
|
|
|
if [ "$PUID" -ne 0 ] && [ "$PGID" -ne 0 ]; then
|
|
# Create or update group
|
|
if ! getent group pangolin >/dev/null 2>&1; then
|
|
groupadd -g "$PGID" pangolin 2>/dev/null || true
|
|
fi
|
|
|
|
# Create or update user
|
|
if ! getent passwd pangolin >/dev/null 2>&1; then
|
|
useradd -u "$PUID" -g "$PGID" -d /app -s /bin/bash pangolin 2>/dev/null || true
|
|
fi
|
|
|
|
# Ensure ownership of persistent data and backup volumes
|
|
chown -R "$PUID:$PGID" "$DATA_PATH" "$BACKUP_PATH" 2>/dev/null || true
|
|
|
|
if [ -f "$DATA_PATH/id_ed25519" ]; then
|
|
chmod 600 "$DATA_PATH/id_ed25519" 2>/dev/null || true
|
|
fi
|
|
|
|
exec gosu "$PUID:$PGID" "$@"
|
|
else
|
|
exec "$@"
|
|
fi
|