Files
mitm-webserver/setup_traffic_target_server.sh
malmert a111d5ea00
All checks were successful
Build and Deploy MITM Webserver / build (push) Successful in 10s
Build and Deploy MITM Webserver / traffic_target (push) Successful in 1s
fix permissions
2026-03-08 17:50:21 +01:00

117 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
REPO_URL="${REPO_URL:-https://gitea.malmert.de/marcus/mitm-webserver.git}"
APP_DIR="${APP_DIR:-/opt/mitm-webserver}"
TARGET_SCRIPT_REL="${TARGET_SCRIPT_REL:-tools/traffic-target.sh}"
TARGET_SERVICE="${TARGET_SERVICE:-mitm-traffic-target}"
RUNNER_DIR="${RUNNER_DIR:-/opt/gitea-act-runner}"
RUNNER_BIN_URL="${RUNNER_BIN_URL:-https://gitea.com/gitea/act_runner/releases/download/v0.2.13/act_runner-0.2.13-linux-amd64}"
RUNNER_INSTANCE_URL="${RUNNER_INSTANCE_URL:-https://gitea.malmert.de/}"
RUNNER_NAME="${RUNNER_NAME:-traffic-target-runner}"
RUNNER_LABELS="${RUNNER_LABELS:-traffic-target:host}"
RUNNER_TOKEN="${RUNNER_TOKEN:-cThC2xmAZWaOAqRRMENuVVTJckxaHiJxVGx2NCQY}"
if [[ -z "$RUNNER_TOKEN" ]]; then
echo "RUNNER_TOKEN must be set before running this script." >&2
exit 1
fi
echo "==> Update system packages"
apt update
apt upgrade -y
DEBIAN_FRONTEND=noninteractive apt install -y \
git \
curl \
wget \
python3 \
openssl \
socat \
iperf3
echo "==> Setup repository"
if [[ ! -d "$APP_DIR/.git" ]]; then
git clone "$REPO_URL" "$APP_DIR"
else
cd "$APP_DIR"
git fetch origin main
git checkout main
git merge --ff-only origin/main
fi
TARGET_SCRIPT_PATH="$APP_DIR/$TARGET_SCRIPT_REL"
if [[ ! -x "$TARGET_SCRIPT_PATH" ]]; then
chmod +x "$TARGET_SCRIPT_PATH"
fi
echo "==> Setup traffic target systemd service"
cat >/etc/systemd/system/${TARGET_SERVICE}.service <<EOL
[Unit]
Description=MITM Traffic Target
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=$APP_DIR
ExecStart=$TARGET_SCRIPT_PATH
Restart=always
RestartSec=5
User=root
[Install]
WantedBy=multi-user.target
EOL
systemctl daemon-reload
systemctl enable "$TARGET_SERVICE"
systemctl restart "$TARGET_SERVICE"
echo "==> Install Gitea Act Runner"
mkdir -p "$RUNNER_DIR"
cd "$RUNNER_DIR"
if [[ ! -x "$RUNNER_DIR/act_runner" ]]; then
wget -O act_runner "$RUNNER_BIN_URL"
chmod +x act_runner
fi
if [[ ! -f "$RUNNER_DIR/.runner" ]]; then
./act_runner register \
--instance "$RUNNER_INSTANCE_URL" \
--token "$RUNNER_TOKEN" \
--name "$RUNNER_NAME" \
--labels "$RUNNER_LABELS" \
--no-interactive
else
echo "==> Runner already registered"
fi
echo "==> Setup Gitea Act Runner systemd service"
cat >/etc/systemd/system/gitea-act-runner.service <<EOL
[Unit]
Description=Gitea Actions Runner (act_runner)
After=network-online.target
Wants=network-online.target
[Service]
ExecStartPre=/bin/sleep 10
ExecStart=$RUNNER_DIR/act_runner daemon
WorkingDirectory=$RUNNER_DIR
Restart=always
RestartSec=5
User=root
[Install]
WantedBy=multi-user.target
EOL
systemctl daemon-reload
systemctl enable gitea-act-runner
systemctl restart gitea-act-runner
echo "==> Setup complete"
echo "Traffic target service: systemctl status ${TARGET_SERVICE}"
echo "Act runner service: systemctl status gitea-act-runner"