Your Linux fleet, reconciled to Git.
Detect drift, preview changes, and safely roll out Git-managed configuration across VMs and bare metal — without inbound agent ports or Kubernetes.
GitOps for the Linux fleet outside Kubernetes.
For teams that outgrew running Ansible by hand or on cron, but don't want Puppet, NixOS, or to pull plain servers into Kubernetes just to get a reviewed, reversible source of truth.
Detect and repair drift
Continuously compare each host with Git and, per app, restore the declared state or just alert.
Preview before rollout
Review the exact host-level diff before a change is applied — the way the demo above shows it.
Approve production changes Team
Require review before production syncs, with a second approver on gated projects.
Roll back to a commit
Return an application to an exact previously applied revision, from the web UI.
No inbound agent access
Agents pull over HTTPS. Regular operation needs no inbound SSH and no open agent ports.
Audit every operation Automation · Team
Record who approved, applied or rolled back each change. Automate audit delivery and SIEM integration on Team.
Desired state in Git. Everything else reconciles.
Point an app at a Git folder and the hosts it covers. The control plane renders each host's manifest; the agent dials out, pulls it, and keeps the host matching.
Declare
An app points at a Git folder and a set of hosts — packages, files, services, users, cron and more.
Render
One standalone control plane renders the desired state per host and tracks every revision.
Reconcile
Each agent dials out over HTTPS, pulls its manifest and applies it. Nothing inbound on the host.
Observe
Drift shows as a diff. Sync, roll back or prune from the web UI, with a full audit trail.
git (GitLab / GitHub / Gitea)
│ fetch, webhook
┌───────────▼───────────┐
│ hostcd-server │ UI + API · renders per host
│ (one per fleet) │ sync · history · rollback
└───────────▲───────────┘
long-poll HTTPS │ hosts only dial out — nothing inbound on them
┌──────────────┬────┴─────────┬──────────────┐
hostcd-agent hostcd-agent hostcd-agent hostcd-agent
web-1 web-2 db-1 stg-web-1
One distribution. Three editions.
Static binaries, no runtime dependencies — server, agent, CLI and embedded web UI. Team and Enterprise are unlocked with a signed license token, verified offline.
Community
Free · BSL 1.1- Up to 10 managed hosts
- Git-driven config, drift, sync, rollback, history
- App sets, projects, backup & restore
- Web UI, API, pull agent
Team
€99/mo- Up to 50 managed hosts
- Approval gates on production syncs
- Outbound notifications (Slack / webhooks)
- Automated audit export & SIEM delivery
- Email support · 2-business-day response target
Enterprise
Custom · volume host limits- Everything in Team
- SSO — SAML 2.0 & OIDC · SCIM provisioning
- Postgres HA · Vault sealing
- SLA support
Offline license · no credit card · self-hosted. Founding Team — €99/mo, billed annually (up to 50 hosts), available during public preview; the price is locked for your initial 12-month subscription. Support at this tier is email with a two-business-day response target — no SLA.
| Capability | Community | Team | Enterprise |
|---|---|---|---|
| Price | Free | €99/mo · founding | Custom |
| Managed hosts receiving new revisions | 10 | up to 50 | Contracted |
| Git config · drift · sync · rollback | ✓ | ✓ | ✓ |
| App sets · projects · backup & restore | ✓ | ✓ | ✓ |
| Web UI · API · pull agent | ✓ | ✓ | ✓ |
| Approval gates | — | ✓ | ✓ |
| Outbound notifications | — | ✓ | ✓ |
| Automated audit export / SIEM integration | — | ✓ | ✓ |
| SSO — SAML 2.0 & OIDC | — | — | ✓ |
| SCIM provisioning | — | — | ✓ |
| Postgres HA · Vault sealing | — | — | ✓ |
| Support | Community | Email · 2-day target | SLA |
Built for a tool with root on your servers.
Regular operation is pull-based HTTPS; optional SSH is used only during initial host enrollment. Full details in the security policy & threat model ↗.
Licensing, in plain terms.
How long is the Team trial?
A 14-day trial starts automatically when you enrol your first host — no key, no sign-up. Want longer? Request a free 30-day trial token (here): it's a signed, offline license — no phone-home — and it only ever unlocks the Team features, never Enterprise.
What happens when the Team trial ends?
Nothing is deleted. You keep up to 10 active hosts that keep reconciling; you choose which ones. Hosts above the Community limit stay visible and keep enforcing the revision they last accepted — hostcd still corrects drift back to that configuration — but they receive no newer Git revisions until a license is installed or a Community slot is freed.
Does a lapsed license lock me out?
No. A lapse never deletes data or stops the control plane. After the grace period, hosts above the Community limit stay visible and keep enforcing the revision they last accepted — hostcd still corrects drift back to it — but they receive no newer Git revisions until a license is installed or a slot is freed. Backup, full data export, the audit trail, local admin login and license installation stay available — always. (Automated audit integrations are the Team feature, not access to your own data.)
Is licensing really offline?
Yes. License tokens are signed and verified locally against an embedded key — there is no phone-home, so air-gapped deployments work the same.
Which operating systems are supported?
Ubuntu/Debian and RHEL/Rocky, tested and supported. A Windows Server agent is in development — see the docs for its status.
What is the licence?
The Community core is under the Business Source License 1.1 — a source-available licence that converts to Apache-2.0 on its change date. The public release ships signed binaries with cosign provenance and an SBOM you can verify independently; the code repository is not public yet. Enterprise modules are gated by a signed key.
What do I actually run?
A single control plane for the fleet and one lightweight agent per host — static binaries a small team can operate. Your desired state stays in your own Git repository.
Reconcile your fleet from Git.
Install the control plane, enroll a host, point it at a Git repo. Self-hosted and free for your first 10 hosts.
curl -fsSL https://github.com/Inblade/hostcd-dist/releases/latest/download/install.sh \
| sudo env HOSTCD_RELEASE_BASE=https://github.com/Inblade/hostcd-dist/releases/latest/download sh -s -- server
Start Team or evaluate Enterprise.
To buy a Team licence, request an Enterprise evaluation or volume pricing, or get help taking a Team trial to its first sync. This goes straight to the maintainer — nothing is posted publicly.