56 lines
1.4 KiB
Bash
Executable File
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
|