# ============================================================================= # DailyMeals environment configuration # Copy this file to ".env" and fill in real values. Never commit ".env". # ============================================================================= # ---- Database (external PostgreSQL server) ---------------------------------- # PostgreSQL connection string in Npgsql format. The database already exists and # is already populated — the app only connects, it does not create or migrate it. # Example: DB_CONNECTION_STRING=Host=your-db-host;Port=5432;Database=mealplan;Username=user;Password=secret # ---- JWT authentication ----------------------------------------------------- # Secret signing key for JWT access tokens. MUST be at least 32 characters. # Generate one with: openssl rand -base64 48 JWT_SECRET=replace-with-a-long-random-secret-at-least-32-chars # Token issuer and audience (any stable identifiers for your deployment). JWT_ISSUER=DailyMeals JWT_AUDIENCE=DailyMeals # ---- CORS ------------------------------------------------------------------- # The exact origin the browser uses to reach the frontend. The API only allows # cross-origin requests from this origin. Behind the bundled nginx (same origin) # CORS is not strictly required, but set it to your public URL for safety. # Example for local docker compose: https://localhost # Production: https://meals.example.com (must match the browser URL exactly) CORS_ALLOWED_ORIGIN=https://localhost # ---- Production TLS (optional, Linux server with Let's Encrypt) -------------- # Used with docker-compose.tls.yml — paths on the HOST, mounted into nginx. # TLS_CERT_PATH=/etc/letsencrypt/live/meals.example.com/fullchain.pem # TLS_KEY_PATH=/etc/letsencrypt/live/meals.example.com/privkey.pem