grund

In development. Not yet available.

From zero to production, on your own premises.

Whether it's the media server in your closet or the SaaS that pays your salary, grund takes any app from a bare machine to deployed, backed up and recoverable. Start on one box. Grow to a fleet without starting over.

  • Any app, any service.

    A container image or a Dockerfile: an open-source tool you self-host, or the product you are building.

  • Starts on the machine you have.

    A mini PC, an old desktop, a rack in the basement or a rented dedicated server.

  • Grows without a rewrite.

    Add machines when it matters. The apps you deployed on day one keep running, now highly available.

  • Yours, end to end.

    Your hardware, your data, your git. A standard cluster that keeps running without us.

Zero to hero on your premises.

Every level builds on the last. Stop wherever you are happy: a homelab can live at level three for years. A SaaS keeps climbing.

  1. 0

    Start with the machine you have.

    No cloud account, no platform team. One box with an internet connection is enough to begin.

    • Mini PC in the closet4 cores · 16 GB · 1 TB SSD
    • Rack server in the basement16 cores · 64 GB · RAID
    • Rented dedicated serverHetzner, OVH, or any provider
  2. 1

    Turn it into a platform in one command.

    grund installs a pinned, tested stack: a cluster, ingress with automatic TLS, metrics, and backups to storage you choose.

    $ grund init --server nuc.home.lan

    ✓ cluster ready on nuc

    ✓ ingress and certificates

    ✓ metrics and alerts

    ✓ backups to s3://home-backups

  3. 2

    Deploy anything, with a real domain.

    Point grund at an image or a Dockerfile. It gets a hostname, a certificate and health checks, and restarts when it falls over.

    $ grund deploy ghcr.io/immich-app/immich-server \

        --domain photos.home.example

    ✓ healthy in 24 s

    ✓ https://photos.home.example

  4. 3

    Keep your data, and prove you can get it back.

    Databases stream their changes off-site. Every night grund restores them somewhere safe and checks the result, so a dead disk is an afternoon, not a disaster.

    • immich-db restore drillTonight 03:12 · 48,210 photos accounted for
      passed
    • Off-site backupLast change shipped 6 s ago
      RPO 6 s
  5. 4

    Add machines when it matters.

    Join two more servers and grund spreads your apps and replicas across them. Nothing is redeployed from scratch; one machine can now fail without taking you down.

    $ grund add server srv-2 srv-3

    ✓ 3 servers in quorum

    ✓ replicas rebalanced

    ✓ can lose any 1 server

  6. 5

    Ship like a SaaS.

    Releases are promoted by digest through health gates. A bad one rolls back on its own before your customers notice, and every guarantee comes with evidence.

    1. api: health check failed at 10%p95 latency 2.1 s, budget 400 ms
    2. Rolled back to the last good release9 s · nobody paged

Commands and output are illustrative. grund is in development and its interface may change.

One platform, whatever you run.

The same path serves a family photo library and a product with paying customers. Two examples of where the journey leads.

Homelab

The closet that runs the house

One mini PC, level 3.

Home1 server
  • Immichphotos.home.example
    Serving
  • Jellyfinmedia.home.example
    Serving
  • Home Assistanthome.home.example
    Serving
  • Photos backed up off-site and restore-tested nightly
  • Every app on its own domain with a valid certificate
  • Updates that roll back instead of breaking the house
SaaS

The product that pays the bills

Three dedicated servers, level 5.

Nord Studio · Production3 servers
  • Storefrontshop.nord.example
    Serving
  • Customer APIapi.nord.example
    Serving
  • Postgres3 replicas · PITR 14 days
    Healthy
  • Restore the database to any second in the last 14 days
  • Lose any one server without an outage
  • A fraction of the cloud bill for the same workload

Example setups. grund is in development.

Every guarantee comes with evidence.

A backup nobody has restored is a hope. grund tests its own promises on a schedule and shows you what it measured, at every level of the journey.

restore
Databases restored nightly into an isolated space and compared row for row.
failover
From three machines, an opt-in drill drains one and measures recovery.
backups
Changes streamed off-site, never only on the machine they protect.
alerts
Certificate expiry, backup age and disk space, sent to email or your phone.
EvidenceProduction
  • Restore drillTonight 03:12 · restored to 02:47:19 · 1.2 M rows match
    RTO 3 m 40 s
  • Failover drill2 days ago · drained srv-2 · traffic back in 38 s
    any 1 server
  • Off-site backupLast WAL segment shipped 4 s ago
    RPO 4 s
  • Certificates6 domains valid · next renewal in 21 days
    auto-renew
3 servers · can lose any 1
Example evidence. grund is in development.

Your premises. Your git. You can leave.

grund automates a stack you could run yourself. Nothing about it depends on us staying around, or on your hardware staying where it is.

$ kubectl get nodes

NAME   STATUS  ROLES

srv-1  Ready   control-plane

srv-2  Ready   control-plane

srv-3  Ready   control-plane

A standard cluster underneath

k3s, Flux and CloudNativePG. No proprietary runtime you cannot inspect.

  • clusters/home
  • immich.yaml
  • jellyfin.yaml
  • secrets.enc.yaml

Everything lives in your git

Plain manifests and encrypted secrets in your repository, applied by Flux.

closet same manifests Hetzner

New servers, no rewrite

Move without starting over

From the closet to a rented rack, or back. Point grund at new machines and restore onto them.

grund signed intent agent

No SSH keys, no remote commands

Our control plane cannot root you

An agent on your machines pulls signed intents and verifies them. We never hold your keys.

From a closet to a company.

Made for

  • Homelabbers who want their services to survive a dead disk and a busy month.
  • Founders and small teams whose product outgrew a platform bill.
  • Anyone self-hosting who wants Kubernetes' guarantees without running Kubernetes by hand.

Not what it promises

  • An SLA on your hardware. You own the machines; grund owns the automation.
  • Multi-region. One site, done well, first.
  • High availability on one box. A single machine is supported, and labelled as such.

The cost, up front

Start on hardware you already own, for nothing but electricity.

Real high availability needs three machines, a quorum. Rented from a provider like Hetzner that is roughly €290 a month before storage, often a fraction of the cloud bill it replaces.

grund is being built in the open.

Follow along on GitHub, where the code appears as it lands.