# Deployment Guide: Ubuntu Server (Nginx + SSL) Diese Anleitung beschreibt, wie du das fertig gebaute Excel Add-in auf deinem privaten Ubuntu-Server unter der Domain `https://kabel.casademm.de` hosten kannst. ## Voraussetzung 1. Ein Linux-Server (Ubuntu) mit Root/Sudo-Zugriff. 2. Die Domain `kabel.casademm.de` muss im DNS-Manager deines Domain-Anbieters auf die IP-Adresse (A-Record) dieses Servers zeigen. 3. Du hast lokal auf deinem Entwicklungsrechner den Befehl `npm run build` ausgeführt. Dadurch wurde ein Ordner namens `dist` in deinem Projektverzeichnis (`C:\EWSL_Add_in\CableConsolidation\dist`) erstellt. --- ## Schritt 1: Nginx installieren Verbinde dich per SSH mit deinem Ubuntu-Server und aktualisiere die Paketquellen, um danach den Nginx Webserver zu installieren: ```bash sudo apt update sudo apt install nginx -y ``` Stelle sicher, dass Nginx läuft und beim Systemstart automatisch mitstartet: ```bash sudo systemctl enable nginx sudo systemctl start nginx ``` Falls du die `ufw` Firewall nutzt, erlaube den Nginx-Traffic: ```bash sudo ufw allow 'Nginx Full' ``` --- ## Schritt 2: Dateien auf den Server kopieren 1. Erstelle auf dem Server ein Verzeichnis für deine Domain: ```bash sudo mkdir -p /var/www/kabel.casademm.de/html ``` 2. Passe die Rechte an, damit Nginx (und dein User) darauf zugreifen können: ```bash sudo chown -R $USER:$USER /var/www/kabel.casademm.de/html sudo chmod -R 755 /var/www/kabel.casademm.de ``` 3. Übertrage nun den Inhalt deines lokalen `dist`-Ordners in dieses Verzeichnis auf dem Server. Das kannst du z.B. über ein SFTP-Programm wie WinSCP oder FileZilla machen. * **Quelle:** `C:\EWSL_Add_in\CableConsolidation\dist\*` * **Ziel (Server):** `/var/www/kabel.casademm.de/html/` *(Tipp: Vergewissere dich, dass die Datei `taskpane.html` und der `assets`-Ordner direkt im `/html/`-Verzeichnis liegen!)* --- ## Schritt 3: Nginx für die Domain konfigurieren Erstelle eine neue Server-Block Konfigurationsdatei für Nginx: ```bash sudo nano /etc/nginx/sites-available/kabel.casademm.de ``` Kopiere folgenden Inhalt hinein (dies lauscht erstmal nur auf Port 80): ```nginx server { listen 80; listen [::]:80; root /var/www/kabel.casademm.de/html; index taskpane.html index.html index.htm; server_name kabel.casademm.de; location / { try_files $uri $uri/ =404; # Erlaubt CORS, was für Web-Add-Ins nützlich ist add_header Access-Control-Allow-Origin *; } } ``` Speichere die Datei (in Nano: `Strg+O`, `Enter`, `Strg+X`). Aktiviere die Konfiguration, indem du einen Symlink erstellst: ```bash sudo ln -s /etc/nginx/sites-available/kabel.casademm.de /etc/nginx/sites-enabled/ ``` Prüfe, ob Nginx meckert, und starte neu: ```bash sudo nginx -t sudo systemctl reload nginx ``` --- ## Schritt 4: SSL-Zertifikat sichern (WICHTIG!) Microsoft Office weigert sich strikt, Add-ins ohne gültiges HTTPS-Zertifikat zu laden. Wir nutzen Certbot für ein kostenloses Let's Encrypt Zertifikat. 1. Installiere Certbot: ```bash sudo apt install certbot python3-certbot-nginx -y ``` 2. Generiere das Zertifikat: ```bash sudo certbot --nginx -d kabel.casademm.de ``` Certbot wird dich nach deiner E-Mail-Adresse fragen und dir anbieten, den Traffic automatisch auf HTTPS umzuleiten (wähle Option "2: Redirect"). Sobald Certbot fertig ist, läuft dein Server sicher unter `https://kabel.casademm.de`. --- ## Schritt 5: In Excel einbinden / ausrollen Jetzt wo dein Server online ist, benötigst du (und deine Firma) nur noch eine einzige Datei: Die `manifest.xml`. In der `manifest.xml` (welche du ebenfalls in deinem Projekt-Root hast) stehen bereits alle Verweise auf `https://kabel.casademm.de`. **Wie lade ich es im Office 365 Admin Center hoch?** 1. Die IT geht auf `admin.microsoft.com`. 2. Gehe zu **Einstellungen > Integrierte Apps**. 3. Klicke auf **Benutzerdefinierte Apps hochladen**. 4. Lade die finale `manifest.xml` hoch. 5. Weise die App den entsprechenden Benutzern (oder allen) zu. 6. Sobald Excel von den Mitarbeitern neugestartet wird, erscheint der neue Button im Menüband! *(Für lokale Tests kannst du das Add-In in Excel auch einfach über "Meine Add-ins" > "Zusatz-Add-In hochladen" nutzen.)*