Development Server
Development Server
Section titled “Development Server”plumego devplumego dev builds your service, starts it at :8080, watches **/*.go for changes, and rebuilds automatically on each save. A local dashboard at 127.0.0.1:9999 shows build status, application events, and route details.
What this guide covers
Section titled “What this guide covers”- Starting the dev server in a Plumego project
- Verifying the service is running
- Watching file changes and triggering a rebuild
- Configuring address, watch patterns, and build commands
Step 1 — Build the CLI from a source checkout
Section titled “Step 1 — Build the CLI from a source checkout”git clone https://github.com/spcent/plumego.gitcd plumego/cmd/plumegogo build -o ../../bin/plumego .export PATH="$(pwd)/../../bin:$PATH"The CLI currently lives in a nested Go module, so tagged go install is not
advertised as a supported install path until a release checklist verifies that
exact tag.
Verify the build:
plumego --helpStep 2 — Start the dev server
Section titled “Step 2 — Start the dev server”From your project root:
plumego devExpected output:
Starting Plumego Dev Server Project: /path/to/your/project App URL: http://localhost:8080 Dashboard URL: http://localhost:9999
Watching for changes... Press Ctrl+C to stopStep 3 — Verify the service
Section titled “Step 3 — Verify the service”curl localhost:8080/healthz# {"data":{"status":"ok"}}Open the dashboard in a browser: http://localhost:9999
Step 4 — Edit a file and watch it reload
Section titled “Step 4 — Edit a file and watch it reload”Change a handler or route, then save. The terminal shows:
File changed: internal/app/routes.goReload completeThe server restarts with the new build. No manual restart needed.
Flag reference
Section titled “Flag reference”| Flag | Default | Purpose |
|---|---|---|
--addr | :8080 | Address the application listens on |
--dashboard-addr | 127.0.0.1:9999 | Address for the dev dashboard |
--dashboard-token | (none) | Token required for dashboard action APIs |
--watch | **/*.go | Comma-separated glob patterns to watch |
--exclude | (none) | Comma-separated patterns to exclude from watching |
--debounce | 500ms | Wait duration before triggering a rebuild after a file change |
--no-reload | false | Disable automatic rebuild; serve only |
--build-cmd | (auto) | Custom build command, e.g. go build -tags dev ./... |
--run-cmd | (auto) | Custom run command |
Common configurations
Section titled “Common configurations”Custom port:
plumego dev --addr :3000Watch additional file types:
plumego dev --watch "**/*.go,**/*.yaml"Disable hot reload (serve only):
plumego dev --no-reloadSecure the dashboard:
plumego dev --dashboard-token my-secret-tokenCustom build and run commands:
plumego dev --build-cmd "go build -tags dev -o .dev-server/app ./cmd/server" \ --run-cmd ".dev-server/app"What the dashboard shows
Section titled “What the dashboard shows”The dashboard at 127.0.0.1:9999 provides:
- Build status — last build result, duration, and error output on failure
- Application events — startup, shutdown, restart with PID
- Log stream — forwarded stdout/stderr from the running application
The dashboard is local-only by default. Do not expose it on a public interface.
Next step
Section titled “Next step”Once your handler shape is stable, continue to Testing Handlers to verify behavior without running the dev server.