A platform-as-a-service built for Go + htmx-r applications. One CLI command packages your project, builds it on the server, and gives you a live URL with subdomain routing — in seconds, not minutes.
Run serve-r deploy from your project root. Source is archived, uploaded, compiled on the server, and launched — all in one step. SSE streams build logs to your terminal in real time.
Every deployment gets an instant subdomain: your-app.serve-r.adrienbird.net. Reverse proxy routes by hostname — no nginx config, no Caddyfile.
Add any domain to any deployment. Serve-R provides the CNAME target, verifies DNS propagation on demand, and activates the route.
Set, list, and unset env vars per deployment from CLI or dashboard. Injected at launch, persisted in SQLite — no .env files.
htmx-r powered dashboard showing all deployments, status, URLs, and age. Drill into any deployment for domain, env, and build log management.
After build, Serve-R polls the app for up to 15 seconds. Health check passes, traffic routes immediately. Process exits, it's cleaned up automatically.
Reads htmx-r.toml for config, discovers Go entrypoints automatically, and sets PORT. No Procfile, no buildpack, no Dockerfile required.
Automatic entrypoint detection across cmd/* subdirectories.
HTTP server, reverse proxy, SQLite database, build runner, and process manager — all in one Go binary. No Redis, no Postgres, no Docker daemon.
SQLite WAL mode for concurrent reads with single-writer safety.
Build output streams to your terminal over Server-Sent Events as it happens. Every log line from go mod tidy through startup appears in real time.
Channel-based log pipeline with 200-line buffer.
The serve-r CLI handles login, deploy, status, domains, and env vars. Every operation is available from the terminal. Developers stay in their flow.
Config at ~/.serve-r/config.json — one file, portable.
Any Go web application that listens on a PORT env var. Optimized for htmx-r but works with Chi, Gorilla Mux, Echo, or stdlib net/http.
No. Serve-R builds Go source directly on the server. You can also upload a pre-built binary to skip compilation entirely.
Add a domain, point CNAME to the target Serve-R provides, run serve-r domains verify. Route activates when DNS resolves correctly.
200 MB per archive. Typical htmx-r project source archives are under 1 MB since .git is excluded. Pre-built binaries are 10-30 MB.
Deploy htmx-r apps with one command. Subdomain routing, custom domains, SSE build logs, and zero Dockerfiles.