Work in progress distributed system that simplifies the orchestration of containers and virtual machines.
Work in progress distributed system that simplifies the orchestration of containers and virtual machines.
Quick install (requires Docker)
curl -fsSL https://download.next-hat.com/scripts/get-nanocl.sh | sh
Then complete the required Post‑installation steps.
Nanocl is an open‑source distributed system that reimagines cloud‑native orchestration from the ground up.
It gives developers a frictionless local to production workflow while hiding multi‑service complexity (no more ad‑hoc scripts, CORS hacks, or brittle docker‑compose sprawl). The same declarative model powers both dev and prod.
You could rebuild a K8s inside Nanocl… but you probably won't want to.
Built in Rust for efficiency & security, Nanocl targets platform engineers who need strong isolation, predictable performance, and simpler operations—without the cognitive overhead of a full Kubernetes distribution.
Modern teams need faster iteration loops, secure multi‑tenant isolation, and a production‑grade transition path—without operating a heavyweight control plane on day one. Nanocl focuses on:
ncproxy, ncdns).See the health-check documentation for rolling update readiness behavior and TLS secret documentation for certificate persistence.
Nanocl supports Linux, macOS, and Windows. See the Installation guide.
Run the installer (requires Docker):
curl -fsSL https://download.next-hat.com/scripts/get-nanocl.sh | sh
Then complete the required Post‑installation steps.
If you're just evaluating, a single-node install usually takes under two minutes.
Create a minimal Statefile and apply it:
ApiVersion: v0.16
Cargoes:
- Name: hello
Containers:
- Name: hello
Image: ghcr.io/next-hat/documentation:0.16.0
Apply & inspect:
nanocl state apply -s ./state.yml
nanocl cargo ls
nanocl cargo logs global.hello
Cargoes and virtual machines use canonical keys in
{namespace}.{name} order, such as global.hello or system.ncproxy.
Collection commands return every namespace unless --namespace is provided:
nanocl cargo ls
nanocl cargo ls --namespace system
nanocl vm ls
Commands targeting an existing Cargo or VM take that key directly and do not
accept a namespace option. Creation commands still default to global when
--namespace is omitted.
Remove it:
nanocl state rm -s ./state.yml
Next: explore Get Started.
Nanocl is evolving fast. Feedback & early adopters shape the roadmap—see below.
Statefiles drive everything. Here's the Statefile we use to deploy our own documentation:
ApiVersion: v0.16
Cargoes:
- Name: doc
Containers:
- Name: doc
Image: ghcr.io/next-hat/documentation:0.16.0
Resources:
- Name: docs.next-hat.com
Kind: ncproxy.io/rule
Data:
Rules:
- Domain: docs.next-hat.com
Network: Public
Locations:
- Path: /
Target:
Key: global.doc.c
Port: 80
Actions:
nanocl state apply -s ./state.ymlnanocl state rm -s ./state.ymlMore object options in the References.
Nanocl is composed of modular containerized services:
| Component | Purpose |
|---|---|
| nstore | Persist cluster state |
| ndaemon | REST API & control surface |
| nmetrics | Resource usage collection |
| ncproxy | Proxy controller with embedded nginx data plane (optional) |
| ncdns | DNS controller with embedded dnsmasq data plane (optional) |
Resources:
Single‑node simplified architecture:
High‑level focus (non‑exhaustive):
Track changes & releases in the blog.
Please report vulnerabilities via our Security Policy. Responsible disclosure helps everyone.
Little by little, a little becomes a lot.
Join our Discord the be part of NextHat's journey to shape the future of planet-scale infrastructure management.
Every contribution is welcomed.
➡️ Bug reports, feature requests, and pull requests are the most common ways to contribute.
For example if you're not a developer yourself you could help us by improving the Documentation, too.
Learn how to setup a development environment via the Contribution Guide.
Please don't hesitate to join our team on Discord if you have any questions!
GitHub ⭐️ helps us a lot to further grow our open-source ecosystem for & with our community.
Sponsors are the ones who make this project possible.
They help us to have the necessary resources for Nanocl to keep it alive and to improve it further.
If you want to become a sponsor, please use the GitHub Sponsor button.
People that sponsor us will have their name or logo displayed here, and will have access to a special role on our Discord.
Our very kind sponsors:
daemonfire300
Dual licensed under either:
You may use either license at your discretion.
We are just at the beginning of a new paradigm shift..
No open issues yet, or sync has not completed.