#!/bin/bash
# ============================================================
# Karch Geräteservice – Einmalige Einrichtung (wie die anderen Apps)
# Als root auf dem Server ausführen:
#   cd /var/www/html/karch-geraeteservice && bash install.sh
# ============================================================
set -e
PORT=3040
APPDIR="$(cd "$(dirname "$0")" && pwd)"
SERVICE=karch-geraeteservice

if ! command -v node >/dev/null; then
  echo "Node.js fehlt – wird installiert …"
  apt-get update && apt-get install -y nodejs
fi
echo "Node-Version: $(node -v)"
echo "App-Verzeichnis: $APPDIR"

if ss -tlnp 2>/dev/null | grep -q ":$PORT "; then
  echo "ACHTUNG: Port $PORT ist schon belegt!"
  echo "In install.sh und der .service-Datei den Port ändern und erneut ausführen."
  exit 1
fi

# systemd-Dienst mit dem tatsächlichen Verzeichnis schreiben
cat > /etc/systemd/system/$SERVICE.service <<UNIT
[Unit]
Description=Karch Geräteservice (Geräte/Werkzeuge per QR aus- und eintragen)
After=network.target

[Service]
WorkingDirectory=$APPDIR
ExecStart=/usr/bin/env node server.js
Environment=PORT=$PORT
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
UNIT

systemctl daemon-reload
systemctl enable --now $SERVICE
sleep 2
systemctl status $SERVICE --no-pager -l | head -12

echo
echo "============================================================"
echo "Fertig! Der Geräteservice läuft dauerhaft (auch nach Neustart)."
echo
echo "Aufruf im Browser:  http://dev2.karch-service.de:$PORT"
echo "  Admin/Büro:   http://dev2.karch-service.de:$PORT/login"
echo "  Mitarbeiter:  http://dev2.karch-service.de:$PORT/m"
echo
echo "Erst-Login steht in der Dienst-Ausgabe:  journalctl -u $SERVICE | grep seed"
echo "Falls nicht erreichbar:  ufw allow $PORT  (bzw. Port beim Anbieter freigeben)"
echo "============================================================"
