Skip to main content

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 roleDefault host portPurpose
API4000REST API
Web4001React SPA
Docs4002Product documentation site
WebSocket8083Real-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.