Skip to main content

Install the container stack

Public distribution is temporarily paused. Approved operators use private images ghostdev1/nusaas-backend:backend-VERSION and ghostdev1/nusaas-backend:frontend-VERSION. Run docker login with an account explicitly granted repository access before installation. Existing images 1.0.12 support linux/amd64; they do not include later cloud changes. Do not use latest or the managed-cloud image.

Guided installation: direct Caddy HTTPS​

Open get.nusaas.com to generate an installation command from non-secret choices. Secrets are generated or entered on your server. Alternatively:

curl -fsSL https://get.nusaas.com/install.sh -o install.sh
# Inspect the script and select an actually published release.
bash install.sh --version YOUR_PUBLISHED_VERSION

Run on Ubuntu/Debian or Ubuntu/WSL2 with Docker integration enabled. The installer checks Docker, Compose, DNS and ports 80/443, refuses to overwrite an existing installation, generates private environment files and Caddy configuration, pulls the selected version, initializes core data and writes backup/update scripts. It does not configure a WhatsApp gateway or create a NuSaaS console account.

After installation, register the business owner, verify their email and complete onboarding. Initial INITIAL_ADMIN_* system-admin seeding belongs to internal deployments; it does not create a self-hosted business workspace.

Manual installation​

Obtain the matching Compose, backend/frontend templates and Caddy example from the published installer bundle. A repository checkout or source archive is not required. Keep versioned copies with your recovery documentation. The normal installer templates are available at:

mkdir -p /opt/nusaas/web
cd /opt/nusaas
curl -fsSL https://get.nusaas.com/docker-compose.yml -o docker-compose.yml
curl -fsSL https://get.nusaas.com/.env.selfhosted -o .env
curl -fsSL https://get.nusaas.com/.env.frontend -o web/.env.frontend

Configure these files privately using Environment configuration. Create the Caddyfile using DNS and HTTPS before starting services; downloading Compose alone does not create it. Set NUSAAS_VERSION to the matching published version. Do not run the downloaded templates until every required secret and placeholder has been replaced.

Then follow Launch and initialization. For a Tunnel installation, obtain the matching optional overlay from the same published installer bundle and follow Cloudflare.

Services and persistence​

The base stack contains proxy, api, web, worker, cron, ws, db, cache and search. Only the proxy publishes host ports. The worker uses the backend image's supervisor configuration; workers, scheduler and WebSockets wait for API health. Redis uses noeviction to avoid silently evicting queue data; monitor memory and failed writes.

Persistent volumes hold MySQL, Redis, uploads, search and Caddy certificate state. Never run docker compose down -v on a live installation. Local backups do not survive loss of the host. There is no Watchtower or unattended application updater; updates require a selected version and backup. Optional Evolution services have separate database/session persistence and backup requirements.