Installation

Install ZenSailor on a fresh Linux server with one command.

SSH into your server and run:

BASH
# Download and execute the installer
curl -sfL https://get.zensailor.com | bash

The installer sets up the Control Plane, the database, NATS, and the Traefik router. It installs Docker if it is missing, prompts for your domain and TLS mode, downloads the release to /opt/zensailor, generates all secrets and router configuration, and rolls back automatically if anything fails. An existing installation is never clobbered.

Configuration prompts#

The installer will ask for two critical pieces of information:

  • Domain Name: The FQDN where you will access the dashboard (e.g. paas.example.com). Make sure your DNS A record points to your server IP before running this.
  • ACME Email: Used by Let's Encrypt for SSL certificate notifications.

For networks without a public domain — a LAN, a lab, a VM behind NAT — use local_install.sh from the release tarball instead. It detects local domains (.local, .lan, …) and falls back to self-signed or no TLS automatically.

Where ZenSailor lives on your server#

Everything is installed under /opt/zensailor: the platform data, the deployed services' persistent volumes, and the fix.sh repair tool.

Important: ZenSailor is designed to be the primary occupant of your server. It manages the ingress router (Traefik) on ports 80/443. Installing it alongside existing web servers (Apache/Nginx) will cause conflicts.

Before you start: you need a Linux server (Ubuntu 20.04/22.04 LTS recommended, Debian 11/12, or CentOS Stream 9) with at least 2 GB of RAM and 2 CPU cores, Docker Engine v24+ with the Compose plugin, and ports 80, 443, and 4222 open to the public internet. See Requirements and Plans for details and plan limits.