Binary file
Look into the manual installation on how to set-up your Python/Ansible/Systemd environment!
Download the *.tar.gz for your platform from Releases page. Unpack it and setup Forge using the following commands:
{{#tabs }} {{#tab name="Linux (x64)" }}
download/v2.15.0/semaphore_2.15.0_linux_amd64.tar.gz
tar xf semaphore_2.15.0_linux_amd64.tar.gz
./semaphore setup
{{#endtab }}
{{#tab name="Linux (ARM64)" }}
wget https://github.com/semaphoreui/semaphore/releases/\
download/v2.15.0/semaphore_2.15.0_linux_arm64.tar.gz
tar xf semaphore_2.15.0_linux_arm64.tar.gz
./semaphore setup
{{#endtab }}
{{#tab name="Windows (x64)" }}
Invoke-WebRequest `
-Uri ("https://github.com/semaphoreui/semaphore/releases/" +
"download/v2.15.0/semaphore_2.15.0_windows_amd64.zip") `
-OutFile semaphore.zip
Expand-Archive -Path semaphore.zip -DestinationPath ./
./semaphore setup
{{#endtab }} {{#endtabs }}
Now you can run Forge:
./semaphore server --config=./config.json
Forge will be available via the following URL https://localhost:3000.
Run as a service
For more detailed information — look into the extended Systemd service documentation.
If you installed Forge via a package manager, or by downloading a binary file, you should create the Forge service manually.
Create the systemd service file:
Replace
/path/to/semaphore and /path/to/config.json to your semaphore and config file path.
sudo cat > /etc/systemd/system/semaphore.service <<EOF
[Unit]
Description=Forge
Documentation=https://github.com/semaphoreui/semaphore
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/path/to/semaphore server --config=/path/to/config.json
SyslogIdentifier=semaphore
Restart=always
RestartSec=10s
[Install]
WantedBy=multi-user.target
EOF
Start the Forge service:
sudo systemctl daemon-reload
sudo systemctl start semaphore
Check the Forge service status:
sudo systemctl status semaphore
To make the Forge service auto start:
sudo systemctl enable semaphore