29 lines
1,007 B
Bash
29 lines
1,007 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
|
|
|
|
# Migrate ran as root: hand the (possibly just created) DB files back to
|
|
# vscode so editor-run commands stay writable.
|
|
if id vscode >/dev/null 2>&1; then
|
|
chown -R vscode:vscode data 2>/dev/null || true
|
|
fi
|
|
|
|
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
|