3.4 KiB
3.4 KiB
one.OS — Deployment Guide
Stack: Python 3 + Tornado · Single-File SPA (HTML) · Port 8080
Voraussetzung: Ubuntu 22.04 LTS · Nginx · Python 3.10+
1. Erstmaliges Server-Setup
1.1 Abhängigkeiten installieren
sudo apt update && sudo apt install -y python3 python3-pip nginx git
1.2 Repository klonen
sudo git clone https://github.com/DEIN-USERNAME/one-os.git /opt/one-os
sudo chown -R www-data:www-data /opt/one-os
1.3 Python-Abhängigkeiten
sudo pip3 install -r /opt/one-os/one_os_webapp/requirements.txt --break-system-packages
2. Systemd Service einrichten
# Service-File kopieren
sudo cp /opt/one-os/one-os.service /etc/systemd/system/one-os.service
# Service aktivieren und starten
sudo systemctl daemon-reload
sudo systemctl enable one-os
sudo systemctl start one-os
# Status prüfen
sudo systemctl status one-os
Der Tornado-Server läuft jetzt auf http://localhost:8080.
3. Nginx als Reverse Proxy
Neue Konfigurationsdatei anlegen:
sudo nano /etc/nginx/sites-available/one-os
Inhalt:
server {
listen 80;
server_name deine-domain.de; # ← anpassen
location / {
proxy_pass http://127.0.0.1:8080;
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_read_timeout 60s;
}
}
# Aktivieren
sudo ln -s /etc/nginx/sites-available/one-os /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
HTTPS mit Let's Encrypt (empfohlen)
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d deine-domain.de
4. Updates einspielen (ab hier: normaler Workflow)
sudo bash /opt/one-os/deploy.sh
Das Script macht automatisch:
git pull— neuesten Stand holen- Neueste
one.OS_local_v*.html→static/index.htmlkopieren - Python-Abhängigkeiten aktualisieren
- Service neu starten + Statuscheck
5. Logs & Monitoring
# Live-Logs
sudo journalctl -u one-os -f
# Letzte 50 Zeilen
sudo journalctl -u one-os -n 50 --no-pager
# Service-Status
sudo systemctl status one-os
6. Neue Version deployen (lokaler Workflow)
# 1. Lokal: neue Version erzeugen
# → one.OS_local_v1.7.21.html (Beispiel)
# 2. Zu git hinzufügen und pushen
git add one.OS_local_v1.7.21.html
git commit -m "feat: v1.7.21 - <kurze Beschreibung>"
git push origin main
# 3. Auf dem Server
sudo bash /opt/one-os/deploy.sh
7. Architektur-Übersicht
Internet
│
▼
[Nginx :80/443] ← SSL-Terminierung, Reverse Proxy
│
▼
[Tornado :8080] ← one.OS Backend + Static File Serving
│
├── GET / → redirect → /static/index.html
├── GET /static/* → one.OS Frontend (SPA)
└── /api/* → REST API (Liquid AI, Legal Fabric, ACE, ICP)
8. Troubleshooting
| Problem | Lösung |
|---|---|
| Service startet nicht | journalctl -u one-os -n 50 prüfen |
| Port 8080 belegt | sudo lsof -i :8080 → Prozess beenden |
| Nginx 502 Bad Gateway | Tornado läuft nicht: systemctl restart one-os |
| Python-Fehler | pip3 install tornado --break-system-packages |
| Keine Berechtigung | sudo chown -R www-data:www-data /opt/one-os |