Self-hosted app platform
Your own Fly.io. On hardware you own.
crucible is not just a sandbox. Deploy a durable app, reach it by name, roll out updates with zero downtime, and let it scale to zero when idle, all from one Go binary with no orchestrator to run. No cloud account, no per-second meter, no data leaving your metal.
- ~125 ms wake from zero
- self-heal from spec
- zero-downtime updates
- one binary no orchestrator
a platform, not a toy
Everything a hosted platform gives you
Durable and self-healing
The daemon reconciles from desired state. A crashed instance is replaced automatically, and a slept app survives a daemon restart.
Reach it by name
An ingress proxy routes web.<domain> to the current instance. Apps call each other privately at <app>.internal, default-deny.
Scale to zero, and out
Idle apps sleep to ~0 RAM and wake in about 125 ms on request. Busy apps fork N load-balanced replicas that autoscale on concurrency.
Ship without downtime
Rolling updates boot the new version, gate on health, flip the route, then drain the old. A failed update keeps the old instance serving.
operate it
Deploy, scale, observe from the CLI
deploy
One command
Boot an image as a durable app, reachable by name.
$ crucible app create web \
--image ghcr.io/me/api -p 80
# reachable at web.apps.localscale
Zero to N
Sleep when idle, fork replicas under load, all by policy.
$ crucible app create web \
--min-scale 0 --max-scale 8observe
See everything
Per-app metrics, OTLP export, and on-demand packet capture.
$ curl localhost:9000/metrics | grep app_ $ crucible app capture web -w cap.pcap
the whole apps tier, self-hosted
Deploy, scale, heal, observe. On your metal.
Everything a hosted platform gives you, running on hardware you already own.
$ curl -fsSL https://github.com/gnana997/crucible/releases/latest/download/install.sh | sudo bash -s -- --with-deps --enable