@@ -1,68 +1,55 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Install host-side systemd services for cistech-tunnel
|
||||
# Run this ONCE on the host after app install
|
||||
# Install host-side systemd services for rego-tunnel
|
||||
# Run this ONCE on the host after installing the app in Runtipi
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
APP_DATA_DIR="/etc/runtipi/app-data/runtipi/cistech-tunnel"
|
||||
APP_DATA_DIR="/etc/runtipi/app-data/runtipi/rego-tunnel"
|
||||
|
||||
echo "Installing cistech-tunnel host services..."
|
||||
echo "Installing rego-tunnel host services..."
|
||||
|
||||
# Create app-data directory for trigger file
|
||||
sudo mkdir -p "$APP_DATA_DIR"
|
||||
|
||||
# Create the path unit (watches for trigger file)
|
||||
sudo tee /etc/systemd/system/cistech-routing-watcher.path > /dev/null << EOF
|
||||
# Create the path watcher unit
|
||||
cat << 'EOF' | sudo tee /etc/systemd/system/rego-routing-watcher.path
|
||||
[Unit]
|
||||
Description=Watch for cistech-tunnel routing trigger
|
||||
Description=Watch for rego-tunnel routing trigger
|
||||
|
||||
[Path]
|
||||
PathExists=$APP_DATA_DIR/restart-routing
|
||||
Unit=cistech-routing-watcher.service
|
||||
PathExists=/etc/runtipi/app-data/runtipi/rego-tunnel/restart-routing
|
||||
Unit=rego-routing-watcher.service
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
# Create the service unit (applies routes when triggered)
|
||||
sudo tee /etc/systemd/system/cistech-routing-watcher.service > /dev/null << EOF
|
||||
# Create the service unit
|
||||
cat << EOF | sudo tee /etc/systemd/system/rego-routing-watcher.service
|
||||
[Unit]
|
||||
Description=Apply cistech-tunnel routing rules
|
||||
Description=Apply rego-tunnel routing rules
|
||||
After=docker.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=$SCRIPT_DIR/host-routing.sh restart
|
||||
ExecStartPost=/bin/rm -f $APP_DATA_DIR/restart-routing
|
||||
ExecStartPost=/bin/bash -c 'echo "trigger cleared at \$(date)" >> $APP_DATA_DIR/watcher.log'
|
||||
ExecStart=${SCRIPT_DIR}/host-routing.sh restart
|
||||
ExecStartPost=/bin/rm -f ${APP_DATA_DIR}/restart-routing
|
||||
ExecStartPost=/bin/bash -c 'echo "trigger cleared at \$(date)" >> ${APP_DATA_DIR}/watcher.log'
|
||||
EOF
|
||||
|
||||
# Make host-routing.sh executable
|
||||
chmod +x "$SCRIPT_DIR/host-routing.sh"
|
||||
sudo chmod +x "${SCRIPT_DIR}/host-routing.sh"
|
||||
|
||||
# Reload systemd and enable the watcher
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable cistech-routing-watcher.path
|
||||
sudo systemctl start cistech-routing-watcher.path
|
||||
|
||||
# Disable the old boot-only service if it exists
|
||||
if systemctl is-enabled cistech-routing.service &>/dev/null; then
|
||||
echo "Disabling old cistech-routing.service (replaced by watcher)..."
|
||||
sudo systemctl stop cistech-routing.service 2>/dev/null || true
|
||||
sudo systemctl disable cistech-routing.service 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Apply routes now
|
||||
echo "Applying initial routes..."
|
||||
sudo "$SCRIPT_DIR/host-routing.sh" start
|
||||
sudo systemctl enable --now rego-routing-watcher.path
|
||||
|
||||
echo ""
|
||||
echo "Done! Watcher installed and routes applied."
|
||||
echo "Done! Services installed:"
|
||||
echo " - rego-routing-watcher.path (watches for trigger file)"
|
||||
echo " - rego-routing-watcher.service (applies routing rules)"
|
||||
echo ""
|
||||
echo "To trigger route refresh from container:"
|
||||
echo " touch /runtime/restart-routing"
|
||||
echo "To check status:"
|
||||
echo " systemctl status rego-routing-watcher.path"
|
||||
echo ""
|
||||
echo "To check watcher status:"
|
||||
echo " systemctl status cistech-routing-watcher.path"
|
||||
echo "To manually trigger routing:"
|
||||
echo " touch ${APP_DATA_DIR}/restart-routing"
|
||||
|
||||
Reference in New Issue
Block a user