# Copy to .env and adjust. Real environment variables take precedence over this file. # Optional features (SMTP, captcha, OAuth, Stripe, admin) switch on when their keys are set. APP_NAME=Skeleton # development | production ENVIRONMENT=development # Public URL, used in emails and OAuth callbacks. https:// enables secure cookies. BASE_URL=http://localhost:8000 HTTP_ADDR=:8000 # debug | info | warn | error LOG_LEVEL=info # --- Database --------------------------------------------------------------- # sqlite (default, zero setup) or postgres DB_DRIVER=sqlite DATABASE_URL=data/app.db # DB_DRIVER=postgres # DATABASE_URL=postgres://postgres:postgres@localhost:5432/app?sslmode=disable # Used by compose.yml / compose.dev.yml to create the Postgres database POSTGRES_USER=postgres POSTGRES_PASSWORD=postgres POSTGRES_DB=app # --- Email ------------------------------------------------------------------- # Leave SMTP_HOST empty to print emails to the console. # With `make services`, use SMTP_HOST=localhost SMTP_PORT=1025 and open http://localhost:8025 SMTP_HOST= SMTP_PORT=587 SMTP_USER= SMTP_PASS= SMTP_FROM=no-reply@example.com # --- Cloudflare Turnstile (optional) ------------------------------------------ # Test keys that always pass: 1x00000000000000000000AA / 1x0000000000000000000000000000000AA TURNSTILE_SITE_KEY= TURNSTILE_SECRET_KEY= # --- OAuth providers (optional) ----------------------------------------------- # Callback URLs: $BASE_URL/oauth/google/callback and $BASE_URL/oauth/github/callback GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET= # --- Stripe (optional) ------------------------------------------------------- # Webhook endpoint: $BASE_URL/webhooks/stripe # Local testing: stripe listen --forward-to localhost:8000/webhooks/stripe STRIPE_SECRET_KEY= STRIPE_PRICE_ID= STRIPE_WEBHOOK_SECRET= # --- Admin (optional) ---------------------------------------------------------- # /admin is protected with HTTP basic auth and disabled while ADMIN_PASS is empty. ADMIN_USER=admin ADMIN_PASS= # --- Production only ----------------------------------------------------------- # Domain served by Caddy (compose.yml). Caddy obtains TLS certificates automatically. DOMAIN=example.com