Delonix Engine v0.45.0
Engine de containers e microVMs daemonless, rootless-first, kernel-native, em Rust — com CRI próprio para Kubernetes. O engine open-source que alimenta o Delonix.
Não é um runtime OCI de baixo nível (isso é o runc/crun): é um
engine COMPLETO de containers e VMs — build, run, rede, firewall, storage e
bootstrap de clusters Kubernetes, tudo num só binário. É a camada aberta (Apache-2.0) sobre a qual
assenta a plataforma Delonix.
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.
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/angolardevops/delonix-runtime/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/angolardevops/delonix-runtime/releases/latest/download/delonix-x86_64-linux
chmod +x ~/.local/bin/delonix
echo 'source <(delonix completion bash)' >> ~/.bashrc
Primeiros passos
# um serviço web na porta 8080, sem root, sem daemon
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
Referência da CLI
Ciclo de vida de containers: run, ps, start, stop, rm, exec, logs, inspect, stats, apply.
Camada unificada sobre containers E VMs: ls, describe, stop, rm (ADR-0002).
Pods reais multi-container (create, ls, describe, rm, logs) — N containers como uma unidade.
Imagens OCI: pull, ls, rm, export — e, com --vm, as imagens VM douradas (build/push).
Constrói uma imagem a partir de um Dockerfile ou Delonixfile.
microVMs declarativas: create, ls, status, stop, rm, apply.
Volumes nomeados e bind mounts: create, ls, inspect, rm, apply.
Redes de utilizador: create, ls, inspect, rm, apply — bridge e overlay realizados fisicamente.
Aplica um manifesto inteiro (delonix-manifest.yaml) — todos os Kinds, por ordem.
Suporte NATIVO a docker-compose.yml (Compose Spec v2.x) — sem Docker, sem shim, direto para o motor.
Kubernetes de ponta a ponta: bootstrap kubeadm idempotente sobre SSH, ou provisionamento completo de VMs.
Cofre de segredos cifrado em repouso — o produtor do `run --secret`.
Volumes de REDE (NFS/CIFS/WebDAV) montáveis, estilo PersistentVolume do k8s.
Uma fatia ISOLADA e com QUOTA própria de um `Storage` — vários container/vm/pod partilham um NAS.
Firewall de ENTRADA (regras L4 + publishes DNAT) de um container na SDN.
Firewall de SAÍDA (regras L4 + política de egress→Internet por-rede).
Reverse-proxy L7/HTTP embutido (`kind: HTTPRoute`) — routing por Host + prefixo de path.
Expõe uma porta local à internet pública via pinggy/ngrok/cloudflare (`kind: Tunnel`).
Tráfego por-container ao vivo — datapath eBPF (degrada para contadores veth).
Persistência no arranque: units systemd para os containers voltarem a subir no boot.
O motor em si: events, info, df, prune, monitor, thermal.
Dashboard de resumo/KPIs (TUI estilo htop) — RAM/rede/disco, uptime por-container, JSON e Prometheus.
Fatia da API Docker Engine, num socket unix — ciclo de vida completo de um container, não só leitura.
Gera manifestos Kubernetes a partir de containers.
Gestão de baixo nível da infra de ingress rootless.
Autocompletion dinâmico para bash, zsh, fish, elvish e powershell.
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) |