# --- PostgreSQL (dockerized) --- DB_HOST=localhost DB_PORT=5432 DB_USER=platform DB_PASSWORD=change-me-strong-password DB_NAME=platform DATABASE_URL=postgres://platform:change-me-strong-password@localhost:5432/platform?sslmode=disable # --- Redis (dockerized, session / refresh-token state) --- REDIS_HOST=localhost REDIS_PORT=6379 REDIS_PASSWORD=change-me-strong-redis-password REDIS_URL=redis://:change-me-strong-redis-password@localhost:6379/0 # --- JWT / Auth --- # Generate with: openssl rand -base64 48 JWT_SECRET=change-me-to-a-long-random-secret ACCESS_TOKEN_TTL_MINUTES=15 REFRESH_TOKEN_TTL_HOURS=168 # --- Server --- PORT=8080 GIN_MODE=debug CORS_ORIGIN=http://localhost:5173 # Cookie Secure flag for the refresh token cookie. Defaults to false only # when GIN_MODE=debug (plain http:// on localhost); set to true in any # environment served over HTTPS. COOKIE_SECURE=false # --- Seed (initial admin account, cmd/seed) --- SEED_ADMIN_EMAIL=admin@example.com SEED_ADMIN_PASSWORD=change-me-strong-password # --- Media storage (module: media) --- # "local" saves files under MEDIA_LOCAL_DIR and serves them from /uploads. # "s3" uploads to any S3-compatible bucket (AWS S3, MinIO, Cloudflare R2, ...). MEDIA_STORAGE_DRIVER=local MEDIA_MAX_UPLOAD_MB=10 MEDIA_LOCAL_DIR=./uploads MEDIA_LOCAL_BASE_URL=http://localhost:8080/uploads # Only required when MEDIA_STORAGE_DRIVER=s3: S3_BUCKET= S3_REGION= S3_ENDPOINT= S3_ACCESS_KEY_ID= S3_SECRET_ACCESS_KEY= S3_USE_PATH_STYLE=false S3_PUBLIC_BASE_URL=