# KI-Server Einrichtung - Schritt-für-Schritt Anleitung *(Hintergrund und Lizenz im [ebildungslabor](https://ebildungslabor.de/blog/so-gestaltest-du-dir-einen-eigenen-ki-server/))* ## Schritt 1: Server mieten und einrichten **Vorbereitung:** - Gehe zu https://console.hetzner.cloud/ - Richte einen CPX51-Server ein: - Standort: z.B. Nürnberg - Betriebssystem: Ubuntu 24.04 - Rest auf Standard lassen - SSH und Firewall werden später eingerichtet - Projekt benennen: z.B. "ki-umgebung" **Terminal-Befehle (nacheinander eingeben):** 1. Mit Server verbinden (ersetze mit deinen Serverziffern): ```bash ssh root@DEINE_SERVERZIFFERN ``` *Dann bestätigen, dass du dich einloggen willst. Dann Passwort eingeben und Enter. Es sollte so etwas erscheinen wie: `root@ki-umgebung:~#`. Wenn zunächst 'invalid password' erscheint, versuche es nochmals - oft klappt es erst im dritten Anlauf.* 2. Updates installieren (dauert ein paar Minuten): ```bash apt update && apt upgrade -y ``` *Es wird viel Text durchlaufen und es braucht ein paar Minuten.* 3. Server neu starten: ```bash reboot ``` *Das braucht ein paar Minuten.* 4. Nach dem Neustart erneut anmelden (wie in Schritt 1): ```bash ssh root@DEINE_SERVERZIFFERN ``` ## Schritt 2: Docker installieren 1. Docker installieren: ```bash curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh ``` 2. Installation testen: ```bash docker --version ``` *Wenn Docker installiert ist, wird dir die Versionsnummer angezeigt (z.B. 28.30)* ## Schritt 3: KI-Umgebung einrichten 1. Docker-Compose Datei erstellen: ```bash nano docker-compose.yml ``` 2. Folgenden Inhalt komplett eingeben (viel Text!): ```yaml services: ollama: image: ollama/ollama:latest container_name: ollama ports: - "11434:11434" volumes: - ollama_data:/root/.ollama restart: unless-stopped environment: - OLLAMA_HOST=0.0.0.0:11434 open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui ports: - "3000:8080" volumes: - openwebui_data:/app/backend/data environment: - OLLAMA_BASE_URL=http://ollama:11434 - WEBUI_AUTH=True depends_on: - ollama restart: unless-stopped extra_hosts: - host.docker.internal:host-gateway volumes: ollama_data: openwebui_data: ``` 3. Datei speichern und schließen: - Drücke `Strg+X` zum Beenden - Dann `Y` zum Speichern - Dann `Enter` 4. Services starten: ```bash docker compose up -d ``` *Ollama und Open WebUI werden installiert.* 5. Status prüfen: ```bash docker compose ps ``` *Hier kannst du schauen, ob alles läuft.* Danach kannst du deinen Server im Browser öffnen. = http://(deineserverziffern) Dort kannst du dich dann als Admin bei Ollama registrieren, ein erstes KI-Nodell installieren und dich in einen Chat begeben. ## Schritt 4: Server absichern 1. Firewall aktivieren: ```bash ufw enable ``` 2. SSH-Zugriff erlauben: ```bash ufw allow ssh ``` 3. Open WebUI Port freigeben: ```bash ufw allow 3000/tcp ``` *Wir erlauben nur den Zugriff über SSH und geben den Port für Open WebUI frei.* 4. Automatische Updates installieren: ```bash apt install unattended-upgrades -y ``` 5. Automatische Updates konfigurieren: ```bash dpkg-reconfigure -plow unattended-upgrades ``` *Hier festlegen, dass Sicherheitsupdates automatisch installiert werden.* 6. Status prüfen: ```bash systemctl status unattended-upgrades ``` 7. Schutz gegen Angriffe installieren: ```bash apt install fail2ban -y ``` 8. Fail2ban aktivieren: ```bash systemctl enable fail2ban systemctl start fail2ban ``` *Falls deine KI-Installation danach langsam läuft, könntest du den Docker-Container mit `docker compose restart` nochmals neu starten.* ## Schritt 5: Verbindung zu proprietären Modellen **Browser-Schritte:** 1. Account bei https://openrouter.ai erstellen 2. Ca. 5 Euro einzahlen (reichen für den Anfang super gut aus, du kannst dir auch eine Mail-Erinnerung einrichten, wenn der Betrag aufgebraucht ist.) 3. Einen Key erstellen - **und direkt kopieren!** 4. In Open WebUI gehen: - Admin-Panel suchen - Nach "Verbindungen" suchen - Neue Verbindung hinzufügen: - **Name:** OpenRouter - **API Base URL:** https://openrouter.ai/api/v1 - **API Key:** [dein zuvor erhaltener OpenRouter API-Key] ## Schritt 6: Domain und SSL einrichten **Domain registrieren:** - Bei namecheap.com oder anderem Anbieter Domain **ohne weitere Extras** kaufen - Zu Advanced DNS gehen, zwei Records einrichten. **Nach der Eingabe speichern!** **Record 1:** - Type: A Record - Host: @ - Value: DEINE_SERVERZIFFERN - TTL: Automatic (oder 300 oder 1800) **Record 2:** - Type: A Record - Host: www - Value: DEINE_SERVERZIFFERN - TTL: Automatic **Nginx installieren:** 1. Nginx installieren: ```bash apt install nginx -y ``` 2. Nginx aktivieren: ```bash systemctl enable nginx ``` 3. Nginx starten: ```bash systemctl start nginx ``` 4. HTTP-Port freigeben: ```bash ufw allow 80/tcp ``` 5. HTTPS-Port freigeben: ```bash ufw allow 443/tcp ``` 6. Firewall neu laden: ```bash ufw reload ``` 7. Nginx-Konfiguration bearbeiten: ```bash nano /etc/nginx/sites-available/default ``` 8. Inhalt **komplett ersetzen** mit (ersetze deine-domain.de durch deine echte Domain): ```nginx server { listen 80; server_name deine-domain.de www.deine-domain.de; location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_cache_bypass $http_upgrade; } } ``` 9. Speichern und schließen: - Drücke `Strg+X` - Dann `Y` für Ja - Dann `Enter` 10. Konfiguration testen: ```bash nginx -t ``` 11. Nginx neu laden: ```bash systemctl reload nginx ``` 12. Certbot installieren: ```bash apt install certbot python3-certbot-nginx -y ``` 13. SSL-Zertifikat besorgen (Domain anpassen!): ```bash certbot --nginx -d deine-domain.de -d www.deine-domain.de ``` *Du wirst nach einer Mailadresse gefragt, um benachrichtigt zu werden, wenn das Zertifikat abläuft. Certbot wird automatisch deine nginx-Konfiguration für HTTPS erweitern.* 14. Abschließend testen: ```bash nginx -t ``` 15. Nginx neu laden: ```bash systemctl reload nginx ``` **Wenn du jetzt den Cache im Browser leerst, solltest du über deinen Domainnamen über eine sichere Verbindung zu deinem KI-Server herstellen können.** ## Schritt 7: Wissensdatenbank nutzen **Browser-Schritte:** 1. In Open WebUI den "Arbeitsbereich" öffnen 2. Unter "Wissen" spezifische Bereiche einrichten 3. Ein oder mehrere Dateien in jeden Bereich hochladen 4. In Prompts mit Hashtag auf Wissensbereiche zugreifen - Wenn du einen Prompt eingibst und einen Hashtag eingibst, werden dir die Wissensbereiche und auch die einzelnen Dateien angezeigt - Du kannst also immer gezielt überlegen, auf was du jeweils Bezug nehmen willst bei deinem Prompt **Viel Freude mit deinem eigenen KI-Server 🙂**