# 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.)*
