Install on a fresh server
The fastest path is grit cloud init (the Quickstart). This page is the
manual, step-by-step install for a fresh Ubuntu 24.04 VPS, so you know exactly what
happens.
0. Prerequisites
- Ports 80, 443, 8080 open. 2 vCPU / 4 GB RAM recommended.
- A domain with DNS pointed at the server (an
Arecord fororbita.example.com, plus a wildcard or per-app records).
dig orbita.example.com +short must return your server IP. Let's Encrypt cannot issue a
certificate until it does.
1. Connect and update
ssh root@YOUR_SERVER_IP
apt update && apt upgrade -y
apt install -y curl git ufw2. Firewall
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable3. Docker + Swarm
curl -fsSL https://get.docker.com | sh
docker --version # 24+ expected
docker swarm init # required — Orbita runs workloads as Swarm services4. Install Orbita
curl -sSL https://raw.githubusercontent.com/MUKE-coder/orbita/main/install.sh \
| sudo ORBITA_DOMAIN=orbita.example.com ORBITA_ACME_EMAIL=you@example.com bash -s -- --yesThe installer generates secrets, writes docker-compose.yml + .env, and starts Orbita +
PostgreSQL + Redis + Traefik. Traefik requests a Let's Encrypt certificate on first request.
Generate a 32-byte key (openssl rand -hex 32). It derives every org's encryption key — a
weak or missing value silently weakens all tenant secrets. Orbita refuses to start without it.
5. Verify
curl -s http://localhost:8080/health # {"status":"ok","version":"0.1.0"}
cd /opt/orbita && docker compose ps # orbita, postgres, redis, traefik → Up
curl -I https://orbita.example.com # 200 from the outside worldOpen https://orbita.example.com, register the first user (they become super-admin), and
create your first organization.
Managing the install
cd /opt/orbita
docker compose pull orbita
docker compose up -d orbita # migrations run automatically on startupNext
- Deploy a Grit app
- Troubleshooting if anything above didn't go clean.