017e3a61a8
Address issue #20 and the CI divergence between Gitea and GitHub. Issue #20 (staging seeded from a prod snapshot): - Read SECRET_KEY from the environment with the insecure dev key as fallback, so each deployment can have its own key. - Add a `scrub_staging` management command that clears django_session and the django-q schedule/queue/results, removing copied prod sessions and the inherited convert_prices() schedule. - Run the scrub from entrypoint.sh when STAGING=true, and wire STAGING plus a per-branch SECRET_KEY into the Gitea staging deploy. CI parity (both systems kept, independent): - Add the Node/pnpm/TypeScript build steps to the Gitea build workflow to match the GitHub test job. - Add a GitHub staging workflow that deploys per-branch ephemeral instances to Fly.io (*.fly.dev) with a fresh database seeded from sample fixtures and its own SECRET_KEY, never production data. Tears the app down on branch delete and comments the URL on the open PR via github-script. - Add fly.staging.toml and a LOAD_SAMPLE_DATA entrypoint hook for the fresh-database public staging. https://claude.ai/code/session_01KYjUcNjLfZ8Hq1GAC8J4oZ
30 lines
801 B
TOML
30 lines
801 B
TOML
# Shared Fly.io configuration for ephemeral, per-branch GitHub staging deploys.
|
|
#
|
|
# The app name is NOT set here on purpose; each branch supplies its own via
|
|
# `flyctl deploy --app timetracker-staging-<slug>`. These instances run with a
|
|
# fresh database seeded from sample fixtures (never production data) and their
|
|
# own SECRET_KEY, so they are safe to expose on a public *.fly.dev hostname.
|
|
|
|
primary_region = "ams"
|
|
|
|
[build]
|
|
dockerfile = "Dockerfile"
|
|
|
|
[env]
|
|
PROD = "1"
|
|
TZ = "Europe/Prague"
|
|
DATA_DIR = "/home/timetracker/app/data"
|
|
LOAD_SAMPLE_DATA = "true"
|
|
CREATE_DEFAULT_SUPERUSER = "true"
|
|
|
|
[http_service]
|
|
internal_port = 8000
|
|
force_https = true
|
|
auto_stop_machines = "stop"
|
|
auto_start_machines = true
|
|
min_machines_running = 0
|
|
|
|
[[vm]]
|
|
size = "shared-cpu-1x"
|
|
memory = "512mb"
|