Skip to content

Prerequisites

| Resource | Minimum | Recommended (500+ agents) | |---|---|---| | CPU | 2 vCPU | 4 vCPU | | RAM | 4 GB | 8 GB | | Disk | 40 GB SSD | 100 GB SSD | | OS | Ubuntu 22.04+ / Debian 12+ | Ubuntu 24.04 LTS | | Network | Public IP, ports 80/443 open | Static IP with DNS A record |

Breeze runs entirely in Docker containers. Install Docker Engine with the Compose plugin:

Terminal window
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# Log out and back in, then verify:
docker compose version

Node.js and pnpm are not required for standard Docker deployments — the API container handles database migrations automatically on startup via AUTO_MIGRATE=true (the default).

You only need these tools if you are doing local development or managing migrations manually:

Terminal window
# Install Node 20+
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
# Install pnpm
npm install -g pnpm@9
Terminal window
sudo apt-get install -y git

Point your domain to your server’s public IP:

A breeze.yourdomain.com → 203.0.113.10

Caddy will automatically provision a TLS certificate from Let’s Encrypt once DNS resolves.

Only needed if building the agent from source (pre-built binaries are available):

Terminal window
# Go 1.25+
wget https://go.dev/dl/go1.25.0.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.25.0.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin

Ensure these ports are accessible:

| Port | Protocol | Purpose | |---|---|---| | 80 | TCP | HTTP → HTTPS redirect (Caddy) | | 443 | TCP | HTTPS (web UI, API, agent WebSocket) | | 3478 | TCP/UDP | TURN server (coturn — required only if using WebRTC remote desktop) | | 49152–65535 | UDP | TURN media relay port range (coturn — required only if using TURN) |

All other services (PostgreSQL, Redis, Prometheus, Grafana) bind to 127.0.0.1 and are not exposed publicly.