Install Semaphore UI on Debian
Installation
sudo wget -P /usr/local/src/ https://github.com/semaphoreui/semaphore/releases/download/v2.17.33/semaphore_2.17.33_linux_amd64.deb
sudo dpkg -i /usr/local/src/semaphore_2.17.33_linux_amd64.deb
sudo useradd -d /nonexistent -s /usr/sbin/nologin --no-create-home --system semaphore
sudo mkdir -p/etc/semaphore
sudo mkdir /var/lib/semaphore
sudo chown semaphore:semaphore /var/lib/semaphore
sudo chmod 0750 semaphore /var/lib/semaphore
sudo -u semaphore semaphore setup
sudo chown root:semaphore /etc/semaphore/config.json
sudo chmod 06000640 /var/lib/etc/semaphore/config.json
sudo chmod 0600 /var/lib/semaphore/database.sqlite
sudo cat > /etc/systemd/system/semaphore.service <<EOF
[Unit]
Description=Semaphore Ansible
Documentation=https://github.com/semaphoreui/semaphore
Wants=network-online.target
After=network-online.target
ConditionPathExists=/usr/bin/semaphore
ConditionPathExists=/etc/semaphore/config.json
[Service]
Type=simple
User=semaphore
Group=semaphore
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/bin/semaphore server --config=/var/lib/etc/semaphore/config.json
SyslogIdentifier=semaphoreExecReload=/bin/kill -HUP
Restart=always
RestartSec=10s
User=semaphore
Group=semaphore
SyslogIdentifier=semaphore
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now semaphore
Reverse Proxy
server {
listen 443 ssl;
http2 on;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header Strict-Transport-Security "max-age=63072000" always;
# required to avoid HTTP 411: see Issue #1486
# (https://github.com/docker/docker/issues/1486)
chunked_transfer_encoding on;
location / {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_request_buffering off;
}
location /api/ws {
proxy_pass http://127.0.0.1:3000/api/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Origin "";
}
}
Create GitLab Acecss Token
read_api read_repository