Your own Heroku. Any server. One command. Everything running.
An open-source Internal Developer Platform that turns any Linux server into a production-ready cluster. Developers write code — Atlas handles the rest.
curl -fsSL https://atlas.codeatlas.com.br/install.sh | bashOr build from source:
git clone https://github.com/codeatlasdev/atlas.git
cd atlas && bun install && bun run buildAtlas is an IDP (Internal Developer Platform) for teams that want the Heroku/Vercel experience on their own infrastructure. Point it at any VPS — Hetzner, DigitalOcean, AWS, bare metal — and Atlas provisions a full production stack automatically.
atlas deploy # that's it. DNS, HTTPS, scaling — all automatic.What the developer never touches:
- Kubernetes manifests
- Dockerfiles
- DNS records
- SSL certificates
- Secrets management
- Server provisioning
- CI/CD pipelines
# 1. Authenticate
atlas login
# 2. Provision a server (any VPS, any provider)
atlas infra setup --host root@your-server.com --domain myapp.com
# 3. Deploy
cd your-project
atlas deploy
# 4. Done — your app is live at https://myapp.comAtlas reads an atlas.yaml in your project root and handles everything:
name: myapp
services:
api:
type: api
port: 3001
domain: api.myapp.com
web:
type: web
domain: myapp.com
infra:
postgres: true
redis: trueFrom this single file, Atlas:
- Builds Docker images for each service
- Pushes to your container registry (GHCR)
- Deploys to your Kubernetes cluster via the Control Panel
- Configures DNS automatically via Cloudflare
- Provisions HTTPS via Let's Encrypt
- Manages secrets encrypted at rest, synced to the cluster
One command turns a fresh Linux server into a production cluster:
| Component | Purpose |
|---|---|
| K3s | Lightweight Kubernetes |
| Traefik v3 | Ingress + automatic HTTPS redirect |
| cert-manager | Let's Encrypt certificates |
| Prometheus + Grafana | Metrics + dashboards |
| Loki + Alloy | Centralized logs |
| ArgoCD | GitOps continuous deployment |
┌─────────────────────────────────────────────────────────────┐
│ Developer │
│ │
│ atlas deploy ─────────► Control Panel API │
│ atlas logs (the brain) │
│ atlas env set │ │
│ atlas login │ │
└──────────────────────────────────┼──────────────────────────┘
│
┌──────────────┼──────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Server 1 │ │ Server 2 │ │ Server N │
│ K3s │ │ K3s │ │ K3s │
│ Traefik │ │ Traefik │ │ Traefik │
│ Your App │ │ Your App │ │ Your App │
└──────────┘ └──────────┘ └──────────┘
│ │ │
└──────────────┼──────────────┘
│
┌──────┴──────┐
│ Cloudflare │
│ DNS + Proxy │
└─────────────┘
atlas login Authenticate with GitHub
atlas infra setup Provision a fresh server
atlas deploy Build → push → deploy to cluster
atlas status Cluster overview
atlas logs [service] -f Stream logs in real-time
atlas env list|set|pull Manage secrets
atlas exec [service] Shell into a container
atlas restart [service|all] Rolling restart
atlas scale [service] -r N Scale replicas
atlas preview start|stop|list Ephemeral preview environments
atlas db migrate|psql|backup Database management
atlas panel setup Connect CLI to Control Panel
atlas panel status Show servers and projects
atlas panel config Configure GitHub App, Cloudflare (interactive)
atlas panel server add Add and provision a server
atlas panel server list List servers with status
| Layer | Technology |
|---|---|
| CLI | Bun + citty + @clack/prompts |
| Panel API | Elysia + Drizzle ORM + PostgreSQL |
| Encryption | AES-256-GCM via Web Crypto API |
| Auth | JWT (HMAC-SHA256) + GitHub OAuth |
| Container Runtime | K3s (lightweight Kubernetes) |
| Ingress | Traefik v3 |
| Certificates | cert-manager + Let's Encrypt |
| DNS | Cloudflare API |
| Monitoring | Prometheus + Grafana |
| Logs | Loki + Alloy |
| Registry | GitHub Container Registry |
| Docs | Fumadocs + Next.js |
- Control Panel API — deploy, DNS, secrets, logs, provisioning
- CLI — deploy, panel, login, env commands
- DNS automation — Cloudflare integration
- Secrets management — encrypted at rest + K8s sync
- Server provisioner — K3s + full monitoring stack
- Logs streaming — SSE via kubectl
- Documentation — Fumadocs site
- @atlas/env — Type-safe environment variables from
atlas.yaml - atlas dev — Local development (reads atlas.yaml → docker-compose)
- SDK packages — @atlas/db, @atlas/cache, @atlas/log
- Web UI — Control Panel dashboard
- atlas create — Full project scaffolding + first deploy
Full documentation at atlas.codeatlas.com.br
# Clone
git clone https://github.com/codeatlasdev/atlas.git
cd atlas
# Install dependencies
bun install
# Run CLI in dev mode
bun run dev -- deploy
# Run Control Panel API
cd panel && docker compose up -d # PostgreSQL
cd panel/api && bun run src/seed.ts # Create org + admin
bun run dev:panel # Start API on :3100
# Run docs
cd docs && bun install && bun run devBuilt by CodeAtlas