scripts/webrelay-install.sh
2025-08-03 10:20:13 +02:00

56 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
set -e
VERSION=$(curl -s https://git.savin.bio/api/v1/repos/savinmax/websocket-relay/releases | python3 -c 'import json,sys;print(json.load(sys.stdin)[0]["tag_name"])' | sed 's/v//')
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m | sed 's/x86_/amd/')
[ $UID -ne 0 ] && 2>&1 echo "Run as root please, we are going to install stuff" && exit 1
trap "rm -rf websocket-relay*" EXIT
pushd /tmp
filename="websocket-relay-${OS}-${ARCH}"
echo "Downloading version ${filename}"
curl -s -L -o ./websocket-relay https://git.savin.bio/savinmax/websocket-relay/releases/download/v${VERSION}/$filename
chmod +x ./websocket-relay
mv websocket-relay /usr/sbin/websocket-relay
cat <<EOF >/etc/websocket-relay.yaml
server:
port: 8888
tls:
enabled: false
cert_file: cert.pem
key_file: key.pem
metrics:
enabled: true
port: 9090
EOF
cat <<EOF >/etc/systemd/system/websocket-relay.service
[Unit]
Description=websocket-relay
Wants=network-online.target
After=network-online.target
[Service]
User=websocket-relay
Group=websocket-relay
Type=simple
WorkingDirectory=/etc/websocket-relay/
ExecStart=/usr/sbin/websocket-relay --config-file=/etc/websocket-relay.yaml
[Install]
WantedBy=multi-user.target
EOF
useradd -r websocket-relay
chown -R websocket-relay:websocket-relay /etc/websocket-relay.yaml
systemctl enable websocket-relay.service
systemctl start websocket-relay.service
popd