Manual Installation
Customize how Nomploy installs on your server.
The install script is the supported way to install Nomploy. It is a readable POSIX shell script that sets up the whole control plane — Docker, Consul, Nomad, the CNI plugins, a WireGuard mesh, Traefik, Postgres, Redis and the Nomploy panel — on a fresh Linux server. For most customization you don't need to install anything by hand; you just pass a few environment variables to the same script.
curl -sSL https://nomploy.com/install.sh | shCustomizing the install
The script reads the following environment variables. Pass them inline (before
the pipe) so they reach the script even when it runs under sudo:
| Variable | Default | Purpose |
|---|---|---|
NOMPLOY_IMAGE | ghcr.io/nomploy/nomploy:latest | The panel image to run — set it to use a private mirror or a pinned tag. |
NOMPLOY_PORT | 3000 | The port the panel listens on. Change it to avoid conflicts. |
NOMPLOY_WG_ENDPOINT | auto-detected <ip>:51820 | The public WireGuard endpoint other nodes dial to join the mesh. Set it when auto-detection picks the wrong address. |
POSTGRES_PASSWORD | (generated default) | The panel's Postgres password. Set your own for a production install. |
CNI_VERSION | v1.5.1 | Version of the CNI plugins to install. |
CONSUL_CNI_VERSION | 1.6.3 | Version of the Consul CNI plugin to install. |
Example — run the panel on a different port with your own database password:
curl -sSL https://nomploy.com/install.sh | sudo NOMPLOY_PORT=8080 POSTGRES_PASSWORD='<a-strong-password>' shWhen you run the installer with sudo, pass the variables inline as shown
above — sudo resets the environment, so export VAR=... from your shell
never reaches the script. Alternatively use sudo -E sh to preserve your
environment.
After it runs
The script prints the URLs it exposes:
- Panel —
http://<server-ip>:<NOMPLOY_PORT>(default3000) - Nomad UI —
http://<server-ip>:4646 - Consul UI —
http://<server-ip>:8500
See Installation for the standard walkthrough and Architecture for what each component does.
Deeper customization
For anything the environment variables don't cover, read the
install.sh script
directly — it documents exactly what is installed and where (/etc/nomploy,
/etc/nomad.d, /etc/consul.d, /etc/wireguard) — and adapt it to your needs.
Updating
Because the panel runs as a self-updating Nomad job, update in place with:
curl -sSL https://nomploy.com/install.sh | sh -s updateTo pin a specific version, use the install.sh from that
GitHub release.