kirche-einfach/backend/entrypoint.sh

23 lines
798 B
Bash

#!/bin/sh
# Backend entrypoint (dev + prod): migrate, then serve.
# APP_ENV=dev (set via devcontainer.json containerEnv, attached container
# only) enables autoreload. Anything else runs the plain production server.
set -e
cd /srv/kirche-einfach/backend
# Runtime SQLite file lives in the bind-mount: ensure the dir exists and is
# owned by vscode (the entrypoint runs as root, but the editor runs as
# vscode — a root-owned data/ dir made the DB unwritable).
mkdir -p data
if id vscode >/dev/null 2>&1; then
chown -R vscode:vscode data 2>/dev/null || true
fi
/opt/venv/bin/alembic upgrade head
if [ "${APP_ENV:-prod}" = "dev" ]; then
exec /opt/venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
else
exec /opt/venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8000
fi