Testserver-Installation optional machen (--with-testserver)

This commit is contained in:
ARIA
2026-07-21 13:34:14 +02:00
parent 7d8aeabbd2
commit 0cb0594233
2 changed files with 79 additions and 21 deletions
+60 -17
View File
@@ -7,17 +7,27 @@
# aktualisiert.
#
# Nutzung (als root, im Verzeichnis mit allen Repo-Dateien):
# sudo ./install_aria_geoblock.sh [ZIELVERZEICHNIS]
# sudo ./install_aria_geoblock.sh [--with-testserver] [ZIELVERZEICHNIS]
#
# Installiert ausserdem optional einen kleinen Test-Webserver
# (aria_geoblock_testserver.py + aria-geoblock-testserver.service), gegen
# den man von aussen connecten kann um die Geoblocking-Regeln zu pruefen.
# Der kleine Test-Webserver (aria_geoblock_testserver.py +
# aria-geoblock-testserver.service), gegen den man von aussen connecten
# kann um die Geoblocking-Regeln zu pruefen, wird NUR installiert wenn
# die Option --with-testserver angegeben wird. Ohne die Option passiert
# in Sachen Testserver gar nichts (kein Copy, kein systemd-Unit, kein
# offener Port).
#
# Beispiele:
# sudo ./install_aria_geoblock.sh
# sudo ./install_aria_geoblock.sh --with-testserver
# sudo ./install_aria_geoblock.sh --with-testserver /opt/aria-geoblock
# sudo ./install_aria_geoblock.sh /opt/aria-geoblock
#
# Benoetigt im selben Verzeichnis:
# aria_geoblock.py
# aria_geoblock.ini
# aria-geoblock.service
# aria-geoblock.timer
# (nur bei --with-testserver:)
# aria_geoblock_testserver.py
# aria-geoblock-testserver.service
#
@@ -31,11 +41,32 @@ if [[ $EUID -ne 0 ]]; then
fi
SRC_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
INSTALL_DIR="${1:-/opt/aria-geoblock}"
WITH_TESTSERVER=0
INSTALL_DIR=""
for arg in "$@"; do
case "$arg" in
--with-testserver)
WITH_TESTSERVER=1
;;
-h|--help)
grep '^# ' "${BASH_SOURCE[0]}" | sed 's/^# \{0,1\}//'
exit 0
;;
*)
INSTALL_DIR="$arg"
;;
esac
done
INSTALL_DIR="${INSTALL_DIR:-/opt/aria-geoblock}"
LOG_DIR="/var/log/aria_geoblock"
for f in aria_geoblock.py aria_geoblock.ini aria-geoblock.service aria-geoblock.timer \
aria_geoblock_testserver.py aria-geoblock-testserver.service; do
REQUIRED_FILES=(aria_geoblock.py aria_geoblock.ini aria-geoblock.service aria-geoblock.timer)
if [[ "$WITH_TESTSERVER" -eq 1 ]]; then
REQUIRED_FILES+=(aria_geoblock_testserver.py aria-geoblock-testserver.service)
fi
for f in "${REQUIRED_FILES[@]}"; do
if [[ ! -f "$SRC_DIR/$f" ]]; then
echo "FEHLER: $f fehlt in $SRC_DIR - bitte komplettes Repo verwenden." >&2
exit 1
@@ -67,20 +98,28 @@ echo "==> Lege Log-Verzeichnis an: $LOG_DIR"
mkdir -p "$LOG_DIR"
chmod 750 "$LOG_DIR"
echo "==> Installiere Test-Webserver nach $INSTALL_DIR"
cp "$SRC_DIR/aria_geoblock_testserver.py" "$INSTALL_DIR/aria_geoblock_testserver.py"
chmod 755 "$INSTALL_DIR/aria_geoblock_testserver.py"
echo "==> Installiere systemd-Units"
echo "==> Installiere systemd-Units (Geoblock-Timer)"
sed "s#__INSTALL_DIR__#$INSTALL_DIR#g" "$SRC_DIR/aria-geoblock.service" \
> /etc/systemd/system/aria-geoblock.service
cp "$SRC_DIR/aria-geoblock.timer" /etc/systemd/system/aria-geoblock.timer
sed "s#__INSTALL_DIR__#$INSTALL_DIR#g" "$SRC_DIR/aria-geoblock-testserver.service" \
> /etc/systemd/system/aria-geoblock-testserver.service
if [[ "$WITH_TESTSERVER" -eq 1 ]]; then
echo "==> --with-testserver gesetzt: installiere Test-Webserver nach $INSTALL_DIR"
cp "$SRC_DIR/aria_geoblock_testserver.py" "$INSTALL_DIR/aria_geoblock_testserver.py"
chmod 755 "$INSTALL_DIR/aria_geoblock_testserver.py"
sed "s#__INSTALL_DIR__#$INSTALL_DIR#g" "$SRC_DIR/aria-geoblock-testserver.service" \
> /etc/systemd/system/aria-geoblock-testserver.service
else
echo "==> Test-Webserver wird NICHT installiert (Option --with-testserver nicht angegeben)."
fi
systemctl daemon-reload
systemctl enable --now aria-geoblock.timer
systemctl enable --now aria-geoblock-testserver.service
if [[ "$WITH_TESTSERVER" -eq 1 ]]; then
systemctl enable --now aria-geoblock-testserver.service
fi
echo ""
echo "==> Fertig."
@@ -89,6 +128,10 @@ echo " Jetzt sofort testen: systemctl start aria-geoblock.service && journal
echo " Timer-Status: systemctl list-timers aria-geoblock.timer"
echo " Naechste/letzte Läufe: systemctl status aria-geoblock.timer"
echo " Log-Datei: $LOG_DIR/aria_geoblock.log"
echo " Test-Webserver: systemctl status aria-geoblock-testserver.service"
echo " Port/Bind/Log siehe [testserver] in $INSTALL_DIR/aria_geoblock.ini"
if [[ "$WITH_TESTSERVER" -eq 1 ]]; then
echo " Test-Webserver: systemctl status aria-geoblock-testserver.service"
echo " Port/Bind/Log siehe [testserver] in $INSTALL_DIR/aria_geoblock.ini"
else
echo " Test-Webserver: nicht installiert (spaeter nachruesten mit: sudo $0 --with-testserver $INSTALL_DIR)"
fi
echo " checkmk-Plugin: siehe aria_geoblock_checkmk im Repo (manuell kopieren, README beachten)"