Add Docker Compose quickstart
This commit is contained in:
+35
-30
@@ -618,36 +618,41 @@ func LoadWithEnv(env string) (*Config, error) {
|
||||
// Bind specific env keys that viper can't auto-infer for nested structs
|
||||
// These are common overrides that users set via environment variables
|
||||
envBindings := map[string]string{
|
||||
"GOCHAT_SERVER_HOST": "server.host",
|
||||
"GOCHAT_SERVER_PORT": "server.port",
|
||||
"GOCHAT_SERVER_MODE": "server.mode",
|
||||
"GOCHAT_DATABASE_HOST": "database.host",
|
||||
"GOCHAT_DATABASE_PORT": "database.port",
|
||||
"GOCHAT_DATABASE_USER": "database.user",
|
||||
"GOCHAT_DATABASE_PASSWORD": "database.password",
|
||||
"GOCHAT_DATABASE_NAME": "database.name",
|
||||
"GOCHAT_DATABASE_DBNAME": "database.dbname",
|
||||
"GOCHAT_DATABASE_SSLMODE": "database.sslmode",
|
||||
"GOCHAT_REDIS_URL": "redis.url",
|
||||
"GOCHAT_REDIS_HOST": "redis.host",
|
||||
"GOCHAT_REDIS_PORT": "redis.port",
|
||||
"GOCHAT_REDIS_PASSWORD": "redis.password",
|
||||
"GOCHAT_REDIS_POOL_SIZE": "redis.pool_size",
|
||||
"GOCHAT_JWT_SECRET": "jwt.secret",
|
||||
"JWT_SECRET": "jwt.secret", // Alias for compatibility (no prefix)
|
||||
"GOCHAT_JWT_EXPIRY_HOURS": "jwt.expiry_hours",
|
||||
"GOCHAT_LOG_LEVEL": "log.level",
|
||||
"GOCHAT_LOG_FORMAT": "log.format",
|
||||
"GOCHAT_CAPTAIN_ENABLED": "captain.enabled",
|
||||
"GOCHAT_CAPTAIN_LLM_PROVIDER": "captain.llm_provider",
|
||||
"GOCHAT_CAPTAIN_LLM_MODEL": "captain.llm_model",
|
||||
"GOCHAT_CAPTAIN_LLM_API_KEY": "captain.llm_api_key",
|
||||
"GOCHAT_WORKER_CONCURRENCY": "worker.concurrency",
|
||||
"GOCHAT_SEARCH_ENGINE": "search.engine",
|
||||
"GOCHAT_SEARCH_HOST": "search.host",
|
||||
"GOCHAT_SEARCH_API_KEY": "search.api_key",
|
||||
"GOCHAT_SEARCH_INDEX_PREFIX": "search.index_prefix",
|
||||
"GOCHAT_SEARCH_TIMEOUT_SECONDS": "search.timeout_seconds",
|
||||
"GOCHAT_SERVER_HOST": "server.host",
|
||||
"GOCHAT_SERVER_PORT": "server.port",
|
||||
"GOCHAT_SERVER_MODE": "server.mode",
|
||||
"GOCHAT_DATABASE_HOST": "database.host",
|
||||
"GOCHAT_DATABASE_PORT": "database.port",
|
||||
"GOCHAT_DATABASE_USER": "database.user",
|
||||
"GOCHAT_DATABASE_PASSWORD": "database.password",
|
||||
"GOCHAT_DATABASE_NAME": "database.name",
|
||||
"GOCHAT_DATABASE_DBNAME": "database.dbname",
|
||||
"GOCHAT_DATABASE_SSLMODE": "database.sslmode",
|
||||
"GOCHAT_DATABASE_RUN_MIGRATIONS": "database.run_migrations",
|
||||
"GOCHAT_DATABASE_MIGRATIONS_PATH": "database.migrations_path",
|
||||
"GOCHAT_REDIS_URL": "redis.url",
|
||||
"GOCHAT_REDIS_HOST": "redis.host",
|
||||
"GOCHAT_REDIS_PORT": "redis.port",
|
||||
"GOCHAT_REDIS_PASSWORD": "redis.password",
|
||||
"GOCHAT_REDIS_POOL_SIZE": "redis.pool_size",
|
||||
"GOCHAT_JWT_SECRET": "jwt.secret",
|
||||
"JWT_SECRET": "jwt.secret", // Alias for compatibility (no prefix)
|
||||
"GOCHAT_JWT_EXPIRY_HOURS": "jwt.expiry_hours",
|
||||
"GOCHAT_LOG_LEVEL": "log.level",
|
||||
"GOCHAT_LOG_FORMAT": "log.format",
|
||||
"GOCHAT_CAPTAIN_ENABLED": "captain.enabled",
|
||||
"GOCHAT_CAPTAIN_LLM_PROVIDER": "captain.llm_provider",
|
||||
"GOCHAT_CAPTAIN_LLM_MODEL": "captain.llm_model",
|
||||
"GOCHAT_CAPTAIN_LLM_API_KEY": "captain.llm_api_key",
|
||||
"GOCHAT_WORKER_CONCURRENCY": "worker.concurrency",
|
||||
"GOCHAT_SEARCH_ENGINE": "search.engine",
|
||||
"GOCHAT_SEARCH_HOST": "search.host",
|
||||
"GOCHAT_SEARCH_API_KEY": "search.api_key",
|
||||
"GOCHAT_SEARCH_INDEX_PREFIX": "search.index_prefix",
|
||||
"GOCHAT_SEARCH_TIMEOUT_SECONDS": "search.timeout_seconds",
|
||||
"GOCHAT_STORAGE_PROVIDER": "storage.provider",
|
||||
"GOCHAT_STORAGE_LOCAL_PATH": "storage.local_path",
|
||||
"GOCHAT_STORAGE_MAX_FILE_SIZE": "storage.max_file_size",
|
||||
// G10: OAuth config for new channel integrations (Twitter, Microsoft, Google)
|
||||
"GOCHAT_OAUTH_TWITTER_CLIENT_ID": "oauth.twitter.client_id",
|
||||
"GOCHAT_OAUTH_TWITTER_CLIENT_SECRET": "oauth.twitter.client_secret",
|
||||
|
||||
Reference in New Issue
Block a user