second commit
This commit is contained in:
+155
@@ -0,0 +1,155 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user