Миграции вынесены из команды api в one-shot сервис migrate, api и worker стартуют после него. /health отвечает 503 при недоступной БД. Отчёт больше MAX_UPLOAD_BYTES (25 МиБ) получает 413, Caddy режет на 30 МБ раньше. Том uploads убран, секреты env_file передаются сервисам явно. В CI добавлена сборка образа бэкенда без push, test_migrations сверяет модели с историей Alembic.
19 lines
346 B
Caddyfile
19 lines
346 B
Caddyfile
{$DOMAIN} {
|
|
encode zstd gzip
|
|
|
|
handle /api/* {
|
|
# outer guard; the API itself answers 413 for a report over MAX_UPLOAD_BYTES (25 MiB)
|
|
request_body {
|
|
max_size 30MB
|
|
}
|
|
reverse_proxy api:8000
|
|
}
|
|
|
|
# Flutter web build (app/build/web), SPA fallback to index.html
|
|
handle {
|
|
root * /srv/app
|
|
try_files {path} /index.html
|
|
file_server
|
|
}
|
|
}
|