mirror of
https://github.com/warmbly/warmbly.git
synced 2026-08-19 08:01:16 +00:00
103 lines
3.1 KiB
Plaintext
103 lines
3.1 KiB
Plaintext
# ============================================
|
|
# Warmbly Environment Variables Reference
|
|
# ============================================
|
|
# This file documents all environment variables.
|
|
#
|
|
# Configuration Priority Order:
|
|
# 1. Environment variables (direct)
|
|
# 2. AWS SSM/Secrets Manager (if AWS_CONFIG_ENABLED=true)
|
|
#
|
|
# In production with Kubernetes:
|
|
# - ConfigMaps provide non-sensitive env vars
|
|
# - External Secrets Operator syncs secrets from AWS
|
|
# ============================================
|
|
|
|
# === General ===
|
|
APP_ENV=dev # dev | prod
|
|
AWS_CONFIG_ENABLED=false # Set to "true" to enable AWS SSM/Secrets fallback
|
|
|
|
# === AWS (only needed when AWS_CONFIG_ENABLED=true or using AWS services) ===
|
|
AWS_REGION=us-east-1
|
|
AWS_ACCESS_KEY_ID= # Only for local dev
|
|
AWS_SECRET_ACCESS_KEY= # Only for local dev
|
|
|
|
# === Database ===
|
|
PRIMARY_DB=postgres://user:pass@localhost:5432/warmbly_dev
|
|
REDIS=redis://localhost:6379
|
|
|
|
# === Cassandra/Astra ===
|
|
ASTRA_DB_ID=your-db-id
|
|
ASTRA_DB_REGION=us-east-1
|
|
ASTRA_KEYSPACE_NAME=warmbly
|
|
ASTRA_APPLICATION_TOKEN=your-token
|
|
|
|
# === Kafka ===
|
|
KAFKA_BOOTSTRAP_SERVERS=localhost:9092
|
|
KAFKA_SASL_USERNAME= # Optional - leave empty for local dev
|
|
KAFKA_SASL_PASSWORD= # Optional - leave empty for local dev
|
|
KAFKA_CONSUMER_GROUP=consumer-group
|
|
KAFKA_TRACKING_TOPIC=tracking-events
|
|
|
|
# === Schema Registry ===
|
|
SCHEMA_REGISTRY_URL=http://localhost:8081
|
|
SCHEMA_REGISTRY_KEY= # Optional - leave empty for local dev
|
|
SCHEMA_REGISTRY_SECRET= # Optional - leave empty for local dev
|
|
|
|
# === Backend API ===
|
|
API_HOST=0.0.0.0:8080
|
|
API_PORT=8080
|
|
GIN_MODE=debug # debug | release
|
|
WEBSOCKET_URL=ws://localhost:4000/socket
|
|
GEODB_PATH=/path/to/GeoLite2-City.mmdb
|
|
|
|
# === Auth ===
|
|
AUTH_SECRET=your-auth-secret-minimum-32-characters
|
|
GOOGLE_CLIENT_ID=
|
|
GOOGLE_CLIENT_SECRET=
|
|
GOOGLE_REDIRECT_URI=http://localhost:3000/auth/google/callback
|
|
APPLE_APP_ID=
|
|
APPLE_TEAM_ID=
|
|
APPLE_KEY_ID=
|
|
APPLE_KEY_SECRET=
|
|
TURNSTILE_SECRET=
|
|
|
|
# === Stripe ===
|
|
STRIPE_SECRET_KEY=sk_test_...
|
|
STRIPE_WEBHOOK_SECRET=whsec_...
|
|
STRIPE_PUBLISHABLE_KEY=pk_test_...
|
|
|
|
# === Email ===
|
|
EMAIL_NAME=Warmbly
|
|
EMAIL_ADDRESS=notifications@warmbly.com
|
|
TRACKING_DOMAIN=track.warmbly.com
|
|
|
|
# === Tracking Service ===
|
|
TRACKING_HOST=0.0.0.0
|
|
TRACKING_PORT=3000
|
|
|
|
# === Realtime Service (Elixir/Phoenix) ===
|
|
PHX_HOST=localhost
|
|
PORT=4000
|
|
JWT_SECRET=your-64-char-minimum-jwt-secret-for-websocket-authentication
|
|
SECRET_KEY_BASE=your-64-char-minimum-phoenix-secret-key-base
|
|
DATABASE_URL=postgres://user:pass@localhost:5432/warmbly_dev
|
|
DATABASE_POOL_SIZE=10
|
|
REDIS_URL=redis://localhost:6379
|
|
PUBSUB_ENABLED=false
|
|
CHECK_ORIGIN=false
|
|
MAX_CONNECTIONS_PER_USER=10
|
|
MAX_CONNECTIONS_PER_IP=50
|
|
MAX_CONNECTIONS_GLOBAL=100000
|
|
RATE_LIMIT_WS_MESSAGE=120
|
|
RATE_LIMIT_WS_JOIN=30
|
|
RATE_LIMIT_WS_EVENT=60
|
|
|
|
# === GCP ===
|
|
GCP_PROJECT_ID=your-gcp-project # Optional - for Pub/Sub
|
|
GOOGLE_APPLICATION_CREDENTIALS_JSON= # JSON string - for GCP auth
|
|
|
|
# === Observability ===
|
|
SENTRY_DSN= # Optional
|
|
SENTRY_DSN_API= # Optional - separate DSN for API
|
|
LOG_DISCORD_WEBHOOK_URL= # Optional
|