packets are the future, single binary. zero config. ships in 3 commands.

cubedog introducing packets that can outperform containers in many cases. just pack your app into lightweight packets, push to R2 or self-hosted storage, deploy with built-in auto-scaling. TOML config, not YAML manifests. zero telemetry, self-hostable forever.

single binary ~30MB total zero config auto-scaling MIT license self-hostable
quick install
$curl -sSL https://cubedog.aysdog.com/install.sh | bash
Linux & macOS (x86_64, arm64). Or build from source Manual downloads ↓
see it in action
bash — cubedog
how it works
01
pack
cubedog detects your runtime (Node, Python, Go, Rust) and builds a lightweight packet with smart layer caching
02
push
upload to Cloudflare R2, S3, or self-hosted storage. zero egress fees with R2
03
deploy
orchestrator schedules replicas across worker nodes with built-in load balancing
04
scale
auto-healing, health checks, and resource-based scaling. zero downtime updates
what makes cubedog different
blazing fast builds
smart layer caching separates runtime, dependencies, and app code. only rebuild what changed. 10x faster than Docker.
lightweight packets
50-300MB packets vs multi-GB Docker images. compressed with zstd. delta uploads only send changed layers.
container isolation
Linux namespaces + cgroups for resource limits. seccomp profiles, AppArmor integration. same tech as Docker.
built-in orchestration
scheduler, load balancer, auto-healing, rolling updates. no separate control plane. single binary does everything.
zero-config secrets
encrypted vault with AES-256-GCM. reference secrets in TOML as vault://namespace/key. never baked into packets.
zero egress fees
push to Cloudflare R2 for $0 egress. or use S3, local registry, any S3-compatible storage. self-hostable forever.
cubedog vs the usual suspects
feature cubedog Docker + K8s Docker Swarm
setup complexity single binary daemon + cluster + kubectl daemon + swarm init
config format TOML (simple) YAML manifests YAML compose
build speed 2-5 seconds 30-120 seconds 30-120 seconds
image size 50-300MB packets 500MB-2GB images 500MB-2GB images
registry egress $0 with R2 $$$ DockerHub/ECR $$$ DockerHub/ECR
orchestration built-in separate (K8s) built-in
learning curve minutes weeks hours
self-hostable always yes yes
command reference
command what it does
cubedog init initialize config at ~/.cubedog/config.json — run once
cubedog pack build a packet from your app. auto-detects runtime (Node, Python, Go, Rust)
cubedog push <packet> upload packet to registry (R2, S3, local). only uploads changed layers
cubedog deploy <ref> --replicas=N deploy a service with N replicas. auto-healing and load balancing enabled
cubedog scale <service> --replicas=N scale a running service up or down. zero downtime
cubedog status [service] show running services, replicas, health status
cubedog logs <service> --follow stream logs from all replicas of a service
cubedog stop <service> stop all replicas of a service and remove from scheduler
cubedog secret set <ns>/<key> <val> store encrypted secret. reference in TOML as vault://ns/key
cubedog cubes list worker nodes, resources, running containers
configuration example
# cubedog.toml — your app config

name = "my-api"
environment = "production"

[[services]]
name = "api"
runtime = "node20"
entrypoint = "/app/server.js"
port = 3000
replicas = 3

# Resources
[services.resources]
cpu = "1.0"
memory = "512MB"

# Health check
[services.healthcheck]
path = "/health"
interval = "10s"

# Environment variables
[services.env]
NODE_ENV = "production"
LOG_LEVEL = "info"
downloads — beta v0.3.0
cubedog is in public beta. packet builder and registry client are production-ready. orchestrator is functional but under active development. expect breaking changes until v1.0.
Linux (amd64)
x86_64 — Ubuntu, Fedora, Arch, Debian
↓ download
Linux (arm64)
ARM64 — Raspberry Pi, AWS Graviton
↓ download
macOS (Apple Silicon)
M1, M2, M3, M4 chips
↓ download
from source
Go 1.22+ required
→ github
questions? bugs? open an issue · want to contribute? read the source · ← back to aysdog