Installation
Install ZenSailor on a fresh Linux server with one command.
SSH into your server and run:
# Download and execute the installer
curl -sfL https://get.zensailor.com | bashThe 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.