summaryrefslogtreecommitdiff
path: root/internal/cli/serve.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/cli/serve.go')
-rw-r--r--internal/cli/serve.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/internal/cli/serve.go b/internal/cli/serve.go
index 9aa765b..fe0ba8e 100644
--- a/internal/cli/serve.go
+++ b/internal/cli/serve.go
@@ -23,6 +23,7 @@ import (
func newServeCmd() *cobra.Command {
var addr string
var workspaceRoot string
+ var basePath string
cmd := &cobra.Command{
Use: "serve",
@@ -31,11 +32,12 @@ func newServeCmd() *cobra.Command {
if cmd.Flags().Changed("workspace-root") {
cfg.WorkspaceRoot = workspaceRoot
}
- return serve(addr)
+ return serve(addr, basePath)
},
}
cmd.Flags().StringVar(&addr, "addr", "127.0.0.1:8484", "listen address (loopback by default; set external_bind_allowed=true in config to bind externally)")
+ cmd.Flags().StringVar(&basePath, "base-path", "/claudomator", "URL prefix the UI is served under (e.g. /claudomator-oss)")
cmd.Flags().StringVar(&workspaceRoot, "workspace-root", "/workspace", "root directory for listing workspaces")
cmd.Flags().StringVar(&cfg.ClaudeImage, "claude-image", cfg.ClaudeImage, "docker image for claude agents")
cmd.Flags().StringVar(&cfg.GeminiImage, "gemini-image", cfg.GeminiImage, "docker image for gemini agents")
@@ -43,7 +45,7 @@ func newServeCmd() *cobra.Command {
return cmd
}
-func serve(addr string) error {
+func serve(addr, basePath string) error {
if err := config.ValidateBindAddr(addr, cfg.ExternalBindAllowed); err != nil {
return err
}
@@ -175,6 +177,7 @@ func serve(addr string) error {
pool.RecoverStaleBlocked()
srv := api.NewServer(store, pool, agentRegistry, logger, cfg.ClaudeBinaryPath, cfg.GeminiBinaryPath)
+ srv.SetBasePath(basePath)
if accountant != nil {
srv.SetBudget(accountant)
}