#!/bin/bash # ══════════════════════════════════════════════════════════════════════════════ # NetCell WebPanel — One-Liner Installer # # curl -fsSL https://get.netcell-it.com | sudo bash # # Unterstützt: Debian 12/13, Ubuntu 24.04 (amd64) # ══════════════════════════════════════════════════════════════════════════════ set -euo pipefail GRN='\033[0;32m'; RED='\033[0;31m'; YLW='\033[0;33m'; CYN='\033[0;36m'; BLD='\033[1m'; NC='\033[0m' log() { echo -e "${GRN}[netcell]${NC} $*"; } warn() { echo -e "${YLW}[netcell]${NC} $*"; } fail() { echo -e "${RED}[netcell]${NC} $*"; exit 1; } echo "" echo -e "${CYN}══════════════════════════════════════════════════════════${NC}" echo -e "${CYN} ${BLD}NetCell WebPanel${NC}${CYN} — Installer${NC}" echo -e "${CYN}══════════════════════════════════════════════════════════${NC}" echo "" # ─── Root check ─────────────────────────────────────────────────────────────── [ "$(id -u)" -ne 0 ] && fail "Bitte als root ausführen: curl -fsSL https://get.netcell-it.com | sudo bash" # ─── OS check ───────────────────────────────────────────────────────────────── if [ -f /etc/os-release ]; then . /etc/os-release OS_ID="$ID" OS_VERSION="$VERSION_ID" OS_CODENAME="${VERSION_CODENAME:-}" else fail "Betriebssystem nicht erkannt. Nur Debian 12/13 und Ubuntu 24.04 werden unterstützt." fi case "$OS_ID" in debian) [[ "$OS_VERSION" =~ ^(12|13)$ ]] || fail "Debian $OS_VERSION nicht unterstützt. Nur Debian 12 (Bookworm) oder 13 (Trixie)." ;; ubuntu) [[ "$OS_VERSION" == "24.04" ]] || fail "Ubuntu $OS_VERSION nicht unterstützt. Nur Ubuntu 24.04 LTS." ;; *) fail "$OS_ID wird nicht unterstützt. Nur Debian 12/13 und Ubuntu 24.04." ;; esac ARCH=$(dpkg --print-architecture 2>/dev/null || echo "unknown") [ "$ARCH" != "amd64" ] && fail "Architektur $ARCH nicht unterstützt. Nur amd64." log "System: $OS_ID $OS_VERSION ($OS_CODENAME) $ARCH" # ─── Dependencies ───────────────────────────────────────────────────────────── log "Installiere Voraussetzungen..." apt-get update -qq DEBIAN_FRONTEND=noninteractive apt-get install -y -qq curl gnupg ca-certificates apt-transport-https >/dev/null 2>&1 # ─── NetCell apt-Repository einrichten ──────────────────────────────────────── log "Richte apt-Repository ein..." mkdir -p /etc/apt/keyrings curl -fsSL "https://git.netcell-it.de/api/packages/projekte/debian/repository.key" \ -o /etc/apt/keyrings/netcell-gitea.asc echo 'deb [signed-by=/etc/apt/keyrings/netcell-gitea.asc] https://git.netcell-it.de/api/packages/projekte/debian bookworm main' \ > /etc/apt/sources.list.d/netcell.list apt-get update -qq # ─── Paketversion anzeigen ──────────────────────────────────────────────────── AVAILABLE=$(apt-cache policy netcell-webpanel 2>/dev/null | grep Candidate | awk '{print $2}') log "Verfügbare Version: ${BLD}$AVAILABLE${NC}" # ─── Installieren ───────────────────────────────────────────────────────────── log "Installiere NetCell WebPanel..." DEBIAN_FRONTEND=noninteractive apt-get install -y netcell-webpanel 2>&1 | while IFS= read -r line; do echo -e " ${line}" done # ─── Ergebnis ───────────────────────────────────────────────────────────────── SERVER_IP=$(hostname -I | awk '{print $1}') PANEL_PORT=3443 echo "" echo -e "${GRN}══════════════════════════════════════════════════════════${NC}" echo -e "${GRN} ${BLD}Installation abgeschlossen!${NC}" echo -e "${GRN}══════════════════════════════════════════════════════════${NC}" echo "" echo -e " ${BLD}Setup-Wizard:${NC} https://${SERVER_IP}:${PANEL_PORT}/setup" echo "" echo -e " Öffne die URL im Browser um das Panel einzurichten." echo -e " (Das SSL-Zertifikat ist self-signed — Browser-Warnung bestätigen)" echo "" echo -e " ${CYN}Logs:${NC}" echo -e " journalctl -u netcell-api -f" echo -e " journalctl -u netcell-agent -f" echo ""