Files
aliasvault/dockerfiles/s6-scripts/api/run

30 lines
1.0 KiB
Plaintext

#!/command/with-contenv bash
cd /app/api
# Read PostgreSQL password from file
POSTGRES_PASSWORD=$(cat /secrets/postgres_password)
# Wait for PostgreSQL to be ready
echo "[api] Waiting for PostgreSQL to be ready..."
for i in {1..30}; do
if PGPASSWORD="$POSTGRES_PASSWORD" /usr/lib/postgresql/16/bin/psql -h localhost -U aliasvault -d aliasvault -c "SELECT 1;" >/dev/null 2>&1; then
echo "[api] PostgreSQL ready, starting API..."
break
fi
if [ $i -eq 30 ]; then
echo "[api] Timeout waiting for PostgreSQL"
exit 1
fi
sleep 2
done
export ConnectionStrings__AliasServerDbContext="Host=localhost;Database=aliasvault;Username=aliasvault;Password=$POSTGRES_PASSWORD"
export ASPNETCORE_URLS="http://0.0.0.0:3001"
export ASPNETCORE_PATHBASE="/api"
export PRIVATE_EMAIL_DOMAINS="${PRIVATE_EMAIL_DOMAINS:-}"
export PUBLIC_REGISTRATION_ENABLED="${PUBLIC_REGISTRATION_ENABLED:-true}"
export IP_LOGGING_ENABLED="${IP_LOGGING_ENABLED:-true}"
echo "[api] Starting API service..."
exec dotnet AliasVault.Api.dll