Three distribution tracks for the same stack. Each is a plan with starter artifacts already in-tree; execution order recommended: Docker → Providers → Live ISO.
One CUDA image running every service under supervisord; dashboards come
up with docker compose --profile allinone up.
Starter artifacts:
docker/all-in-one.Dockerfile— cuda devel base → builds llama.cpp, installs venv deps, supervisord entrydocker/supervisord-all.conf— programs: llama, router, agents, workflow, autonomous, dashboard (+ auto-restart, stdout logs)
Plan:
- ✅ artifacts in tree; build:
docker build -f docker/all-in-one.Dockerfile -t freeai/allinone . - compose service
allinone(profileallinone) mounting ./models, publishing 8010/8020/8030/8040/8050/9001 - CI: add matrix entry to docker-publish.yml building/pushing
ghcr.io/<repo>-allinoneon tags - Healthcheck = dashboard /api/status; supervisor handles per-service restarts inside the container
| Provider | Launch path | Notes |
|---|---|---|
| Vast.ai | existing pattern: template env PROVISIONING_SCRIPT → GitHub Release bundle tarball → onstart fetch+run |
reuse control-plane-deploy experience; publish bundle via release.yml |
| RunPod | Docker template from GHCR allinone image; container registry auth public; env = stack.env values; volume mount /models |
no systemd — supervisord image fits perfectly |
| Lambda Labs / Paperspace | bare Ubuntu + install-stack.sh (drivers preinstalled) |
fastest bare-metal path |
| Hetzner GPU / OVH | same as Lambda; add UFW block from provisioner | EU latency win |
| AWS g5/g6· Azure NC · GCP G2 (spot) | Terraform module (future): spot VM + cloud-init running install-stack.sh | cost guard: optimizer's eco mode matters most here |
Common contract: any host that can run
curl bundle | bash or pull one image gets the full stack + dashboards.
Provider-specific work reduces to env plumbing.
Approach (final): remaster the official Ubuntu 24.04 live-server ISO.
live/build-live.sh extracts the ISO, adds a /freeai/ payload (repo
tarball + first-boot provisioner), writes a cloud-init NoCloud autoinstall
seed, prepends three GRUB entries, and repacks with the canonical Ubuntu
UEFI/BIOS xorriso flags.
Boot menu on the built ISO:
- Install FreeAI AI Stack (wipes disk) - boots Subiquity with
autoinstall ds=nocloud;s=/cdrom/autoinstall: unattended Ubuntu +nvidia-driver-570-server+ SSH; late-commands copy the repo to/opt/freeaiand enablefreeai-first-boot.service, which runsinstall-stack.sh(CUDA llama.cpp build), downloads models, provisions coding clients, and starts the stack. Loginfreeai/freeai- forced-change note in live/README.md. - Try Ubuntu Server (FreeAI Live) - stock live session.
- Rescue shell - live rescue target.
Build: any Ubuntu 24.04 host, apt install xorriso isolinux, one
command. Network required during installation (NVIDIA apt packages);
the FreeAI payload itself rides on the ISO. Acceptance: boot menu
shows 3 entries; entry 1 completes unattended on a wipe-test VM and
freeai.py status reports all services UP on first boot; entry 2
boots a working live session.