diff --git a/.env.example b/.env.example index 1a9d508..2734c8b 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,20 @@ # Cyclone — environment configuration # Copy this file to `.env.local` and fill in values for your environment. -# Base URL for the Python (FastAPI) backend that powers the Upload page and -# the real /api/parse-837 + /api/parse-835 endpoints. Leave empty to keep -# the in-memory sample data store and disable real EDI parsing. -VITE_API_BASE_URL=http://localhost:8000 +# Required on first boot. Cyclone refuses to start without these unless +# at least one user already exists (e.g. seeded via `python -m cyclone users create`). +# Min 12 chars for password. +CYCLONE_ADMIN_USERNAME=admin +CYCLONE_ADMIN_PASSWORD=change-me-to-a-strong-password-min-12-chars + +# Base URL for the Python (FastAPI) backend. Leave empty for the +# Docker deployment (nginx proxies /api/* to backend on compose network). +VITE_API_BASE_URL= + +# Optional. Set to 1 if you're behind an HTTPS reverse proxy and want +# the session cookie to include the Secure flag. +# CYCLONE_BEHIND_HTTPS=1 + +# Optional. Set to 1 to disable auth entirely (DEV ONLY). When set, +# the backend auto-grants admin access without checking credentials. +# CYCLONE_AUTH_DISABLED=0 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index a4c2fdc..2601fba 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -41,6 +41,12 @@ services: CYCLONE_RELOAD: "0" # Absolute path inside the container; the named volume mounts at /data. CYCLONE_DB_URL: "sqlite:////data/cyclone.db" + # Bootstrap admin (required on first boot unless at least one user + # already exists). The ${VAR:?msg} syntax makes docker-compose refuse + # to start with a clear error if the env var isn't set in the host + # environment. + CYCLONE_ADMIN_USERNAME: ${CYCLONE_ADMIN_USERNAME:?CYCLONE_ADMIN_USERNAME is required on first boot} + CYCLONE_ADMIN_PASSWORD: ${CYCLONE_ADMIN_PASSWORD:?CYCLONE_ADMIN_PASSWORD is required on first boot (min 12 chars)} volumes: - cyclone-data:/data # The healthcheck in the Dockerfile hits /api/health. The frontend