rivet

Active development — Feedback welcome

Your VPS.
Your platform.
One server bill.

Rivet is a self-hosted PaaS for a single VPS. Ship Dockerfile apps from your CLI or run public images from the console, with automatic SSL, routing, encrypted secrets, auto-sleep, and real-time monitoring.

~60s
to install
1 VPS
that's all it needs
MIT
no lock-in, ever
vps — bash — 80×24
user@vps:~$ curl -fsSL https://getrivet.app/install.sh | sh
Domain: rivet.example.com
Checking Docker and network...
Starting Caddy, console, and API...
Rivet is live at https://rivet.example.com
dev@api:api$ rivet ship
Project: new
Name: api
Domain: api.example.com
Port: 3000
Building image and uploading tarball...
App is live at https://api.example.com

What Rivet handles for you

Automatic SSL

Every deployed app gets HTTPS instantly. Let's Encrypt certificates are provisioned and renewed automatically — no nginx configs, no certbot crons, nothing to manage.

Domain routing

Point a project domain at your VPS and Rivet routes it through Caddy. Sleeping projects hit Rivet's wake handler first, then route back to the app container once it is running.

Auto-sleep

Idle containers sleep to free VPS memory and CPU. They wake on the first HTTP request — fast enough that users rarely notice. Ideal for staging and side projects.

Encrypted secrets

Secrets are stored encrypted at rest and sent to Rivet over HTTPS. Set them in the dashboard or import them from .env during rivet ship; Rivet injects them securely at container start.

Per-app monitoring

CPU, memory, and network metrics for every container in real time. No Prometheus, no Grafana stack required — it's all surfaced in the Rivet dashboard.

Dashboard + CLI

A clean web dashboard on your Rivet domain for visual control, and a rivet CLI for signup, signin, shipping, and deleting projects. Use whichever fits your workflow.

How it works

Install the control plane

One curl command starts Caddy, the Rivet API, and the web console on your Docker-ready VPS. The dashboard comes up on your Rivet domain.

Ship code or run public images

Ship local Dockerfile apps with the CLI, or create console projects from public Docker images. Rivet starts the container, attaches it to the internal network, and routes traffic.

Rivet reconciles state

A Kubernetes-style loop continuously compares desired config against actual running containers and corrects any drift — automatically.

Built for the developer who owns their infrastructure.

Rivet is intentionally not a giant platform. It doesn't try to be Heroku or Railway. It runs on a single VPS you already own and provides exactly the automation layer you're missing — without hiding what happens underneath.

Every container Rivet manages is a plain Docker container. Every certificate is a real Let's Encrypt cert. Secrets are stored encrypted and injected as env vars. SSH in any time.

No hosted platform meter running in the background. No runtime you can't inspect. Just your server, running your code, with platform-level conveniences on top.

  • Self-hosted, data stays on your server
  • No vendor lock-in, MIT licensed
  • Transparent states, inspectable via SSH
  • Auto-sleep saves real resources
  • One VPS, one cost model you can reason about
  • Metered pricing can compound with scale
  • Runtimes can be harder to inspect and debug
  • Moving providers can take real planning
  • Data residency follows provider choices

What's coming

  • Native Docker log streaming
  • Automated builds via Railpack
  • Host-level metrics
  • Multi-node control plane
  • Managed Postgres & Redis
  • Static site hosting

Self-hosted PaaS basics

What is Rivet?

Rivet is an open-source, self-hosted PaaS for deploying Docker apps on a single VPS with automatic SSL, domain routing, encrypted secrets, auto-sleep, and monitoring.

Is Rivet a Heroku or Railway alternative?

Yes, for developers who want the deployment workflow of a managed PaaS while keeping apps, data, and costs on infrastructure they own.

What infrastructure does Rivet need?

Rivet is designed for one Linux VPS. It manages Docker containers, Caddy routing, HTTPS certificates, secrets, and app state from that server.