Install on generic Linux
For distros without an APT package (Fedora, Arch, Alpine, RHEL-likes, etc.). Drop the binary in /usr/local/bin/, set up a systemd unit, you are done.
Prefer a containerized install? See Install via Docker; it works on the same distros without needing a systemd unit.
Prerequisites
Section titled “Prerequisites”- A modern Linux with systemd (or your own init manager).
- Docker Engine with the Compose plugin.
- Ports 80, 443, and 22 open.
- DNS pointing at the server.
Download
Section titled “Download”curl -L https://github.com/vazra/simpledeploy/releases/latest/download/simpledeploy_linux_amd64.tar.gz | tar xzsudo mv simpledeploy /usr/local/bin/sudo chmod +x /usr/local/bin/simpledeploycurl -L https://github.com/vazra/simpledeploy/releases/latest/download/simpledeploy_linux_arm64.tar.gz | tar xzsudo mv simpledeploy /usr/local/bin/sudo chmod +x /usr/local/bin/simpledeployVerify:
simpledeploy versionCreate a service user (optional, recommended)
Section titled “Create a service user (optional, recommended)”Running as a dedicated user limits blast radius. The user must be in the docker group to drive the Docker socket.
sudo useradd --system --home /var/lib/simpledeploy --shell /usr/sbin/nologin simpledeploysudo usermod -aG docker simpledeploysudo mkdir -p /var/lib/simpledeploy /etc/simpledeploy/appssudo chown -R simpledeploy:simpledeploy /var/lib/simpledeploy /etc/simpledeploysystemd unit
Section titled “systemd unit”Create /etc/systemd/system/simpledeploy.service:
[Unit]Description=SimpleDeployAfter=docker.serviceRequires=docker.service
[Service]Type=simpleExecStart=/usr/local/bin/simpledeploy serve --config /etc/simpledeploy/config.yamlRestart=alwaysRestartSec=5# Uncomment the next two lines if you created a service user# User=simpledeploy# Group=simpledeploy
[Install]WantedBy=multi-user.targetConfigure and start
Section titled “Configure and start”-
Generate the config (see Configure SimpleDeploy):
Terminal window sudo simpledeploy init --config /etc/simpledeploy/config.yamlsudo vim /etc/simpledeploy/config.yaml -
Enable and start:
Terminal window sudo systemctl daemon-reloadsudo systemctl enable --now simpledeploysudo journalctl -u simpledeploy -f
Upgrading
Section titled “Upgrading”Download the new tarball, replace the binary, restart:
sudo systemctl stop simpledeploysudo mv simpledeploy /usr/local/bin/sudo systemctl start simpledeployNext: First deploy.