Unbind

How Unbind Works

What runs under the hood, for the curious.

You do not need any of this to use Unbind. It is here for when you want to know what is on your server, or when you are debugging the instance itself.

Unbind is a layer on top of Kubernetes. The UI talks about services, replicas and servers on purpose, so you never have to think in Kubernetes terms. Underneath, everything is a standard Kubernetes resource that you can inspect. See Cluster Access.

What a deployment does

  1. You push, or press Deploy. The Unbind API records a deployment and puts it in the build queue.
  2. A build runs. The code is built into an image with Railpack or your Dockerfile, using BuildKit.
  3. The image is pushed to the registry, by default one that runs inside your instance.
  4. The API describes the service as a custom resource: image, ports, domains, variables, volumes, health checks.
  5. The Unbind operator turns that into Kubernetes resources, and the new version starts next to the old one.
  6. Traffic switches once the new version is healthy. Certificates for new domains are requested from Let's Encrypt.

How Unbind's words map to Kubernetes

In UnbindUnderneath
ServerNode
TeamNamespace. Roles are enforced here as well.
Project, EnvironmentLabels on everything inside
ServiceA custom resource, turned into a Deployment, a Service and routes
ReplicaPod
VariablesSecret
VolumePersistentVolumeClaim
DatabaseA resource managed by a database operator

What is installed

Everything lives in the unbind-system namespace, except storage.

PartWhat does it
Kubernetesk3s
StorageLonghorn
Traffic and routingEnvoy Gateway. Older installs use ingress-nginx.
Certificatescert-manager with Let's Encrypt
BuildsBuildKit and Railpack
Image storageA Docker registry, unless you chose an external one
LogsLoki with Alloy, kept 3 days by default
MetricsVictoriaMetrics, kept 7 days by default
Unbind's own dataPostgreSQL and Redis
Installing Redis and MongoDBFlux

The Unbind UI and API are a single program in a single image. The operator is a second one.

Databases

Databases you create are run by operators that specialize in them: Zalando's operator for PostgreSQL, MOCO for MySQL, Altinity's operator for ClickHouse, and Helm charts for Redis and MongoDB. That is where backups and version handling come from.

Open source all the way down

Every part of this is open source, and so is Unbind, under the MIT license. The code is on GitHub.

On this page