#!/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 + arm64) # ══════════════════════════════════════════════════════════════════════════════ 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 # ─── Architektur erkennen ───────────────────────────────────────────────────── ARCH=$(dpkg --print-architecture 2>/dev/null || uname -m) case "$ARCH" in amd64|x86_64) ARCH="amd64" ;; arm64|aarch64) ARCH="arm64" ;; *) fail "Architektur $ARCH nicht unterstützt. Nur amd64 und arm64." ;; esac 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}" log "Architektur: ${BLD}$ARCH${NC}" # ─── Installieren ───────────────────────────────────────────────────────────── log "Installiere NetCell WebPanel ($ARCH)..." 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 ""