Initial commit: IT Nexus Web-App

This commit is contained in:
2026-06-01 20:49:07 +02:00
commit 8023765e6c
387 changed files with 106900 additions and 0 deletions

View File

@@ -0,0 +1,133 @@
#!/bin/bash
# Nexus Scanner — Installations-Skript
# Läuft auf Debian 12 / Ubuntu 22.04+
# Aufruf: sudo bash install.sh [LUD|BAR]
set -e
SITE="${1:-LUD}"
BINARY_URL="https://it-nexus.cereda-systems.de/downloads/nexus-scanner-linux-amd64"
BINARY="/usr/local/bin/nexus-scanner"
CONFIG_DIR="/etc/nexus-scanner"
DATA_DIR="/var/lib/nexus-scanner"
SERVICE_FILE="/etc/systemd/system/nexus-scanner.service"
USER="nexus-scanner"
echo "=============================="
echo " Nexus Scanner Installation"
echo " Standort: $SITE"
echo "=============================="
# Abhängigkeiten
apt-get update -qq
apt-get install -y -qq curl iputils-ping nmap snmp 2>/dev/null || true
# Benutzer anlegen
if ! id "$USER" &>/dev/null; then
useradd --system --no-create-home --shell /usr/sbin/nologin "$USER"
echo "Benutzer $USER angelegt."
fi
# Verzeichnisse
mkdir -p "$CONFIG_DIR" "$DATA_DIR"
chown "$USER:$USER" "$DATA_DIR"
# Binary installieren (aus deploy/-Verzeichnis oder per Download)
if [ -f "./nexus-scanner-linux-amd64" ]; then
cp ./nexus-scanner-linux-amd64 "$BINARY"
echo "Binary aus lokalem Verzeichnis installiert."
else
echo "Binary wird heruntergeladen..."
curl -fsSL "$BINARY_URL" -o "$BINARY"
fi
chmod 755 "$BINARY"
# Config installieren
if [ ! -f "$CONFIG_DIR/config.yaml" ]; then
if [ -f "./config.${SITE,,}.yaml" ]; then
cp "./config.${SITE,,}.yaml" "$CONFIG_DIR/config.yaml"
else
# Minimal-Config erzeugen
cat > "$CONFIG_DIR/config.yaml" << EOF
site: "$SITE"
log_level: "info"
setup_complete: false
db:
path: "$DATA_DIR/scanner.db"
web:
addr: ":8090"
token: ""
nexus:
url: "https://it-nexus.cereda-systems.de"
api_key: "nsx-aa0193d719c2be765441e1dd24bf7480"
offline_after: 15m
modules:
arp_discovery:
enabled: true
interval: 5m
subnets: ["192.168.0.0/24"]
interface: "eth0"
site_monitoring:
enabled: true
interval: 1m
port_scan:
enabled: true
interval: 15m
snmp:
enabled: true
interval: 5m
community: "public"
nexus_reporter:
enabled: true
interval: 10m
EOF
fi
echo "Config nach $CONFIG_DIR/config.yaml installiert."
fi
chown "$USER":"$USER" "$CONFIG_DIR/config.yaml"
chmod 640 "$CONFIG_DIR/config.yaml"
# systemd Service installieren
cat > "$SERVICE_FILE" << 'EOF'
[Unit]
Description=Nexus Scanner — Netzwerk-Discovery Agent
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=nexus-scanner
Group=nexus-scanner
ExecStart=/usr/local/bin/nexus-scanner /etc/nexus-scanner/config.yaml
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=nexus-scanner
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=yes
ReadWritePaths=/var/lib/nexus-scanner /etc/nexus-scanner
PrivateTmp=yes
AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable nexus-scanner
systemctl restart nexus-scanner
IP=$(hostname -I | awk '{print $1}')
echo ""
echo "=============================="
echo " Installation abgeschlossen!"
echo "=============================="
echo ""
echo " Web-UI: http://$IP:8090"
echo " Status: systemctl status nexus-scanner"
echo " Logs: journalctl -u nexus-scanner -f"
echo ""
echo " Öffne http://$IP:8090 im Browser"
echo " um den Setup-Wizard abzuschließen."
echo ""