summaryrefslogtreecommitdiff
path: root/internal/config/config.go
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-06-15 09:14:14 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-06-15 09:14:14 +0000
commitc86abd29845fa6feb61b1fddb8e8bb41312d55a8 (patch)
tree697fa3542035672a73ba9ddee8d47ca7044b0d5b /internal/config/config.go
parenteb089ef4c9416bd3d5642bb5a4437355ffa2fdd0 (diff)
feat: service gateway framework + playground demo
Formalizes doot as an authenticated reverse proxy for arbitrary upstream services. Any local HTTP service can now be registered behind doot's existing auth + SSL layer with 3 lines of config. - Rename NewClaudomatorProxy → NewServiceProxy (generic) - Replace hard-coded claudomator proxy block with serviceMount slice loop - Add PlaygroundURL config (PLAYGROUND_URL env var) - Add playground/web/server.py: stdlib Python status page on port 9090 - Document pattern in .agent/design.md; update .env.example To add a new service: set its URL env var, add a config field, append one mount entry in main.go. Claudomator's GitHub webhook bypass is expressed as webhookPaths on its mount. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'internal/config/config.go')
-rw-r--r--internal/config/config.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/internal/config/config.go b/internal/config/config.go
index d3770f1..fe7bca5 100644
--- a/internal/config/config.go
+++ b/internal/config/config.go
@@ -42,6 +42,9 @@ type Config struct {
// Claudomator
ClaudomatorURL string // URL of Claudomator service
+
+ // Service gateway — additional upstream services proxied through doot's auth layer
+ PlaygroundURL string // URL of playground demo service (optional)
}
// Load reads configuration from environment variables
@@ -81,6 +84,9 @@ func Load() (*Config, error) {
// Claudomator
ClaudomatorURL: getEnvWithDefault("CLAUDOMATOR_URL", "http://127.0.0.1:8484"),
+
+ // Service gateway
+ PlaygroundURL: os.Getenv("PLAYGROUND_URL"),
}
// Validate required fields