🏠 WebUI NeuHome – KI-Dienste mit einem Klick starten

Desktop-Launcher für Ollama & Open WebUI mit System-Tray, GPU-Monitoring und Auto-Start

Python 3.12System-TrayOllamapystraynvidia-smi

🚀 Eigene KI-Tools für Ihr Unternehmen?

Vereinbaren Sie ein unverbindliches Strategiegespräch

📞 02406 803 7603 ✉️ info@computerkumpel.de

📊 Business Value

Lokale KI-Dienste wie Ollama oder Open WebUI erfordern mehrere manuelle Start-Vorgänge – umständlich und fehleranfällig. WebUI NeuHome ist ein Python-Desktop-Launcher, der alle KI-Dienste mit einem Klick startet, im System-Tray lebt und Live-Monitoring bietet.

🖱️
One-Click-Start
Ollama, Open WebUI – alle Dienste gleichzeitig mit einem Klick starten. Keine Konsolen, kein Getippe.
📌
System-Tray
Minimiert sich in die Taskleiste. Dienste starten/stoppen per Rechtsklick – ohne Hauptfenster zu öffnen.
📊
GPU-Monitoring
Echtzeit-Anzeige von GPU-Auslastung, VRAM-Nutzung und Temperatur via nvidia-smi-Integration.
Auto-Start
Optionaler automatischer Start mit Windows. KI ist sofort verfügbar – kein manuelles Eingreifen nötig.

⚙️ Funktionsweise – Subprocess-Orchestrierung

1
🐍

Python venv

Isolierte virtuelle Umgebung mit Python 3.12. Alle Abhängigkeiten sauber gekapselt, reproduzierbar via requirements.txt.

2
🖥️

GUI mit Tkinter

Native Windows-GUI ohne externe Frameworks. Minimalistisch, schnell, ressourcenschonend – perfekt für ein Utility-Tool.

3
🔌

Prozess-Manager

Subprocess-basiertes Starten/Stoppen mit Health-Checks. Graceful Shutdown mit Timeout – keine Zombie-Prozesse.

4
🌐

Browser-Launch

Öffnet Open WebUI automatisch im Browser (localhost:3000), sobald alle Dienste bereit sind.

💻 Technische Architektur

Modular aufgebaut mit klarer Trennung zwischen GUI, Prozess-Management und Konfiguration. Jeder KI-Dienst ist ein eigenes Service-Modul – erweiterbar um beliebige weitere Dienste.

🧩
Service-Klassen
OllamaService, WebUIService – jedes Modul kapselt Start/Stop/Health-Check. Neue Dienste per Plugin-Pattern.
⚙️
INI-Konfiguration
Pfade, Ports und Auto-Start via config.ini. Keine hartkodierten Werte. Über UI editierbar.
📊
psutil-Monitoring
CPU-Temperatur, RAM-Nutzung via psutil. GPU-VRAM und Temperatur via nvidia-smi Subprocess.

📝 Code-Snippets aus der Praxis

Service-Manager mit Subprocess und Health-Check

import subprocess, time, requests

class OllamaService:
    def __init__(self):
        self.process = None
        self.base_url = "http://localhost:11434"

    def start(self):
        self.process = subprocess.Popen(
            ["ollama", "serve"],
            stdout=subprocess.DEVNULL,
            stderr=subprocess.DEVNULL
        )
        self._wait_until_ready()

    def _wait_until_ready(self, timeout=30):
        for _ in range(timeout):
            try:
                r = requests.get(f"{self.base_url}/api/tags")
                if r.status_code == 200:
                    return True
            except: pass
            time.sleep(1)
        raise TimeoutError("Ollama nicht gestartet")

    def stop(self):
        if self.process:
            self.process.terminate()
            self.process.wait(timeout=10)

System-Tray Integration mit pystray

import pystray
from PIL import Image

def create_tray(services):
    icon = Image.open("assets/icon.png")
    menu = pystray.Menu(
        pystray.MenuItem("🚀 Starten", lambda: start_all(services)),
        pystray.MenuItem("⏹️ Stoppen", lambda: stop_all(services)),
        pystray.Menu.SEPARATOR,
        pystray.MenuItem("❌ Beenden", on_exit)
    )
    tray = pystray.Icon("webuineuhome", icon, "WebUI NeuHome", menu)
    tray.run()

GPU-Monitoring via nvidia-smi Subprocess

import subprocess

def get_gpu_stats():
    result = subprocess.run(
        ["nvidia-smi",
         "--query-gpu=utilization.gpu,memory.used,memory.total,temperature.gpu",
         "--format=csv,noheader,nounits"],
        capture_output=True, text=True
    )
    gpu, mem_u, mem_t, temp = result.stdout.strip().split(", ")
    return {
        "gpu_util_pct": int(gpu),
        "vram_used_mb": int(mem_u),
        "vram_total_mb": int(mem_t),
        "temp_celsius": int(temp)
    }

🚀 Desktop-Tool in Tagen, nicht Wochen

📞 02406 803 7603 ✉️ info@computerkumpel.de

🎯 Strategische Erkenntnisse

🖥️

Desktop-Tools sind unterschätzt

Nicht alles muss eine Web-App sein. Für lokale Infrastruktur ist ein Desktop-Tool mit System-Tray oft die überlegene UX.

Das richtige UI-Paradigma für den Use Case wählen.

👤

UX als Adoptions-Treiber

Der beste KI-Stack nützt nichts, wenn ihn keiner starten kann. Ein Launcher senkt die Einstiegshürde auf null.

Nicht die Technik – die Bedienbarkeit ist das Problem.

🔌

Microservice-Patterns auf dem Desktop

Der Launcher orchestriert Startreihenfolge und Health-Checks mehrerer Dienste. Gleiche Patterns wie im Server-Betrieb.

Bewährte Architekturmuster funktionieren überall.

Eigene Desktop-Tools oder KI-Launcher benötigt?

Ob System-Tray-Tools, Prozess-Manager oder komplette Desktop-Anwendungen – ich entwickle Python-Tools, die Ihre Workflows beschleunigen.

📞 Jetzt anrufen ✉️ E-Mail senden