Holden
Docs

Self-hosting thatjust works.

Self-hosted, GitOps container orchestration. Define your app in a config file, push to git, and Holden deploys it - with Postgres, Redis, and S3 included.

GitOps Native

Push to deploy, revert to rollback

Batteries Included

Postgres, Valkey, Garage built-in

Zero Downtime

Health-gated deploys with rollback

Encrypted Secrets

age-encrypted, in your repo

The Problem

Self-hosting
shouldn't be hard.

Docker Compose is manual. Kubernetes is overkill. Self-hosted PaaS tools store your config in their own database - if the tool breaks, your config is gone.

Holden is different. Your app config lives in git, not in a tool's database. Push a config file, get a running app with databases, caching, and TLS. Re-register your repos and you're back up.

holden.yml
services:
  web:
    image: myapp:latest
    domain: myapp.example.com
    env:
      DATABASE_URL: ${needs.postgres.url}
      REDIS_URL: ${needs.valkey.url}

needs:
  postgres:
  valkey:

Define your app in YAML. Push to git. Holden handles the rest - containers, networking, databases, TLS, zero-downtime deploys.

One config file

Ready to deploy?

Holden