Files
formeleon/.env.example
T
br 7f81932fa5
Formeleon Deployment Pipeline / Deploy to Dev Environment (push) Successful in 4s
Formeleon Deployment Pipeline / Deploy to Production Environment (push) Has been skipped
auth ist im kasten
2026-08-04 23:07:18 +02:00

202 lines
6.4 KiB
Bash

# =============================================================================
# Formeleon - Multi-tenant Form Generator
# Author: Björn Runden <br@runden.net>
# File: .env.example
# Description: Environment configuration template. Copy to .env and customize.
# =============================================================================
# =============================================================================
# APPLICATION SETTINGS
# =============================================================================
# Flask Environment: development, production, testing
FLASK_ENV=development
# Secret Key for Flask session management
# Generate with: python -c "import secrets; print(secrets.token_hex(32))"
SECRET_KEY=your-secret-key-change-in-production
# Enable/Disable Debug Mode
FLASK_DEBUG=true
# Development Mode - enables fake auth and mocking
DEV_MODE=true
# Mock Authentication Mode
# When MOCK_AUTH=true AND DEV_MODE=true, uses local mock users instead of Zitadel OIDC
# Useful for local development without external dependencies
MOCK_AUTH=false
# Application name
APP_NAME=formeleon
# Application port (default: 5000)
PORT=5000
# =============================================================================
# MOCK USER SETTINGS (used when MOCK_AUTH=true and DEV_MODE=true)
# =============================================================================
# Mock user credentials (only used in mock auth mode)
MOCK_USER_ID=mock_user_001
MOCK_USER_ROLE=admin
MOCK_USER_NAME=Mock Admin
MOCK_USER_EMAIL=mock@formeleon.local
MOCK_TENANT_ID=mock_tenant_001
# =============================================================================
# DEVELOPMENT USER SETTINGS (used when DEV_MODE=true but MOCK_AUTH=false)
# =============================================================================
# Dev Mode User Role (admin, tenant_admin, user, viewer)
DEV_USER_ROLE=admin
# Dev Mode Tenant ID
DEV_TENANT_ID=tenant_dev_123
# Dev Mode User Name
DEV_USER_NAME="Dev Admin"
# Dev Mode User Email
DEV_USER_EMAIL=dev@formeleon.local
# =============================================================================
# DATABASE SETTINGS
# =============================================================================
# SQLite (default for development)
# SQLALCHEMY_DATABASE_URI=sqlite:///instance/formeleon.db
# PostgreSQL
# SQLALCHEMY_DATABASE_URI=postgresql://username:password@localhost/formeleon
# MySQL
# SQLALCHEMY_DATABASE_URI=mysql+pymysql://username:password@localhost/formeleon
# Enable SQL query logging
SQLALCHEMY_ECHO=false
# =============================================================================
# ZITADEL OIDC SETTINGS
# =============================================================================
# Zitadel Issuer URL (OIDC Provider)
# Example: https://your-zitadel-instance.zitadel.cloud
ZITADEL_ISSUER=
# OIDC Client ID from Zitadel
ZITADEL_CLIENT_ID=
# OIDC Client Secret from Zitadel
ZITADEL_CLIENT_SECRET=
# Redirect URI for OIDC callback
# Default: http://localhost:5000/auth/callback
ZITADEL_REDIRECT_URI=http://localhost:5000/auth/callback
# OIDC Scopes (comma-separated)
# ZITADEL_SCOPES=openid,profile,email
# =============================================================================
# RECAPTCHA SETTINGS
# =============================================================================
# Google reCAPTCHA v3 Site Key (for client-side)
RECAPTCHA_SITE_KEY=
# Google reCAPTCHA v3 Secret Key (for server-side validation)
RECAPTCHA_SECRET_KEY=
# Minimum score threshold (0.0 - 1.0, default: 0.5)
RECAPTCHA_THRESHOLD=0.5
# Mock score for development mode (default: 0.9)
MOCK_RECAPTCHA_SCORE=0.9
# =============================================================================
# CORS SETTINGS
# =============================================================================
# Enable CORS (default: true)
ENABLE_CORS=true
# Allowed Origins (comma-separated, default: *)
ALLOWED_ORIGINS=*
# =============================================================================
# SESSION SETTINGS
# =============================================================================
# Session Cookie Secure (HTTPS only, default: false for development)
SESSION_COOKIE_SECURE=false
# Session Cookie SameSite (Lax, Strict, None)
SESSION_COOKIE_SAMESITE=Lax
# Session lifetime in seconds (default: 3600 = 1 hour)
PERMANENT_SESSION_LIFETIME=3600
# =============================================================================
# FILE UPLOAD SETTINGS
# =============================================================================
# Maximum upload size in bytes (default: 16MB = 16 * 1024 * 1024)
MAX_CONTENT_LENGTH=16777216
# Upload folder
UPLOAD_FOLDER=/tmp/formeleon_uploads
# Allowed file extensions (comma-separated)
# ALLOWED_EXTENSIONS=png,jpg,jpeg,gif,pdf,txt
# =============================================================================
# EMAIL SETTINGS (for notifications)
# =============================================================================
# SMTP Server
# SMTP_SERVER=localhost
# SMTP_PORT=587
# SMTP_USERNAME=
# SMTP_PASSWORD=
# SMTP_USE_TLS=true
# EMAIL_FROM=formeleon@yourdomain.com
# =============================================================================
# LOGGING SETTINGS
# =============================================================================
# Log Level: DEBUG, INFO, WARNING, ERROR, CRITICAL
# LOG_LEVEL=INFO
# =============================================================================
# PRODUCTION SETTINGS
# =============================================================================
# Default page size for paginated responses
DEFAULT_PAGE_SIZE=20
# Maximum page size for paginated responses
MAX_PAGE_SIZE=100
# =============================================================================
# NOTES FOR PRODUCTION
# =============================================================================
# For production deployment:
# 1. Set FLASK_ENV=production
# 2. Set FLASK_DEBUG=false
# 3. Set DEV_MODE=false
# 4. Set MOCK_AUTH=false
# 5. Set SESSION_COOKIE_SECURE=true
# 6. Set SESSION_COOKIE_SAMESITE=Strict
# 7. Configure proper ZITADEL_* settings
# 8. Configure proper RECAPTCHA_* settings
# 9. Use a production-ready database (PostgreSQL, MySQL)
# 10. Generate a strong SECRET_KEY
# 11. Restrict ALLOWED_ORIGINS to your specific domains
# 12. Set up proper HTTPS/TLS
# For local development without external services:
# 1. Set DEV_MODE=true
# 2. Set MOCK_AUTH=true (optional, for pure local mocking)
# 3. Optionally configure ZITADEL_* settings if you have a local Zitadel instance