Cobalt — Deploy anything, anywhere.
An open-source, self-hostable alternative to Heroku, Netlify, Render, Vercel, and AWS Amplify. Built for Docker Swarm with automatic HTTPS via Caddy.
Powers mission-critical infrastructure for over 19,000 organizations via Blue.
brew install heyblueteam/tap/cobaltscoop bucket add heyblueteam https://github.com/heyblueteam/scoop-bucket
scoop install cobalt# Pull the latest image
docker pull ghcr.io/heyblueteam/cobalt:latest
# Run with Docker Compose (recommended)
curl -sL https://raw.githubusercontent.com/heyblueteam/cobalt/main/deploy/compose/docker-compose.yml | docker compose -f - up -dDownload the latest release for your platform from the GitHub Releases page:
| OS | Architecture | Download |
|---|---|---|
| macOS | Apple Silicon | cobalt_vX.X.X_darwin_arm64.tar.gz |
| macOS | Intel | cobalt_vX.X.X_darwin_amd64.tar.gz |
| Linux | ARM64 | cobalt_vX.X.X_linux_arm64.tar.gz |
| Linux | AMD64 | cobalt_vX.X.X_linux_amd64.tar.gz |
| Windows | AMD64 | cobalt_vX.X.X_windows_amd64.zip |
Extract and move to your PATH:
tar -xzf cobalt_*.tar.gz
sudo mv cobalt /usr/local/bin/go install github.com/heyblueteam/cobalt/cmd/cobalt@latestcobalt init user@your-server.comThis SSHs into your server, deploys the Cobalt stack via Docker Compose, and configures your local CLI.
# Add a project
cobalt projects add myapp --github-repo owner/repo
# Configure environment
# Each var is exposed at /run/secrets/KEY during build, plus an aggregate
# /run/secrets/.env containing every var (drop-in for disco-style Dockerfiles).
cobalt env set DATABASE_URL=postgres://...
# Deploy
cobalt deploy# List deployments
cobalt deployments list
# Stream logs
cobalt logs -f
# Live resource dashboard (host + per-container)
cobalt stats- Zero-config deployments — Push to Git, Cobalt handles the rest
- cobalt.json — Drop a single config file in your repo and it just works
- Automatic HTTPS — Caddy integrates seamlessly, certificates auto-renew
- Docker Swarm ready — Single command deploys your stack to Swarm
- Sidecar database — Built-in rqlite for HA-ready persistence (no external DB needed)
- GitHub integration — Webhook-driven deploys from any GitHub repo
- Live monitoring —
cobalt statsshows host + per-container CPU/memory grouped by project, from your laptop - Single binary — One executable, one deployment target
Most deployment tools force you into a specific workflow. Cobalt is different:
| Feature | Cobalt | Kubernetes | Docker Compose |
|---|---|---|---|
| Single binary | ✅ | ❌ | ✅ |
| No YAML config | ✅ | ❌ | ❌ |
| Auto HTTPS | ✅ | ❌ | ❌ |
| Git push deploy | ✅ | ❌ | ❌ |
| Swarm native | ✅ | ❌ | ❌ |
| Built-in DB | ✅ (rqlite) | ❌ | ❌ |
┌─────────────────────────────────────────────────────────────┐
│ COBALT DAEMON │
├─────────────────────────────────────────────────────────────┤
│ │
│ CLI (You) ──────────► HTTP API ──────────► Deploy │
│ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ │
│ │ Store │ │ Build │ │
│ │ (rqlite) │ │ Kit │ │
│ └──────────┘ └──────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────────────────────┐ │
│ │ Caddy + Docker │ │
│ └──────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
- Docker (with Swarm mode enabled)
- Go 1.25+ (for development)
- Linux/ARM64 (for production)
Full documentation coming soon.
# Clone
git clone https://github.com/heyblueteam/cobalt.git
cd cobalt
# Build
go build -o cobalt ./cmd/cobalt
# Test
go test ./...
# Run locally
./cobalt server --addr :8080 --data-dir /tmp/cobalt-dataCobalt is structured as a monolithic Go application with clear boundaries:
cmd/cobalt/ # CLI commands (cobra)
internal/server/ # Daemon HTTP API
├── store/ # Persistence layer (rqlite)
├── deploy/ # Deployment engine
├── docker/ # Docker client
└── caddy/ # Caddy admin client
Cobalt powers mission-critical infrastructure for over 19,000 organizations via Blue.
Contributions welcome! Please open an issue or submit a PR on GitHub.
MIT License — see LICENSE for details.
Built by Blue