Files
PangolinSentinel/entrypoint.sh
T

42 lines
1.2 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" "$DATA_PATH/.ssh"
export HOME="$DATA_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 with persistent home in DATA_PATH
if ! getent passwd pangolin >/dev/null 2>&1; then
useradd -u "$PUID" -g "$PGID" -d "$DATA_PATH" -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