Files
website/.env.example
Stan Runge 2915135ed8 deploy: prod-only pipeline with Drizzle migrations; dev refresh + preview
- push to main builds, backs up prod (pg_dump 17), runs db-migrate + seeds,
  preflights and deploys; rollback = workflow_dispatch with rollback_tag
- staging workflow, promote step and migrate-*.ts / old SQL removed
- DB_URL = app role, DB_MIGRATE_URL = owner role
- scripts/db-refresh-dev.sh (prod dump -> local dev DB), scripts/preview.sh <branch>
2026-10-23 22:03:59 +00:00

42 lines
1.5 KiB
Plaintext
Executable File

# PostgreSQL connections (server only). Never commit real passwords.
# DB_URL: the app role (personal_app: DML only, no DDL).
DB_URL=postgresql://personal_app:CHANGE_ME@localhost:5432/personal_dev
# DB_MIGRATE_URL: the schema owner (personal), used only by drizzle-kit,
# scripts/db-migrate.ts, the seed scripts and deploy backups.
DB_MIGRATE_URL=postgresql://personal:CHANGE_ME@localhost:5432/personal_dev
# Use the exact public origin, including scheme and port. Set the same value for both.
ORIGIN=http://localhost:5173
BETTER_AUTH_URL=http://localhost:5173
# Generate with: openssl rand -base64 48
BETTER_AUTH_SECRET=
# Optional Google login; callback: <BETTER_AUTH_URL>/api/auth/callback/google
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
# Optional osu! login; callback: <BETTER_AUTH_URL>/api/auth/callback/osu
# These can also serve the existing beatmap finder.
OSU_CLIENT_ID=
OSU_CLIENT_SECRET=
SPOTIFY_CLIENT_ID=
SPOTIFY_CLIENT_SECRET=
# Public browser key for Animaldex map tiles.
PUBLIC_MAPTILER_API_KEY=
# Cloudflare R2, shared by Animaldex and admin-uploaded list pictures.
# R2_PUBLIC_URL is the public bucket/custom-domain base URL (without a trailing slash).
R2_ACCOUNT_ID=
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
R2_BUCKET=
R2_PUBLIC_URL=
# House tracker: shared secret for the home worker (openssl rand -hex 32), and
# where alerts go (Discord webhook and/or ntfy topic URL). See docs/house-tracker.md.
HOUSE_WORKER_TOKEN=
HOUSE_DISCORD_WEBHOOK_URL=
HOUSE_NTFY_URL=
HOUSE_NTFY_TOKEN=