Docker Stack Setup
Docker Stack Setup
NuSaaS runs as a 10-container stack orchestrated via Docker Compose. For a full breakdown of how these services connect — including caching, search, queues, and module integration — see Platform Architecture.
Docker Runtime Installation
To install Docker Engine and Docker Compose v2 on Ubuntu/Debian:
# 1. Update system packages
sudo apt-get update && sudo apt-get upgrade -y
# 2. Install prerequisites
sudo apt-get install -y ca-certificates curl gnupg lsb-release
# 3. Add Docker's GPG key
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 4. Set up stable repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 5. Install Docker Engine + Compose
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Download Stack Configuration
Create the directory and download the official production compose file:
mkdir -p /opt/nusaas && cd /opt/nusaas
curl -fsSL https://get.nusaas.com/docker-compose.yml -o docker-compose.yml
The 10 Services
| Service role | Default host port | Purpose |
|---|---|---|
| API | 4000 | REST API |
| Web | 4001 | React SPA |
| Docs | 4002 | Product documentation site |
| WebSocket | 8083 | Real-time channel server |
| Worker | — (internal) | Background job processing |
| Scheduler | — (internal) | Scheduled tasks |
| Database | — (internal) | Primary data store |
| Cache | — (internal) | Cache and queue broker |
| Search | — (internal) | Full-text search indexes |
| Updater | — (internal) | Automated container image updates |
Internal networking
All application containers join a private Docker bridge network. The API connects to data services using internal hostnames configured in your environment file — not public DNS.
Do not publish database, cache, or search ports to the public internet in production.