#!/usr/bin/env bash set -euo pipefail pg_data=/app/local/postgres-aio17 redis_data=/app/local/redis-aio pg_bin="$(pg_config --bindir)" 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 check --deploy 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