Readme

Otterdeploy is a deployment platform that runs on your own servers. Composable, typed end to end, and built to scale — from a single VPS to a multi-node swarm, without the usage-based bills or vendor lock-in.

Built on
CaddyPostgresBunBullMQBetter AuthDrizzleoRPCDocker

Features

A complete self-hosted platform — git builds, a Caddy edge, managed data, live observability, and access control — driven from one CLI.

01

Git-sourced builds

Push to deploy. Railpack detects your stack — no Dockerfile required.

git push → build #128 · 18s
02

Caddy edge & domains

Automatic HTTPS, multi-domain routing, add-a-domain-and-go.

app.acme.com ✓ TLS
03

Managed Postgres

Provision databases beside your services with a read-only viewer.

postgres · 42MB · daily
04

Live logs & metrics

Real-time build and runtime streams, per-resource metrics charted.

cpu 23% · p99 48ms
05

Access control

Org RBAC, scoped API keys, and guest access via email OTP.

otsk_live_••••••••
06

Edge firewall

Bundled CrowdSec agent enforcing the community IP blocklist.

crowdsec · identity-blind
07

Backups & restore

Scheduled database dumps with one-click restore to any point.

next 03:00 UTC
08

Secrets & env cascade

Three-tier env with ${{scope.KEY}} references across resources.

web ← project ← org
09

CLI + typed API

Drive everything from the CLI or the end-to-end typed oRPC API.

otterdeploy deploy --wait

One command, clone to production

Push your repo. Railpack detects the framework, builds it, and the Caddy edge serves it over HTTPS — zero-downtime, automatic TLS.

otterdeploy deploy
$ otterdeploy deploy
 
Detecting framework…
Railpack: Bun + Vite (static SPA)
Dependencies installed (6s)
Build complete (11s)
 
Publishing…
Image pushed to registry
Caddy route → https://app.otterdeploy.com
TLS certificate issued (auto)
 
✓ Live in 19s · https://app.otterdeploy.com