Files
VacatureRadar/scripts/unraid_aio_entrypoint.sh
T
Jens 8648b4f4d1
deploy / deploy (push) Canceled after 0s
deploy: consolidate Unraid stack in Dockerman
2026-07-25 23:17:01 +02:00

47 lines
2.2 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
pg_data=/app/local/postgres-aio17
redis_data=/app/local/redis-aio
pg_bin="$(dirname "$(readlink -f "$(command -v pg_config)")")"
fresh_database=0
mkdir -p "$pg_data" "$redis_data" /app/media /app/logs /tmp/celery
chown -R postgres:postgres "$pg_data"
chown -R redis:redis "$redis_data"
chown -R app:app /app/media /app/logs /tmp/celery
if [[ ! -s "$pg_data/PG_VERSION" ]]; then
runuser -u postgres -- "$pg_bin/initdb" -D "$pg_data" --auth-local=trust --auth-host=scram-sha-256
fresh_database=1
fi
runuser -u postgres -- "$pg_bin/pg_ctl" -D "$pg_data" -o "-c listen_addresses=127.0.0.1" -w start
db_name="${POSTGRES_DB:-vacatureradar}"
db_user="${POSTGRES_USER:-vacatureradar}"
db_password="${POSTGRES_PASSWORD:?POSTGRES_PASSWORD ontbreekt}"
export DATABASE_URL="postgresql://${db_user}:${db_password}@127.0.0.1:5432/${db_name}"
export POSTGRES_HOST=127.0.0.1
export REDIS_URL=redis://127.0.0.1:6379/0
runuser -u postgres -- psql --set=ON_ERROR_STOP=1 --set=db_name="$db_name" --set=db_user="$db_user" --set=db_password="$db_password" postgres <<'SQL'
SELECT format('CREATE ROLE %I LOGIN PASSWORD %L', :'db_user', :'db_password')
WHERE NOT EXISTS (SELECT FROM pg_roles WHERE rolname = :'db_user') \gexec
SELECT format('ALTER ROLE %I PASSWORD %L', :'db_user', :'db_password') \gexec
SELECT format('CREATE DATABASE %I OWNER %I', :'db_name', :'db_user')
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = :'db_name') \gexec
SQL
if [[ "$fresh_database" == "1" && -n "${VACATURERADAR_RESTORE_DUMP:-}" && -s "${VACATURERADAR_RESTORE_DUMP}" ]]; then
runuser -u postgres -- pg_restore --no-owner --role="$db_user" --dbname="$db_name" "${VACATURERADAR_RESTORE_DUMP}"
fi
runuser -u postgres -- "$pg_bin/pg_ctl" -D "$pg_data" -m fast -w stop
runuser -u postgres -- "$pg_bin/pg_ctl" -D "$pg_data" -o "-c listen_addresses=127.0.0.1" -w start
runuser -u app -- python manage.py migrate --noinput
if [[ "${VACATURERADAR_AUTO_BOOTSTRAP:-0}" == "1" ]]; then
runuser -u app -- python manage.py bootstrap_instance || true
fi
runuser -u postgres -- "$pg_bin/pg_ctl" -D "$pg_data" -m fast -w stop
exec /usr/bin/supervisord -c /app/deployment/unraid/supervisord.conf