# ============================================================================= # Formeleon - Multi-tenant Form Generator # Author: Björn Runden # File: docker-compose.yml # Description: Docker Compose configuration for local development. # ============================================================================= version: '3.8' services: # Formeleon Application app: build: context: . dockerfile: Dockerfile container_name: formeleon-app ports: - "5000:5000" volumes: - .:/app - ./formeleon.db:/app/formeleon.db - ./logs:/app/logs - /tmp/formeleon_uploads:/tmp/formeleon_uploads environment: - FLASK_ENV=development - FLASK_DEBUG=1 - DEV_MODE=true - SECRET_KEY=dev-secret-key-change-in-production - SQLALCHEMY_DATABASE_URI=sqlite:///formeleon.db - ZITADEL_ISSUER= - ZITADEL_CLIENT_ID= - ZITADEL_CLIENT_SECRET= - RECAPTCHA_SITE_KEY= - RECAPTCHA_SECRET_KEY= - RECAPTCHA_THRESHOLD=0.5 - MOCK_RECAPTCHA_SCORE=0.9 - DEV_USER_ROLE=admin - DEV_TENANT_ID=tenant_dev_123 - DEV_USER_NAME=Dev Admin - DEV_USER_EMAIL=dev@formeleon.local - ENABLE_CORS=true - ALLOWED_ORIGINS=* command: flask run --host=0.0.0.0 --port=5000 restart: unless-stopped networks: - formeleon-network # PostgreSQL Database (optional, for production-like development) # Uncomment to use PostgreSQL instead of SQLite # postgres: # image: postgres:15-alpine # container_name: formeleon-postgres # environment: # - POSTGRES_DB=formeleon # - POSTGRES_USER=formeleon # - POSTGRES_PASSWORD=formeleon # volumes: # - postgres_data:/var/lib/postgresql/data # ports: # - "5432:5432" # restart: unless-stopped # networks: # - formeleon-network # Redis for Session Storage (optional) # redis: # image: redis:7-alpine # container_name: formeleon-redis # ports: # - "6379:6379" # volumes: # - redis_data:/data # restart: unless-stopped # networks: # - formeleon-network networks: formeleon-network: driver: bridge # volumes: # postgres_data: # redis_data: