-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.development.example
More file actions
163 lines (134 loc) · 6.84 KB
/
Copy path.env.development.example
File metadata and controls
163 lines (134 loc) · 6.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# =============================================================================
# ATRIA BACKEND ENVIRONMENT CONFIGURATION
# =============================================================================
# Copy this file to .env.development for local development
# This file is loaded INTO the backend container via docker-compose env_file
# Update values as needed for your environment
# =============================================================================
# DATABASE CONFIGURATION (Required)
# =============================================================================
POSTGRES_USER=dev_user
POSTGRES_PASSWORD=dev_password
POSTGRES_DB=atria_dev
POSTGRES_PORT=5432
# CRITICAL: Flask-SQLAlchemy Database URI
# This must match the PostgreSQL credentials above
# Format: postgresql://username:password@host:port/database
# For Docker Compose, use "db" as the host (service name)
SQLALCHEMY_DATABASE_URI=postgresql://dev_user:dev_password@db:5432/atria_dev
# =============================================================================
# FLASK APPLICATION CONFIGURATION
# =============================================================================
# Flask application module (don't change unless you know what you're doing)
FLASK_APP=api.wsgi:app
# Flask environment (development, production, testing)
FLASK_ENV=development
# Enable Flask debug mode (True for development, False for production)
FLASK_DEBUG=1
# Logging level (debug, info, warning, error, critical)
LOG_LEVEL=debug
# Backend API Port
BACKEND_PORT=5000
# Gunicorn worker processes (production only - use 1 for development)
GUNICORN_WORKERS=1
# =============================================================================
# FRONTEND CONFIGURATION
# =============================================================================
# Frontend Development Server Port
FRONTEND_PORT=5173
# Frontend API URL (used by Vite dev server)
# For local development: http://localhost:5000/api
# For production: https://your-domain.com/api
VITE_API_URL=http://localhost:5000/api
# Frontend public URL (used in emails, invitations, etc.)
FRONTEND_URL=http://localhost:5173
# =============================================================================
# SECURITY & AUTHENTICATION (Required for Production)
# =============================================================================
# Secret keys for Flask and JWT (CHANGE IN PRODUCTION!)
# Generate secure keys: python -c "import secrets; print(secrets.token_urlsafe(32))"
SECRET_KEY=change-this-secret-key-in-production
JWT_SECRET_KEY=change-this-jwt-secret-in-production
# Encryption key for storing sensitive data in database
# Generate: python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
ENCRYPTION_KEY=change-this-encryption-key-in-production
# JWT Token Expiration (in seconds)
JWT_ACCESS_TOKEN_EXPIRES=3600 # 1 hour
JWT_REFRESH_TOKEN_EXPIRES=2592000 # 30 days
# =============================================================================
# FILE STORAGE - MinIO/S3 Configuration (Optional but Recommended)
# =============================================================================
# MinIO handles file uploads (event logos, banners, sponsor logos, documents, etc.)
# Note: User avatars are handled by a separate avatars service, not MinIO
# You can use MinIO (self-hosted) or AWS S3 (cloud-hosted)
#
# NOTE: The application will run WITHOUT MinIO (graceful degradation)
# but event/sponsor image storage and retrieval will not function.
# If you start MinIO after the backend has started, you must
# RESTART the backend service for it to detect MinIO availability.
# (Connection check happens at startup)
# MinIO Endpoint (internal cluster address or external URL)
# Development: localhost:9000
# Production K8s: minio-api.infrastructure.svc.cluster.local:9000
# Production External: storage.your-domain.com
MINIO_ENDPOINT=localhost:9000
# MinIO Access Credentials
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
# Use SSL/TLS for MinIO connection
MINIO_USE_SSL=false
# External URL for presigned URLs (what browsers will use)
# For local development: http://localhost:9000
# For production: https://storage.your-domain.com
MINIO_EXTERNAL_URL=http://localhost:9000
# Optional: Custom bucket names (defaults shown)
# MINIO_BUCKET_PUBLIC=atria-public
# MINIO_BUCKET_AUTHENTICATED=atria-authenticated
# MINIO_BUCKET_PRIVATE=atria-private
# =============================================================================
# EMAIL CONFIGURATION (Optional but recommended)
# =============================================================================
# Required for sending invitation emails and transactional notifications
# Sign up for free tier at https://www.smtp2go.com/
#
# NOTE: The application will run WITHOUT email configuration (graceful degradation)
# but invitation emails and password resets will not function.
SMTP2GO_API_KEY=your_smtp2go_api_key_here
MAIL_DEFAULT_SENDER=noreply@your-domain.com
# =============================================================================
# REDIS CONFIGURATION (Optional)
# =============================================================================
# Redis provides caching, presence tracking, typing indicators, and Socket.IO clustering
# The application works without Redis (graceful degradation) but with reduced features
# Production deployments should use Redis for optimal performance
# Redis Connection URL
# Format: redis://host:port/db_number
# Leave empty/commented for in-memory mode (dev only)
# REDIS_URL=redis://localhost:6379/0
# Socket.IO Redis adapter (enables multi-instance scaling)
# Uses DB 1 for pub/sub clustering
# SOCKETIO_REDIS_URL=redis://localhost:6379/1
# =============================================================================
# SOCKET.IO / REAL-TIME FEATURES
# =============================================================================
# Force HTTP long-polling instead of WebSocket (testing/debugging only)
# VITE_FORCE_HTTP_FALLBACK=true
# =============================================================================
# DATABASE SEEDING (Development Only)
# =============================================================================
# Automatically seed the database with sample data on startup
# Includes: test organizations, events, sessions, users, and connections
#
# Set to 'true' for first-time setup (recommended for exploring features)
# Set to 'false' if you want to start with an empty database
#
# Note: Seeding is idempotent - it won't duplicate data if run multiple times
# Default: true (enabled)
SEED_DB=true
# =============================================================================
# DEVELOPMENT FLAGS (Optional)
# =============================================================================
# Enable SQL query logging for debugging
# SQLALCHEMY_ECHO=true
# Enable Celery background tasks (not currently used, future feature)
# USE_CELERY=false