Initial commit

This commit is contained in:
2026-06-04 06:24:56 +02:00
commit 282f4864c4
111 changed files with 8083 additions and 0 deletions

32
.env.example Normal file
View File

@@ -0,0 +1,32 @@
# =============================================================================
# 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