NiceGUI Apps mit Docker auf Sliplane deployen

NiceGUI Apps mit Docker auf Sliplane deployen

Jonas Scholz - Co-Founder von sliplane.ioJonas Scholz
5 min

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:

  1. Registriere dich bei Sliplane (erste 2 Tage kostenlos)
  2. Verbinde dein GitHub-Repository indem du auf "Service erstellen" klickst und dein Repository auswählst
  3. Konfiguriere deinen Service:
    • Service-Name: my-nicegui-app (oder dein bevorzugter Name)
    • Behalte andere Einstellungen als Standard bei (Sliplane erkennt Ports automatisch)
  4. Klicke auf Deploy und warte etwa 2-3 Minuten
  5. 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

PlatformMonatliche KostenFeatures
Sliplane Base€9.002 vCPU, 2GB RAM, 40GB SSD
Google Cloud Run~$1322 vCPU, 2GB RAM, pay-per-use
Heroku Standard-2X$502 vCPU, 2GB RAM
DigitalOcean App$251 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.

Deploye deine NiceGUI App in 2 Minuten 🚀

Bringe deine Python-Web-App mit Sliplanes einfachem Container-Hosting online. Kein Server-Management erforderlich.

Deploye deine NiceGUI App in 2 Minuten 🚀

Bringe deine Python-Web-App mit Sliplanes einfachem Container-Hosting online. Kein Server-Management erforderlich.