5.8 KiB
5.8 KiB
AuthorBuddy – Installation auf Ubuntu VPS
Voraussetzungen
- Ubuntu 22.04 oder 24.04 LTS
- Root-Zugriff oder
sudo - Mindestens 8 GB RAM, 4 Kerne (empfohlen für lokale LLMs)
- ca. 15 GB freier Speicher für Ollama + Modelle
1. System aktualisieren & Abhängigkeiten
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git ufw
2. .NET 10 SDK / Runtime installieren
# Microsoft-Paketquelle registrieren
sudo apt install -y wget
wget https://dot.net/v1/dotnet-install.sh -O /tmp/dotnet-install.sh
chmod +x /tmp/dotnet-install.sh
# .NET 10 SDK (zum Build)
sudo /tmp/dotnet-install.sh --channel 10.0 --install-dir /usr/share/dotnet
# Symlink für globale Nutzung
sudo ln -sf /usr/share/dotnet/dotnet /usr/local/bin/dotnet
# Prüfen
dotnet --version
# => 10.0.xxx
Falls nur Runtime benötigt wird:
--channel 10.0 --runtime aspnetcore
3. Ollama installieren
curl -fsSL https://ollama.com/install.sh | sh
# Dienst starten
sudo systemctl enable ollama
sudo systemctl start ollama
# Prüfen
ollama --version
# Port prüfen (default 11434)
ss -tlnp | grep 11434
Modelle pullen
Für den Betrieb werden mindestens 2 Modelle empfohlen:
# Standard-Modell für Lektorat, Assistent, Stilanalyse
ollama pull llama3.2:3b
# Modell für Rechtschreibprüfung (kleiner, schneller)
ollama pull llama3.2:1b
Größere Modelle (7B–13B) liefern bessere Texte. Beispiele:
ollama pull llama3.1:8b
ollama pull dolphin-mistral:7b
Übersicht Speicherverbrauch:
| Modell | RAM/VRAM |
|---|---|
| llama3.2:1b | ~1 GB |
| llama3.2:3b | ~2,5 GB |
| llama3.1:8b | ~5,5 GB |
| dolphin-mistral:7b | ~5 GB |
4. App bauen & deployen
# Quellcode auf den Server kopieren (z.B. via SCP oder Git)
git clone https://github.com/dein-repo/AuthorBuddy.Web /opt/AuthorBuddy.Web
# ODER: scp -r . ubuntu@deine-vps:/opt/AuthorBuddy.Web
cd /opt/AuthorBuddy.Web
# Restore & Build (Release)
dotnet restore
dotnet publish -c Release -o /opt/AuthorBuddy.Web/publish
# Daten-Verzeichnis für Projekte anlegen
mkdir -p /home/ubuntu/Documents/AuthorBuddy
Datenbankpfad prüfen
LiteDB erzeugt die Datenbank author_brain.db standardmäßig im bin/-Verzeichnis.
Besser: Ein festes Verzeichnis setzen → Umgebungsvariable oder Code-Anpassung in Program.cs:
// Program.cs (optional – falls gewünscht)
var dbDir = "/opt/AuthorBuddy.Web/data";
Directory.CreateDirectory(dbDir);
var dbPath = Path.Combine(dbDir, "author_brain.db");
5. Systemd-Service einrichten
sudo nano /etc/systemd/system/authorbuddy.service
[Unit]
Description=AuthorBuddy Web
After=network.target ollama.service
[Service]
WorkingDirectory=/opt/AuthorBuddy.Web/publish
ExecStart=/usr/share/dotnet/dotnet /opt/AuthorBuddy.Web/publish/AuthorBuddy.Web.dll
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=authorbuddy
User=ubuntu
Environment=ASPNETCORE_URLS=http://localhost:5000
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable authorbuddy
sudo systemctl start authorbuddy
# Status prüfen
sudo systemctl status authorbuddy
# Logs live
sudo journalctl -u authorbuddy -f
6. Reverse Proxy mit Nginx
sudo apt install -y nginx
/etc/nginx/sites-available/authorbuddy:
server {
listen 80;
server_name deine-domain.de;
# (Optional: später mit Certbot auf HTTPS upgraden)
# return 301 https://$host$request_uri;
location / {
proxy_pass http://localhost:5000;
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;
# Blazor Server benötigt lange Timeouts für Streaming
proxy_read_timeout 86400s;
proxy_send_timeout 86400s;
}
}
sudo ln -s /etc/nginx/sites-available/authorbuddy /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
HTTPS (Let's Encrypt)
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d deine-domain.de
7. Firewall
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
8. Einrichtung in der App
Nach dem ersten Start:
- Im Browser öffnen:
http://deine-domain.de - Ersten Benutzer registrieren (wird automatisch Admin)
- Settings → Ollama Server:
http://localhost:11434 - Test – Verbindung prüfen
- Modelle zuweisen:
- RAG-Modell:
llama3.2:3b(oder größer) - Stil-Modell:
llama3.2:3b - Rechtschreib-Modell:
llama3.2:1b(klein = schnell)
- RAG-Modell:
- Prompts prüfen – Standard-Prompts sind vorbelegt
9. Nützliche Befehle
| Aktion | Befehl |
|---|---|
| App neustarten | sudo systemctl restart authorbuddy |
| Logs ansehen | sudo journalctl -u authorbuddy -f |
| Ollama neustarten | sudo systemctl restart ollama |
| Verfügbare Modelle | ollama list |
| Modell laufend testen | ollama run llama3.2:3b |
| App stoppen | sudo systemctl stop authorbuddy |
10. Backup
# Datenbank + Projekte sichern
sudo tar czf /root/backup-authorbuddy-$(date +%Y%m%d).tar.gz \
/opt/AuthorBuddy.Web/data \
/home/ubuntu/Documents/AuthorBuddy
Fehlerbehebung
- 502 Bad Gateway → App-Logs prüfen:
journalctl -u authorbuddy -f - Ollama nicht erreichbar →
curl http://localhost:11434testen - Port bereits belegt →
ASPNETCORE_URLSin der Service-Datei ändern - Blazor SignalR disconnect →
proxy_read_timeoutin Nginx erhöhen (86400s)