Files
Project_Velocity/infrastructure/desineuron_ingress/install_linux_rathole_client.sh
2026-04-12 02:02:58 +05:30

45 lines
1.1 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
RATHOLE_VERSION="${RATHOLE_VERSION:-v0.4.3}"
RATHOLE_URL="${RATHOLE_URL:-https://github.com/rapiz1/rathole/releases/download/${RATHOLE_VERSION}/rathole-x86_64-unknown-linux-gnu.zip}"
CONFIG_SOURCE="${CONFIG_SOURCE:-/tmp/rathole-client.toml}"
sudo install -d -m 0755 /etc/rathole
sudo install -d -m 0755 /opt/rathole
tmp_dir="$(mktemp -d)"
trap 'rm -rf "$tmp_dir"' EXIT
cd "$tmp_dir"
curl -fL "$RATHOLE_URL" -o rathole.zip
python3 - <<'PY'
import zipfile
z = zipfile.ZipFile("rathole.zip")
z.extractall(".")
PY
sudo install -m 0755 rathole /usr/local/bin/rathole
sudo install -m 0600 "$CONFIG_SOURCE" /etc/rathole/client.toml
cat <<'EOF' | sudo tee /etc/systemd/system/rathole-client.service >/dev/null
[Unit]
Description=Desineuron Rathole Client
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/rathole /etc/rathole/client.toml
Restart=always
RestartSec=5
User=root
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now rathole-client.service
sudo systemctl status --no-pager rathole-client.service || true