Files
gochat/.env.example
T
Rogee fa6737e258 refactor: 精简配置体系,移除 OAuth 登录/Rate Limit/Admin env 配置
- 移除 .env.example 中 Feature Flags 段(代码中不存在这些 env var)
- 移除 Google/GitHub OAuth 登录认证代码(auth/oauth.go、auth_handler
  OAuthAuthorize/OAuthCallback 路由、auth_service OAuthLogin),保留
  Twitter/Google 作为消息渠道 provider
- 从 OAuthConfig 移除 GitHub 字段(Google 保留供 channel provider 使用)
- 移除 RateLimitConfig 可配置性,RateLimit 中间件改为硬编码 100 req/min、
  60s window,移除 config/validator/reloader 中的 rate_limit 相关代码
- 移除 .env.example 中 GOCHAT_ADMIN_EMAIL/PASSWORD 配置
- 新增 gochat init 命令:交互式或通过 --email/--password/--name flags
  初始化超级管理员账户,创建默认 Account + AccountUser 关联
2026-07-29 16:26:19 +08:00

120 lines
4.0 KiB
Bash

# 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=prod
GOCHAT_VERSION=v1.0.0
# Keep disabled in production. Enable only for controlled QA/UAT environments.
GOCHAT_ALLOW_FAKE_CHANNEL=false
# ---- Server ----
GOCHAT_SERVER_HOST=0.0.0.0
GOCHAT_SERVER_PORT=3000
GOCHAT_SERVER_MODE=release # debug, release, test
# ---- Database ----
GOCHAT_DATABASE_HOST=localhost
GOCHAT_DATABASE_PORT=5432
GOCHAT_DATABASE_USER=gochat
GOCHAT_DATABASE_PASSWORD=CHANGE_ME_TO_A_STRONG_PASSWORD
GOCHAT_DATABASE_DBNAME=gochat_production
GOCHAT_DATABASE_SSLMODE=disable
GOCHAT_DATABASE_MAX_IDLE_CONNS=10
GOCHAT_DATABASE_MAX_OPEN_CONNS=100
GOCHAT_DATABASE_CONN_MAX_LIFETIME=3600
# ---- Redis ----
GOCHAT_REDIS_HOST=localhost
GOCHAT_REDIS_PORT=6379
GOCHAT_REDIS_PASSWORD=CHANGE_ME_TO_A_STRONG_PASSWORD
GOCHAT_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_ADDRESS=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
# ---- 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
# ---- OAuth Providers ----
# 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