
NiceGUI Apps mit Docker auf Sliplane deployen

NiceGUI ist ein fantastisches Python-Framework zum einfachen Erstellen webbasierter Benutzeroberflächen. Wenn du eine NiceGUI-App gebaut hast und sie ohne die Komplexität des Server-Managements deployen möchtest, bist du hier richtig. In diesem Tutorial zeige ich dir, wie du deine NiceGUI-Anwendung containerisierst und auf Sliplane deployest.
Suchst du etwas Einfacheres? Wenn du deine NiceGUI-App nur schnell online bringen möchtest, ohne Docker zu lernen, springe zum einfachen Deployment-Abschnitt unten.
Voraussetzungen
Bevor wir starten, stelle sicher, dass du folgendes hast:
- Eine NiceGUI-Anwendung, die bereit zum Deployment ist
- Docker auf deinem lokalen Rechner installiert (zum Testen)
- Ein GitHub-Repository mit deinem NiceGUI-Code
- Ein Sliplane-Account
Schritt 1: Deine NiceGUI-Anwendung vorbereiten
Zunächst stellen wir sicher, dass deine NiceGUI-App produktionsreif ist. Hier ist ein einfaches Beispiel einer NiceGUI-Anwendung:
from nicegui import ui
@ui.page('/')
def index():
ui.label('Hallo NiceGUI Welt!')
ui.button('Klick mich!', on_click=lambda: ui.notify('Button geklickt!'))
if __name__ in {"__main__", "__mp_main__"}:
ui.run(host='0.0.0.0', port=8080, reload=False)
Wichtige Punkte für das Produktions-Deployment:
- Setze
host='0.0.0.0'
um Verbindungen von außerhalb des Containers zu akzeptieren - Verwende einen beliebigen Port (Sliplane erkennt Ports automatisch)
- Setze
reload=False
für Produktionsstabilität - Verwende die
if __name__
-Überprüfung um Probleme bei Container-Neustarts zu vermeiden
Schritt 2: Das Dockerfile erstellen
Erstelle ein Dockerfile
in deinem Projektverzeichnis:
FROM zauberzeug/nicegui:latest
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8080
CMD ["python", "main.py"]
Dieses Dockerfile:
- Verwendet das neueste offizielle NiceGUI-Base-Image (prüfe Docker Hub für spezifische Versionen falls nötig)
- Installiert deine Abhängigkeiten aus
requirements.txt
- Kopiert deinen Anwendungscode
- Exponiert Port 8080
- Führt deine Haupt-Anwendungsdatei aus
Schritt 3: Requirements-Datei erstellen
Erstelle eine requirements.txt
-Datei mit deinen Abhängigkeiten:
nicegui
# Füge andere Abhängigkeiten hinzu, die deine App benötigt
# Zum Beispiel:
# pandas
# requests
# matplotlib
Schritt 4: Docker Ignore-Datei hinzufügen
Erstelle eine .dockerignore
-Datei um unnötige Dateien auszuschließen:
__pycache__
*.pyc
*.pyo
*.pyd
.git
.gitignore
README.md
.pytest_cache
.coverage
venv/
env/
.venv/
.env/
Schritt 5: Lokal testen
Vor dem Deployment teste deinen Container lokal:
# Das Image builden
docker build -t my-nicegui-app .
# Den Container ausführen
docker run -p 8080:8080 my-nicegui-app
Besuche http://localhost:8080
um zu überprüfen, dass deine App im Container korrekt funktioniert.
Schritt 6: Auf Sliplane deployen
Jetzt kommt der einfache Teil! So deployest du deine NiceGUI-App auf Sliplane:
- Registriere dich bei Sliplane (erste 2 Tage kostenlos)
- Verbinde dein GitHub-Repository indem du auf "Service erstellen" klickst und dein Repository auswählst
- Konfiguriere deinen Service:
- Service-Name:
my-nicegui-app
(oder dein bevorzugter Name) - Behalte andere Einstellungen als Standard bei (Sliplane erkennt Ports automatisch)
- Service-Name:
- Klicke auf Deploy und warte etwa 2-3 Minuten
- Greife auf deine App zu unter
https://my-nicegui-app.sliplane.app
Das war's! Deine NiceGUI-App ist jetzt live und weltweit zugänglich.
Automatische Updates
Wann immer du Änderungen an dein GitHub-Repository pushst, rebuildet und deployt Sliplane deine Anwendung automatisch. Kein manueller Eingriff erforderlich.
Kostenvergleich
Platform | Monatliche Kosten | Features |
---|---|---|
Sliplane Base | €9.00 | 2 vCPU, 2GB RAM, 40GB SSD |
Google Cloud Run | ~$132 | 2 vCPU, 2GB RAM, pay-per-use |
Heroku Standard-2X | $50 | 2 vCPU, 2GB RAM |
DigitalOcean App | $25 | 1 vCPU, 2GB RAM, dedicated |
Sliplane bietet exzellentes Preis-Leistungs-Verhältnis mit dedizierten Ressourcen und ohne Cold Starts.
FAQ
F: Kann ich mehrere NiceGUI-Apps auf einem Server ausführen? A: Ja! Sliplane erlaubt unbegrenzte Container pro Server. Deploye mehrere NiceGUI-Apps und sie teilen sich die Server-Ressourcen.
F: Funktioniert NiceGUI gut in Containern? A: Absolut. NiceGUI wurde mit Containerisierung im Hinterkopf entwickelt und funktioniert perfekt mit Docker.
F: Wie gehe ich mit Datei-Uploads um?
A: Verwende NiceGUIs eingebaute Upload-Komponente und speichere Dateien in einem persistenten Volume unter /data
.
F: Kann ich externe APIs verwenden? A: Ja, NiceGUI-Apps können HTTP-Requests an externe APIs senden. Speichere API-Keys als Umgebungsvariablen in Sliplane.