# GoChat Environment Variables # Reference: Chatwoot .env.example pattern — comprehensive env config # Copy to .env and fill in your values. NEVER commit .env to git. # ---- Application ---- GOCHAT_ENV=production GOCHAT_VERSION=v1.0.0 # ---- Server ---- GOCHAT_SERVER_HOST=0.0.0.0 GOCHAT_SERVER_PORT=3000 GOCHAT_SERVER_MODE=release # debug, release, test # ---- Database ---- POSTGRES_HOST=localhost POSTGRES_PORT=5432 POSTGRES_USER=gochat POSTGRES_PASSWORD=CHANGE_ME_TO_A_STRONG_PASSWORD POSTGRES_DB=gochat_production POSTGRES_SSLMODE=disable GOCHAT_DB_MAX_IDLE_CONNS=10 GOCHAT_DB_MAX_OPEN_CONNS=100 GOCHAT_DB_CONN_MAX_LIFETIME=3600 # ---- Redis ---- REDIS_HOST=localhost REDIS_PORT=6379 REDIS_PASSWORD=CHANGE_ME_TO_A_STRONG_PASSWORD REDIS_DB=0 # ---- JWT ---- GOCHAT_JWT_SECRET=CHANGE_ME_TO_A_RANDOM_64_CHAR_STRING GOCHAT_JWT_EXPIRY_HOURS=72 GOCHAT_JWT_ACCESS_EXPIRY_MINUTES=15 GOCHAT_JWT_REFRESH_EXPIRY_HOURS=168 # ---- Logging ---- GOCHAT_LOG_LEVEL=info # debug, info, warn, error GOCHAT_LOG_FORMAT=json # json, text # ---- SMTP / Email ---- SMTP_HOST=smtp.example.com SMTP_PORT=587 SMTP_USERNAME=your-email@example.com SMTP_PASSWORD=your-email-password SMTP_FROM_EMAIL=noreply@example.com # ---- Worker ---- GOCHAT_WORKER_CONCURRENCY=10 # ---- Frontend URL ---- FRONTEND_URL=https://your-domain.com # ---- Monitoring ---- GOCHAT_METRICS_ENABLED=true GOCHAT_METRICS_PORT=9090 # ---- LLM / Captain AI ---- GOCHAT_CAPTAIN_ENABLED=false GOCHAT_CAPTAIN_LLM_PROVIDER=openai # openai, azure, custom GOCHAT_CAPTAIN_LLM_MODEL=gpt-4o GOCHAT_CAPTAIN_LLM_API_KEY=CHANGE_ME_TO_YOUR_LLM_API_KEY GOCHAT_CAPTAIN_LLM_BASE_URL= # custom endpoint, empty for default (https://api.openai.com/v1) GOCHAT_CAPTAIN_EMBEDDING_MODEL=text-embedding-3-small GOCHAT_CAPTAIN_EMBEDDING_DIMS=1536 GOCHAT_CAPTAIN_MAX_TOKENS=4096 GOCHAT_CAPTAIN_TEMPERATURE=0.7 # Legacy OpenAI env vars (also supported by CaptainConfig loading) OPENAI_API_KEY= OPENAI_MODEL=gpt-4o # Volcengine / Douban alternative LLM providers VOLCENGINE_API_KEY= DOUBAN_MODEL= # ---- WebSocket ---- GOCHAT_WS_MAX_MESSAGE_SIZE=65536 # 64KB max WebSocket message size GOCHAT_WS_READ_BUFFER_SIZE=1024 GOCHAT_WS_WRITE_BUFFER_SIZE=1024 GOCHAT_WS_PING_INTERVAL=30 # seconds between keepalive pings GOCHAT_WS_PONG_TIMEOUT=60 # seconds to wait for pong before disconnecting GOCHAT_WS_MAX_SUBSCRIPTIONS=100 # max rooms per client connection # ---- Analytics / Reporting ---- GOCHAT_ANALYTICS_ENABLED=true GOCHAT_ANALYTICS_RETENTION_DAYS=90 # how long to keep reporting events GOCHAT_ANALYTICS_FLUSH_INTERVAL=300 # seconds between rollup flushes # ---- Feature Flags ---- GOCHAT_FEATURE_CAPTAIN_AI=false GOCHAT_FEATURE_AUTO_ASSIGNMENT=true GOCHAT_FEATURE_CSAT=true GOCHAT_FEATURE_CAMPAIGNS=false GOCHAT_FEATURE_MFA=true # ---- OAuth Providers ---- GOCHAT_OAUTH_GOOGLE_CLIENT_ID= GOCHAT_OAUTH_GOOGLE_CLIENT_SECRET= GOCHAT_OAUTH_GOOGLE_REDIRECT_URL=https://your-domain.com/api/v1/auth/google/callback GOCHAT_OAUTH_GOOGLE_SCOPES=openid,email,profile GOCHAT_OAUTH_GITHUB_CLIENT_ID= GOCHAT_OAUTH_GITHUB_CLIENT_SECRET= GOCHAT_OAUTH_GITHUB_REDIRECT_URL=https://your-domain.com/api/v1/auth/github/callback # G10: Twitter/X OAuth 2.0 (PKCE) + Account Activity API GOCHAT_OAUTH_TWITTER_CLIENT_ID= GOCHAT_OAUTH_TWITTER_CLIENT_SECRET= GOCHAT_OAUTH_TWITTER_REDIRECT_URL=https://your-domain.com/api/v1/accounts/:account_id/twitter_channels/oauth_callback GOCHAT_OAUTH_TWITTER_SCOPES=tweet.read,users.read,dm.read,dm.write TWITTER_API_BASE=https://api.twitter.com/2 TWITTER_WEBHOOK_ENV=gochat TWITTER_CRC_SECRET= # G10: Microsoft/Azure AD OAuth 2.0 (Graph API) GOCHAT_OAUTH_MICROSOFT_CLIENT_ID= GOCHAT_OAUTH_MICROSOFT_CLIENT_SECRET= GOCHAT_OAUTH_MICROSOFT_TENANT_ID=common GOCHAT_OAUTH_MICROSOFT_REDIRECT_URL=https://your-domain.com/api/v1/accounts/:account_id/microsoft_channels/oauth_callback GOCHAT_OAUTH_MICROSOFT_SCOPES=Chat.Read,Chat.ReadWrite,offline_access # ---- SAML (Enterprise SSO) ---- GOCHAT_SAML_IDP_METADATA_URL= GOCHAT_SAML_SP_ENTITY_ID=gochat GOCHAT_SAML_SP_ACS_URL=https://your-domain.com/api/v1/auth/saml/acs # ---- LDAP (Enterprise Authentication) ---- GOCHAT_LDAP_ENABLED=false GOCHAT_LDAP_DEFAULT_HOST=ldap.example.com GOCHAT_LDAP_DEFAULT_PORT=389 GOCHAT_LDAP_DEFAULT_USE_TLS=false GOCHAT_LDAP_DEFAULT_BASE_DN=dc=example,dc=com GOCHAT_LDAP_DEFAULT_BIND_DN=cn=admin,dc=example,dc=com GOCHAT_LDAP_DEFAULT_BIND_PASSWORD=CHANGE_ME GOCHAT_LDAP_DEFAULT_USER_FILTER=(objectClass=person) GOCHAT_LDAP_DEFAULT_EMAIL_ATTRIBUTE=mail GOCHAT_LDAP_DEFAULT_NAME_ATTRIBUTE=cn GOCHAT_LDAP_DEFAULT_GROUP_ATTRIBUTE=memberOf GOCHAT_LDAP_SYNC_INTERVAL=3600 # ---- OIDC (Enterprise OAuth/OIDC SSO) ---- GOCHAT_OIDC_ENABLED=false GOCHAT_OIDC_DEFAULT_CLIENT_ID= GOCHAT_OIDC_DEFAULT_CLIENT_SECRET= GOCHAT_OIDC_DEFAULT_REDIRECT_URL=https://your-domain.com/api/v1/oidc/callback GOCHAT_OIDC_DEFAULT_ISSUER_URL=https://accounts.google.com GOCHAT_OIDC_DEFAULT_AUTHORIZATION_URL= GOCHAT_OIDC_DEFAULT_TOKEN_URL= GOCHAT_OIDC_DEFAULT_USER_INFO_URL= GOCHAT_OIDC_DEFAULT_JWKS_URL= GOCHAT_OIDC_DEFAULT_SCOPES=openid,profile,email # ---- Security ---- GOCHAT_RATE_LIMIT_REQUESTS=100 # requests per minute per IP GOCHAT_RATE_LIMIT_WINDOW=60 # seconds GOCHAT_ADMIN_EMAIL=admin@example.com GOCHAT_ADMIN_PASSWORD=CHANGE_ME_TO_A_STRONG_PASSWORD