Delonix Engine v0.1.0
Engine de containers e microVMs daemonless, rootless-first, kernel-native, em Rust — com CRI próprio para Kubernetes.
Build, run, rede, firewall, storage e bootstrap de clusters Kubernetes num só
binário — sem daemon residente e sem root. Não é um runtime OCI de baixo nível (isso é o
runc/crun): é o engine COMPLETO, a camada aberta (Apache-2.0) sobre a
qual assenta a plataforma Delonix.
Um comando instala o binário e as dependências de runtime, na variante certa para o teu CPU.
Instalar →delonix init detecta a stack desta pasta e escreve um projecto completo, já preenchido.
delonix apply converge o manifesto por dependências; o dashboard mostra tudo a correr.
Instalar
Um comando instala o binário e todas as dependências de runtime (rede rootless, VMs, tuning de kernel), escolhendo a variante certa para o teu CPU. Funciona em Debian/Ubuntu, Fedora/RHEL, openSUSE e Arch:
curl -fsSL https://github.com/ngolacloud/delonix/releases/latest/download/install.sh | bash
Para publicar a porta 80 ou 443 (-p 80:80)
acrescenta --low-ports:
curl -fsSL .../install.sh | bash -s -- --low-ports
Sem essa flag, -p 80:80 é recusado: quem liga a porta do lado do host é o
slirp4netns, sem privilégios, e o kernel reserva as portas abaixo de
net.ipv4.ip_unprivileged_port_start (1024 por omissão) — o Podman e o Docker
rootless têm o mesmo muro. É opt-in porque baixa esse limiar para o host inteiro:
a partir daí qualquer programa local pode ligar-se às portas 80-1023. Num portátil é um
compromisso razoável; numa máquina partilhada, a alternativa que não baixa nada é um proxy
como root na porta 80 a encaminhar para uma porta alta. Reverter: apagar
/etc/sysctl.d/99-delonix-lowports.conf.
Alternativa (só o binário, dependências por tua conta):
curl -fL -o ~/.local/bin/delonix \
https://github.com/ngolacloud/delonix/releases/latest/download/delonix-x86_64-linux
chmod +x ~/.local/bin/delonix
echo 'source <(delonix completion shell bash)' >> ~/.bashrc
Primeiros passos
Quatro percursos independentes, do mais simples ao mais completo. Todos os comandos
abaixo foram verificados contra o binário — confirma qualquer um com --help.
Novo nos termos? O glossário define daemonless,
rootless, holder-netns, Kind, converge/apply e o resto.
1 · Um container
Um serviço web na porta 8080, sem root e sem daemon. Com --net host (o
omisso) o container passa ao seu próprio netns com NAT em espaço de utilizador
(slirp4netns); -p liga só a 127.0.0.1 salvo se nomeares o
endereço.
delonix container run -d --name web -p 8080:80 nginx
curl localhost:8080
delonix container stats # CPU/memória/PIDs
delonix container logs -f web # logs em contínuo
delonix container stop web # a porta fecha sozinha
delonix container start web # rearranca com o mesmo estado
2 · Um projecto completo
delonix init olha para esta pasta e despacha para o template certo;
delonix stack init escreve um projecto COMPLETO (Delonixfile + manifesto +
cluster + README), já preenchido. Depois delonix apply — a grafia canónica de
stack apply — converge o manifesto por ordem de dependências.
delonix init # detecta a stack desta pasta
delonix stack init -t fastapi # ou força um template (`-t list` mostra-os)
delonix apply -f delonix-manifest.yaml # converge tudo o que o manifesto declara
delonix stack plan -f delonix-manifest.yaml # o que mudaria, sem mudar nada
3 · Um cluster Kubernetes local
Modo kind nativo: os nós kindest/node arrancam dentro do próprio engine e
são iniciados com kubeadm — sem Docker. Sem flags, 1
control-plane pronto a usar.
delonix cluster create # 1 control-plane, nome inventado
delonix cluster create --name dev --workers 2 # + 2 workers
delonix cluster health # o control-plane responde? nós Ready?
delonix cluster ls # clusters deste host (kind E baseados em VM)
4 · Ver tudo a correr
Um painel htop-style de containers, VMs, redes e volumes. --once imprime um
retrato de texto e sai (o omisso quando o stdout não é um terminal); --json
para scripts/Grafana.
delonix dashboard # TUI interactivo
delonix dashboard --scope container # focado num tipo de recurso
delonix dashboard --once # um retrato de texto e sai
Referência da CLI
Cargas de trabalhoWorkloads
Ciclo de vida de containers: run, ps, start, stop, rm, exec, logs, inspect, stats, apply.Container lifecycle: run, ps, start, stop, rm, exec, logs, inspect, stats, apply.
Atalho de raiz para `delonix container run` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container run` — the same flag struct and the same handler.
Atalho de raiz para `delonix container create` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container create` — the same flag struct and the same handler.
Atalho de raiz para `delonix container ps` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container ps` — the same flag struct and the same handler.
Atalho de raiz para `delonix container start` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container start` — the same flag struct and the same handler.
Atalho de raiz para `delonix container stop` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container stop` — the same flag struct and the same handler.
Atalho de raiz para `delonix container restart` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container restart` — the same flag struct and the same handler.
Atalho de raiz para `delonix container rm` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container rm` — the same flag struct and the same handler.
Atalho de raiz para `delonix container exec` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container exec` — the same flag struct and the same handler.
Atalho de raiz para `delonix container logs` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container logs` — the same flag struct and the same handler.
Atalho de raiz para `delonix container kill` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container kill` — the same flag struct and the same handler.
Atalho de raiz para `delonix container attach` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container attach` — the same flag struct and the same handler.
Atalho de raiz para `delonix container stats` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container stats` — the same flag struct and the same handler.
Pods reais multi-container (create, logs, exec, cp, attach) — N containers como uma unidade.Real multi-container pods (create, logs, exec) — N containers as one unit.
CLI de runtime compatível com o runc (ADR-0080): corre um container a partir de um bundle OCI, com o init do próprio motor por trás do contrato do runc.runc-compatible runtime CLI (ADR-0080): run a container from an OCI bundle, with the engine's own init behind the runc contract.
microVMs declarativas: create, ls, stop, apply — e, com `vm image`, as imagens VM douradas (build/push).Declarative microVMs: create, ls, stop, apply.
As operações pontuais de um container de sistema: snapshots.The one-off operations of a system container: snapshots.
Camada unificada sobre containers E VMs: ls, describe, stop, rm (ADR-0002).Unified layer over containers AND VMs: ls, describe, stop, rm (ADR-0002).
ArtefactosArtifacts
Atalho de raiz para `delonix image pull` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image pull` — the same flag struct and the same handler.
Atalho de raiz para `delonix image ls` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image ls` — the same flag struct and the same handler.
Atalho de raiz para `delonix image remove` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image remove` — the same flag struct and the same handler.
Atalho de raiz para `delonix image tag` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image tag` — the same flag struct and the same handler.
Atalho de raiz para `delonix image save` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image save` — the same flag struct and the same handler.
Atalho de raiz para `delonix image load` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image load` — the same flag struct and the same handler.
Atalho de raiz para `delonix image push` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image push` — the same flag struct and the same handler.
Imagens OCI de container: pull, list, remove, export. As imagens VM douradas mudaram-se para `vm image`.OCI images: pull, list, remove, export — and, with `vm image`, the golden VM images (build/push).
Constrói uma imagem a partir de um Dockerfile ou Delonixfile.Builds an image from a Dockerfile or Delonixfile.
Cofre de segredos cifrado em repouso — o produtor do `run --secret`.Encrypted-at-rest secret vault — the source behind `run --secret`.
ArmazenamentoStorage
Volumes nomeados e bind mounts: create, ls, inspect, rm, apply.Named volumes and bind mounts: create, ls, inspect, rm, apply.
Armazenamento de objectos S3 (buckets): ls, inspect, rm.S3 object storage (buckets): ls, inspect, rm.
RedeNetworking
Redes de utilizador: create, ls, route, inspect, rm, apply — bridge e overlay realizados fisicamente.User networks: create, ls, inspect, rm, apply — bridge and overlay are physically realized.
A infra-estrutura de baixo nível da rede — netns, flow, ingress, egress, httproute, tunnel, l4guard, capture.The low-level network plumbing — netns, flow, ingress, egress, httproute, tunnel, l4guard, capture.
Gestão de baixo nível da infra de ingress rootless.Low-level management of the rootless ingress infrastructure.
Tráfego por-container ao vivo — datapath eBPF (degrada para contadores veth).Live per-container traffic — eBPF datapath (degrades to veth counters).
Captura de pacotes crua na interface SDN de um container — o tcpdump do próprio host.Raw packet capture on a container's SDN interface — the host's own tcpdump.
Guarda de DDoS L4 à entrada — rate de ligação por origem e tecto de concorrentes.The inbound L4 DDoS guard — per-source connection rate and a concurrent cap.
Firewall de ENTRADA (regras L4 + publishes DNAT) de um container na SDN.INBOUND firewall (L4 rules + DNAT publishes) for a container on the SDN.
Firewall de SAÍDA (regras L4 + política de egress→Internet por-rede).OUTBOUND firewall (L4 rules + per-network egress→Internet policy).
Reverse-proxy L7/HTTP embutido (`kind: HTTPRoute`) — routing por Host + prefixo de path.Built-in L7/HTTP reverse proxy (`kind: HTTPRoute`) — routing by Host + path prefix.
Expõe uma porta local à internet pública via pinggy/ngrok/cloudflare (`kind: Gateway`).Exposes a local port to the public internet via pinggy/ngrok/cloudflare (`kind: Gateway`).
Os nomes de serviço dos containers expostos, no /etc/hosts do operador.The service names of exposed containers, in the operator's /etc/hosts.
ClustersClusters
Kubernetes de ponta a ponta: bootstrap kubeadm idempotente sobre SSH, ou provisionamento completo de VMs.End-to-end Kubernetes: idempotent kubeadm bootstrap over SSH, or full VM provisioning.
Gera manifestos Kubernetes a partir de containers.Generates Kubernetes manifests from containers.
DeclarativoDeclarative
Referência de campos de um Kind, gerada do próprio código — `kubectl explain` style.Field reference for a Kind, generated from the code — `kubectl explain` style.
Todos os Kinds que este motor serve: plural, nomes curtos, apiVersion e forma.Every Kind this engine serves: plural, shortnames, apiVersion and form.
Converge um manifesto — a grafia canónica de `stack apply`.Converge a manifest — the canonical spelling of `stack apply`.
Mostra o que um apply mudaria, e não muda nada.Show what an apply would change, and change nothing.
Bloqueia até os recursos do manifesto estarem prontos.Block until the manifest's resources are ready.
Trabalhar num manifesto sem tocar no host — render com defaults preenchidos.Work on a manifest without touching the host — render with defaults filled in.
O manifesto, o last-applied e o observado de UM recurso, lado a lado.The manifest, last-applied, and observed values for one resource — side by side.
O que a MÁQUINA mudou desde o último apply — a stack inteira.What the MACHINE changed since the last apply — the whole stack.
Pontua o que já tens contra o que este motor serve.Score what you already have against what this engine serves.
Aplica um manifesto inteiro (delonix-manifest.yaml) — todos os Kinds, por ordem.Applies a whole manifest (delonix-manifest.yaml) — every Kind, in dependency order.
Suporte NATIVO a docker-compose.yml (Compose Spec v2.x) — sem Docker, sem shim, direto para o motor.NATIVE support for docker-compose.yml (Compose Spec v2.x) — no Docker, no shim, straight into the engine.
Fontes pull (ADR-0021): uma passagem, o estado, suspender e retomar.Pull sources (ADR-0021): one pass, status, suspend and resume.
RecursosResources
Lista recursos de um Kind — a forma genérica de dez `ls`s.List resources of a Kind — the generic form of ten `ls` commands.
Detalhe de um recurso, em blocos — a forma genérica de dez `describe`s.Detail of one resource, in blocks — the generic form of ten `describe`s.
Remove recursos por Kind e nome — a forma genérica de dez `rm`s.Remove resources by Kind and name — the generic form of ten `rm`s.
ServirServe
O que este motor cobre da superfície de outra ferramenta — servido, recusado com razão, nunca em silêncio.What this engine covers of another tool's surface — served, refused with a reason, never in silence.
Serve um endpoint de protocolo num socket unix — cri, api, node-api, docker-api.Serve a protocol endpoint on a unix socket — cri, api, node-api, docker-api.
A API de gestão LOCAL (HTTP+JSON) num socket unix, para um control-plane externo.The LOCAL management API (HTTP+JSON) on a unix socket, for an external control plane.
Fatia da API Docker Engine, num socket unix — ciclo de vida completo de um container, não só leitura.A slice of the Docker Engine API, on a unix socket — full container lifecycle, not just reads.
O contrato de nó (gRPC + HTTP/JSON do delonix.node.v1) num socket unix.The node contract (gRPC + HTTP/JSON of delonix.node.v1) on a unix socket.
Servidor Model Context Protocol — superfície de controlo de IA LOCAL, sem inquilino.Model Context Protocol server — a LOCAL, tenancy-free AI control surface.
MotorEngine
Começa o projecto CERTO para este directório — detecta, explica-se, e delega.Start the RIGHT project for this directory — detect, explain, dispatch.
Imprime a versão (o mesmo texto que `--version`).Print the version (same output as `--version`).
O tecto de admissão do nó (`kind: RuntimePolicy` / `<root>/policy.json`).The node's admission ceiling (`kind: RuntimePolicy` / `<root>/policy.json`).
Uma preferência local, nunca um contexto: get, set, unset.A local preference, never a context: get, set, unset.
O motor em si: events, info, df, prune, monitor, thermal.The engine itself: events, info, df, prune, monitor, thermal.
Persistência no arranque: units systemd para os containers voltarem a subir no boot.Boot persistence: systemd units so containers come back up after a reboot.
Namespaces de isolamento: ls, describe — quem está de cada lado da fronteira.Isolation namespaces: ls, describe — who stands on each side of the boundary.
Backup de UM recurso — container, pod, vm ou stack — em tar.gz.Backup of ONE resource — container, pod, vm or stack — into a tar.gz.
O que cada provider consegue fazer — medido neste host, contra um catálogo com versão.What each provider can do — measured on this host, against a versioned catalog.
Dashboard de resumo/KPIs (TUI estilo htop) — RAM/rede/disco, uptime por-container, JSON e Prometheus.Summary/KPI dashboard (htop-style TUI) — RAM/network/disk, per-container uptime, JSON and Prometheus.
Autocompletion dinâmico para shells, e realce de sintaxe do VMfile para editores.Dynamic autocompletion for shells, and VMfile syntax highlighting for editors.
Páginas de manual em roff, geradas a partir deste binário — uma por comando.Manual pages in roff, generated from this binary — one per command.
Como funciona por dentro
O Delonix Engine faz o trabalho do Docker/Podman sem daemon residente: cada comando é um processo efémero que fala directamente com o kernel (namespaces, cgroups v2, pivot_root), guarda estado em ficheiros e desaparece. Em rootless, a rede é servida por um único par holder-netns + slirp4netns partilhado — não um slirp por container — com DNAT nft para o publish de portas, o que permite trocar portas e volumes a quente, sem reiniciar o container.
Porque é diferente
| Docker | Podman | Delonix | |
|---|---|---|---|
| Daemon | dockerd (root) | não (conmon por container) | não — e sem monitor residente por container |
| Rootless | opcional | sim (slirp/pasta por container) | por omissão — 1 slirp partilhado + ingress nft |
| VMs | — | machine (para si próprio) | microVMs declarativas de 1.ª classe (Cloud Hypervisor/libvirt) |
| Kubernetes | — | — | CRI próprio + bootstrap kubeadm do zero (delonix cluster) |
Delonix Engine v0.1.0
Engine for containers and microVMs, daemonless, rootless-first, kernel-native, in Rust — with its own CRI for Kubernetes.
Build, run, networking, firewall, storage and Kubernetes cluster bootstrap in a
single binary — no resident daemon, no root. Not a low-level OCI runtime (that's
runc/crun): it's the COMPLETE engine, the open layer (Apache-2.0) the
Delonix platform is built on.
One command installs the binary and every runtime dependency, picking the right variant for your CPU.
Install →delonix init detects this folder's stack and writes a complete project, already filled in.
delonix apply converges the manifest in dependency order; dashboard shows it all running.
Install
One command installs the binary and every runtime dependency (rootless networking, VMs, kernel tuning), picking the right variant for your CPU. Works on Debian/Ubuntu, Fedora/RHEL, openSUSE and Arch:
curl -fsSL https://github.com/ngolacloud/delonix/releases/latest/download/install.sh | bash
To publish port 80 or 443 (-p 80:80) add
--low-ports:
curl -fsSL .../install.sh | bash -s -- --low-ports
Without that flag, -p 80:80 is refused: the process that binds the port on the
host side is slirp4netns, unprivileged, and the kernel reserves ports below
net.ipv4.ip_unprivileged_port_start (1024 by default) — rootless Podman and Docker
hit the same wall. It's opt-in because it lowers that threshold for the whole host: from
then on, any local program can bind ports 80-1023. On a laptop that's a reasonable trade-off; on a
shared machine, the alternative that doesn't lower anything is a root proxy on port 80 forwarding
to a high port. To revert: delete /etc/sysctl.d/99-delonix-lowports.conf.
Alternative (binary only, dependencies are on you):
curl -fL -o ~/.local/bin/delonix \
https://github.com/ngolacloud/delonix/releases/latest/download/delonix-x86_64-linux
chmod +x ~/.local/bin/delonix
echo 'source <(delonix completion shell bash)' >> ~/.bashrc
Getting started
Four independent tracks, from the simplest to the most complete. Every command below was
verified against the binary — confirm any of them with --help. New to the
terms? The glossary defines daemonless,
rootless, holder-netns, Kind, converge/apply and the rest.
1 · A container
A web service on port 8080, no root and no daemon. With --net host (the
default) the container moves to its own netns with userspace NAT (slirp4netns);
-p binds to 127.0.0.1 only unless you name the address.
delonix container run -d --name web -p 8080:80 nginx
curl localhost:8080
delonix container stats # CPU/memory/PIDs
delonix container logs -f web # follow logs
delonix container stop web # the port closes on its own
delonix container start web # restarts with the same state
2 · A complete project
delonix init looks at this folder and dispatches to the right template;
delonix stack init writes a COMPLETE project (Delonixfile + manifest + cluster +
README), already filled in. Then delonix apply — the canonical spelling of
stack apply — converges the manifest in dependency order.
delonix init # detects this folder's stack
delonix stack init -t fastapi # or force a template (`-t list` shows them)
delonix apply -f delonix-manifest.yaml # converge everything the manifest declares
delonix stack plan -f delonix-manifest.yaml # what would change, changing nothing
3 · A local Kubernetes cluster
Native kind mode: the kindest/node nodes start inside the engine itself and
are bootstrapped with kubeadm — no Docker. No flags, 1
control-plane ready to use.
delonix cluster create # 1 control-plane, invented name
delonix cluster create --name dev --workers 2 # + 2 workers
delonix cluster health # is the control-plane answering? nodes Ready?
delonix cluster ls # this host's clusters (kind AND VM-based)
4 · See everything running
An htop-style panel of containers, VMs, networks and volumes. --once prints a
text snapshot and exits (the default when stdout is not a terminal); --json for
scripts/Grafana.
delonix dashboard # interactive TUI
delonix dashboard --scope container # focused on one kind of resource
delonix dashboard --once # one text snapshot and exit
CLI reference
Cargas de trabalhoWorkloads
Ciclo de vida de containers: run, ps, start, stop, rm, exec, logs, inspect, stats, apply.Container lifecycle: run, ps, start, stop, rm, exec, logs, inspect, stats, apply.
Atalho de raiz para `delonix container run` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container run` — the same flag struct and the same handler.
Atalho de raiz para `delonix container create` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container create` — the same flag struct and the same handler.
Atalho de raiz para `delonix container ps` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container ps` — the same flag struct and the same handler.
Atalho de raiz para `delonix container start` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container start` — the same flag struct and the same handler.
Atalho de raiz para `delonix container stop` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container stop` — the same flag struct and the same handler.
Atalho de raiz para `delonix container restart` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container restart` — the same flag struct and the same handler.
Atalho de raiz para `delonix container rm` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container rm` — the same flag struct and the same handler.
Atalho de raiz para `delonix container exec` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container exec` — the same flag struct and the same handler.
Atalho de raiz para `delonix container logs` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container logs` — the same flag struct and the same handler.
Atalho de raiz para `delonix container kill` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container kill` — the same flag struct and the same handler.
Atalho de raiz para `delonix container attach` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container attach` — the same flag struct and the same handler.
Atalho de raiz para `delonix container stats` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix container stats` — the same flag struct and the same handler.
Pods reais multi-container (create, logs, exec, cp, attach) — N containers como uma unidade.Real multi-container pods (create, logs, exec) — N containers as one unit.
CLI de runtime compatível com o runc (ADR-0080): corre um container a partir de um bundle OCI, com o init do próprio motor por trás do contrato do runc.runc-compatible runtime CLI (ADR-0080): run a container from an OCI bundle, with the engine's own init behind the runc contract.
microVMs declarativas: create, ls, stop, apply — e, com `vm image`, as imagens VM douradas (build/push).Declarative microVMs: create, ls, stop, apply.
As operações pontuais de um container de sistema: snapshots.The one-off operations of a system container: snapshots.
Camada unificada sobre containers E VMs: ls, describe, stop, rm (ADR-0002).Unified layer over containers AND VMs: ls, describe, stop, rm (ADR-0002).
ArtefactosArtifacts
Atalho de raiz para `delonix image pull` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image pull` — the same flag struct and the same handler.
Atalho de raiz para `delonix image ls` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image ls` — the same flag struct and the same handler.
Atalho de raiz para `delonix image remove` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image remove` — the same flag struct and the same handler.
Atalho de raiz para `delonix image tag` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image tag` — the same flag struct and the same handler.
Atalho de raiz para `delonix image save` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image save` — the same flag struct and the same handler.
Atalho de raiz para `delonix image load` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image load` — the same flag struct and the same handler.
Atalho de raiz para `delonix image push` — a mesma struct de flags e o mesmo handler.Root shortcut for `delonix image push` — the same flag struct and the same handler.
Imagens OCI de container: pull, list, remove, export. As imagens VM douradas mudaram-se para `vm image`.OCI images: pull, list, remove, export — and, with `vm image`, the golden VM images (build/push).
Constrói uma imagem a partir de um Dockerfile ou Delonixfile.Builds an image from a Dockerfile or Delonixfile.
Cofre de segredos cifrado em repouso — o produtor do `run --secret`.Encrypted-at-rest secret vault — the source behind `run --secret`.
ArmazenamentoStorage
Volumes nomeados e bind mounts: create, ls, inspect, rm, apply.Named volumes and bind mounts: create, ls, inspect, rm, apply.
Armazenamento de objectos S3 (buckets): ls, inspect, rm.S3 object storage (buckets): ls, inspect, rm.
RedeNetworking
Redes de utilizador: create, ls, route, inspect, rm, apply — bridge e overlay realizados fisicamente.User networks: create, ls, inspect, rm, apply — bridge and overlay are physically realized.
A infra-estrutura de baixo nível da rede — netns, flow, ingress, egress, httproute, tunnel, l4guard, capture.The low-level network plumbing — netns, flow, ingress, egress, httproute, tunnel, l4guard, capture.
Gestão de baixo nível da infra de ingress rootless.Low-level management of the rootless ingress infrastructure.
Tráfego por-container ao vivo — datapath eBPF (degrada para contadores veth).Live per-container traffic — eBPF datapath (degrades to veth counters).
Captura de pacotes crua na interface SDN de um container — o tcpdump do próprio host.Raw packet capture on a container's SDN interface — the host's own tcpdump.
Guarda de DDoS L4 à entrada — rate de ligação por origem e tecto de concorrentes.The inbound L4 DDoS guard — per-source connection rate and a concurrent cap.
Firewall de ENTRADA (regras L4 + publishes DNAT) de um container na SDN.INBOUND firewall (L4 rules + DNAT publishes) for a container on the SDN.
Firewall de SAÍDA (regras L4 + política de egress→Internet por-rede).OUTBOUND firewall (L4 rules + per-network egress→Internet policy).
Reverse-proxy L7/HTTP embutido (`kind: HTTPRoute`) — routing por Host + prefixo de path.Built-in L7/HTTP reverse proxy (`kind: HTTPRoute`) — routing by Host + path prefix.
Expõe uma porta local à internet pública via pinggy/ngrok/cloudflare (`kind: Gateway`).Exposes a local port to the public internet via pinggy/ngrok/cloudflare (`kind: Gateway`).
Os nomes de serviço dos containers expostos, no /etc/hosts do operador.The service names of exposed containers, in the operator's /etc/hosts.
ClustersClusters
Kubernetes de ponta a ponta: bootstrap kubeadm idempotente sobre SSH, ou provisionamento completo de VMs.End-to-end Kubernetes: idempotent kubeadm bootstrap over SSH, or full VM provisioning.
Gera manifestos Kubernetes a partir de containers.Generates Kubernetes manifests from containers.
DeclarativoDeclarative
Referência de campos de um Kind, gerada do próprio código — `kubectl explain` style.Field reference for a Kind, generated from the code — `kubectl explain` style.
Todos os Kinds que este motor serve: plural, nomes curtos, apiVersion e forma.Every Kind this engine serves: plural, shortnames, apiVersion and form.
Converge um manifesto — a grafia canónica de `stack apply`.Converge a manifest — the canonical spelling of `stack apply`.
Mostra o que um apply mudaria, e não muda nada.Show what an apply would change, and change nothing.
Bloqueia até os recursos do manifesto estarem prontos.Block until the manifest's resources are ready.
Trabalhar num manifesto sem tocar no host — render com defaults preenchidos.Work on a manifest without touching the host — render with defaults filled in.
O manifesto, o last-applied e o observado de UM recurso, lado a lado.The manifest, last-applied, and observed values for one resource — side by side.
O que a MÁQUINA mudou desde o último apply — a stack inteira.What the MACHINE changed since the last apply — the whole stack.
Pontua o que já tens contra o que este motor serve.Score what you already have against what this engine serves.
Aplica um manifesto inteiro (delonix-manifest.yaml) — todos os Kinds, por ordem.Applies a whole manifest (delonix-manifest.yaml) — every Kind, in dependency order.
Suporte NATIVO a docker-compose.yml (Compose Spec v2.x) — sem Docker, sem shim, direto para o motor.NATIVE support for docker-compose.yml (Compose Spec v2.x) — no Docker, no shim, straight into the engine.
Fontes pull (ADR-0021): uma passagem, o estado, suspender e retomar.Pull sources (ADR-0021): one pass, status, suspend and resume.
RecursosResources
Lista recursos de um Kind — a forma genérica de dez `ls`s.List resources of a Kind — the generic form of ten `ls` commands.
Detalhe de um recurso, em blocos — a forma genérica de dez `describe`s.Detail of one resource, in blocks — the generic form of ten `describe`s.
Remove recursos por Kind e nome — a forma genérica de dez `rm`s.Remove resources by Kind and name — the generic form of ten `rm`s.
ServirServe
O que este motor cobre da superfície de outra ferramenta — servido, recusado com razão, nunca em silêncio.What this engine covers of another tool's surface — served, refused with a reason, never in silence.
Serve um endpoint de protocolo num socket unix — cri, api, node-api, docker-api.Serve a protocol endpoint on a unix socket — cri, api, node-api, docker-api.
A API de gestão LOCAL (HTTP+JSON) num socket unix, para um control-plane externo.The LOCAL management API (HTTP+JSON) on a unix socket, for an external control plane.
Fatia da API Docker Engine, num socket unix — ciclo de vida completo de um container, não só leitura.A slice of the Docker Engine API, on a unix socket — full container lifecycle, not just reads.
O contrato de nó (gRPC + HTTP/JSON do delonix.node.v1) num socket unix.The node contract (gRPC + HTTP/JSON of delonix.node.v1) on a unix socket.
Servidor Model Context Protocol — superfície de controlo de IA LOCAL, sem inquilino.Model Context Protocol server — a LOCAL, tenancy-free AI control surface.
MotorEngine
Começa o projecto CERTO para este directório — detecta, explica-se, e delega.Start the RIGHT project for this directory — detect, explain, dispatch.
Imprime a versão (o mesmo texto que `--version`).Print the version (same output as `--version`).
O tecto de admissão do nó (`kind: RuntimePolicy` / `<root>/policy.json`).The node's admission ceiling (`kind: RuntimePolicy` / `<root>/policy.json`).
Uma preferência local, nunca um contexto: get, set, unset.A local preference, never a context: get, set, unset.
O motor em si: events, info, df, prune, monitor, thermal.The engine itself: events, info, df, prune, monitor, thermal.
Persistência no arranque: units systemd para os containers voltarem a subir no boot.Boot persistence: systemd units so containers come back up after a reboot.
Namespaces de isolamento: ls, describe — quem está de cada lado da fronteira.Isolation namespaces: ls, describe — who stands on each side of the boundary.
Backup de UM recurso — container, pod, vm ou stack — em tar.gz.Backup of ONE resource — container, pod, vm or stack — into a tar.gz.
O que cada provider consegue fazer — medido neste host, contra um catálogo com versão.What each provider can do — measured on this host, against a versioned catalog.
Dashboard de resumo/KPIs (TUI estilo htop) — RAM/rede/disco, uptime por-container, JSON e Prometheus.Summary/KPI dashboard (htop-style TUI) — RAM/network/disk, per-container uptime, JSON and Prometheus.
Autocompletion dinâmico para shells, e realce de sintaxe do VMfile para editores.Dynamic autocompletion for shells, and VMfile syntax highlighting for editors.
Páginas de manual em roff, geradas a partir deste binário — uma por comando.Manual pages in roff, generated from this binary — one per command.
How it works inside
Delonix Engine does Docker/Podman's job with no resident daemon: every command is an ephemeral process that talks to the kernel directly (namespaces, cgroups v2, pivot_root), keeps its state in files, and exits. In rootless mode, networking is served by a single shared holder-netns + slirp4netns pair — not one slirp per container — with nft DNAT for port publishing, which is what lets you swap ports and volumes on the fly, with no container restart.
Why it's different
| Docker | Podman | Delonix | |
|---|---|---|---|
| Daemon | dockerd (root) | no (conmon per container) | no — and no resident per-container monitor |
| Rootless | optional | yes (slirp/pasta per container) | by default — 1 shared slirp + nft ingress |
| VMs | — | machine (for itself) | first-class declarative microVMs (Cloud Hypervisor/libvirt) |
| Kubernetes | — | — | own CRI + kubeadm bootstrap from scratch (delonix cluster) |