66 lines
1.5 KiB
Bash
66 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ensure_root
|
|
detect_pkg_manager
|
|
pkg_install curl
|
|
|
|
BASE="/srv/docker/services/grafana"
|
|
$SUDO mkdir -p "$BASE/data"
|
|
cd "$BASE"
|
|
|
|
echo "Starte Installation von Grafana..."
|
|
|
|
# Funktion: finde den nächsten freien Port ab 3000
|
|
find_free_port() {
|
|
PORT=3000
|
|
while ss -lnt | awk '{print $4}' | grep -q ":$PORT$"; do
|
|
PORT=$((PORT + 1))
|
|
done
|
|
echo "$PORT"
|
|
}
|
|
|
|
FREE_PORT=$(find_free_port)
|
|
echo "✅ Freier Port für Grafana: $FREE_PORT"
|
|
|
|
$SUDO tee docker-compose.yml >/dev/null <<EOF
|
|
services:
|
|
grafana:
|
|
image: grafana/grafana:latest
|
|
container_name: grafana-$FREE_PORT
|
|
restart: unless-stopped
|
|
ports:
|
|
- "$FREE_PORT:3000"
|
|
volumes:
|
|
- ./data:/var/lib/grafana
|
|
environment:
|
|
GF_SECURITY_ADMIN_USER=admin
|
|
GF_SECURITY_ADMIN_PASSWORD=admin
|
|
TZ=Europe/Berlin
|
|
EOF
|
|
|
|
$SUDO docker compose up -d
|
|
|
|
log "Grafana wurde installiert."
|
|
log "Web UI: http://<server-ip>:$FREE_PORT"
|
|
log "Standard Login: admin / admin (bitte ändern!)"
|
|
log "Daten liegen in: $BASE/data"
|
|
|
|
echo ""
|
|
read -p "Soll ein NGINX Proxy-Pfad eingerichtet werden? (y/n): " PROXY
|
|
|
|
if [[ "$PROXY" == "y" || "$PROXY" == "Y" ]]; then
|
|
PROXY_SCRIPT="/srv/docker/system/nginx-proxy-path/install.sh"
|
|
|
|
if [ ! -f "$PROXY_SCRIPT" ]; then
|
|
log "Fehler: nginx-proxy-path nicht installiert."
|
|
log "Bitte zuerst das Rezept 'nginx-proxy-path' installieren."
|
|
exit 0
|
|
fi
|
|
|
|
echo ""
|
|
echo "Bitte Proxy-Pfad einrichten:"
|
|
bash "$PROXY_SCRIPT"
|
|
fi
|
|
|