Bereit, zu Open WebUI beizutragen? Los geht's! 🚀
Möchten Sie in die Entwicklung von Open WebUI einsteigen? Dieser umfassende Leitfaden führt Sie schnell und einfach durch die Einrichtung Ihrer lokalen Entwicklungsumgebung. Egal, ob Sie ein erfahrener Entwickler sind oder gerade erst anfangen, wir machen Sie bereit, das Frontend zu optimieren, das Backend zu erweitern und zur Zukunft von Open WebUI beizutragen! Lassen Sie uns Ihre Entwicklungsumgebung mit einfachen, detaillierten Schritten einrichten und zum Laufen bringen!
Voraussetzungen
Stellen Sie vor Beginn sicher, dass Ihr System die Mindestanforderungen erfüllt
- Betriebssystem: Linux (oder WSL unter Windows), Windows 11 oder macOS. (Empfohlen für beste Kompatibilität)
- Python: Version 3.11 oder höher. (Erforderlich für Backend-Dienste)
- Node.js: Version 22.10 oder höher. (Erforderlich für die Frontend-Entwicklung)
- IDE (Empfohlen): Wir empfehlen die Verwendung einer IDE wie VSCode für die Codebearbeitung, das Debugging und den integrierten Terminalzugriff. Fühlen Sie sich frei, Ihre bevorzugte IDE zu verwenden, wenn Sie eine haben!
- [Optional] GitHub Desktop: Für eine einfachere Verwaltung des Git-Repositorys, insbesondere wenn Sie mit der Kommandozeile von Git weniger vertraut sind, sollten Sie die Installation von GitHub Desktop in Erwägung ziehen.
Einrichtung Ihrer lokalen Umgebung
Wir werden sowohl das Frontend (Benutzeroberfläche) als auch das Backend (API und Serverlogik) von Open WebUI einrichten.
1. Repository klonen
Klonen Sie zuerst das Open WebUI-Repository mit git clone auf Ihren lokalen Rechner herunter. Dadurch wird eine lokale Kopie des Projekts auf Ihrem Computer erstellt.
- Öffnen Sie Ihr Terminal (oder Git Bash, wenn Sie unter Windows Git Bash verwenden).
- Navigieren Sie zu dem Verzeichnis, in dem Sie das Open WebUI-Projekt speichern möchten.
- Klonen Sie das Repository: Führen Sie den folgenden Befehl aus
git clone https://github.com/open-webui/open-webui.git
cd open-webui
Der Befehl git clone lädt die Projektdateien von GitHub herunter. Der Befehl cd open-webui navigiert Sie dann in das neu erstellte Projektverzeichnis.
2. Frontend-Einrichtung (Benutzeroberfläche)
Lassen Sie uns zuerst die Benutzeroberfläche (das, was Sie in Ihrem Browser sehen) zum Laufen bringen
- Umgebungsvariablen konfigurieren
-
Kopieren Sie die Beispielumgebungsdatei nach
.envcp -RPp .env.example .envDieser Befehl kopiert die Datei
.env.examplein eine neue Datei namens.env. In der Datei.envwerden die Umgebungsvariablen für das Frontend konfiguriert. -
Passen Sie
.envan: Öffnen Sie die Datei.envin Ihrem Code-Editor (z. B. VSCode). Diese Datei enthält Konfigurationsvariablen für das Frontend, wie API-Endpunkte und andere Einstellungen. Für die lokale Entwicklung sind die Standardeinstellungen in.env.examplein der Regel ausreichend, um zu beginnen. Sie können diese jedoch bei Bedarf anpassen.
-
Wichtig: Übertragen Sie keine sensiblen Informationen in .env, wenn Sie zum Repository beitragen.
-
Frontend-Abhängigkeiten installieren
-
Navigieren Sie zum Frontend-Verzeichnis: Wenn Sie sich nicht bereits im Projektstammverzeichnis (
open-webui) befinden, stellen Sie sicher, dass Sie dort sind.# If you are not in the project root, run:
cd open-webui -
Installieren Sie die erforderlichen JavaScript-Pakete
npm installDieser Befehl verwendet
npm(Node Package Manager), um die Dateipackage.jsonim Stammverzeichnis des Projekts zu lesen und alle erforderlichen JavaScript-Bibliotheken und -Tools herunterzuladen, die für die Ausführung des Frontends benötigt werden. Dies kann je nach Ihrer Internetverbindung einige Minuten dauern.
-
-
Starten Sie den Frontend-Entwicklungsserver
npm run devDieser Befehl startet den Frontend-Entwicklungsserver. Wenn die Schritte erfolgreich waren, wird normalerweise angezeigt, dass der Server läuft und eine lokale URL bereitgestellt wird.
🎉 Greifen Sie auf das Frontend zu: Öffnen Sie Ihren Webbrowser und rufen Sie https://:5173 auf. Sie sollten eine Meldung sehen, die besagt, dass das Frontend von Open WebUI läuft und auf das Backend wartet. Machen Sie sich vorerst keine Sorgen um diese Meldung! Lassen Sie uns als Nächstes das Backend einrichten. Lassen Sie dieses Terminal laufen – es bedient Ihr Frontend!
3. Backend-Einrichtung (API und Server)
Für eine reibungslosere Entwicklungserfahrung empfehlen wir dringend, separate Terminalinstanzen für Ihre Frontend- und Backend-Prozesse zu verwenden. Dies hält Ihre Arbeitsabläufe organisiert und erleichtert die unabhängige Verwaltung jedes Teils der Anwendung.
Warum separate Terminals?
- Prozessisolation: Die Frontend- und Backend-Entwicklungsserver sind eigenständige Programme. Wenn Sie sie in separaten Terminals ausführen, stellen Sie sicher, dass sie sich nicht gegenseitig beeinträchtigen und ermöglichen unabhängige Neustarts oder Stopps.
- Klarere Protokolle und Ausgaben: Jedes Terminal zeigt die Protokolle und Ausgaben an, die speziell für das Frontend oder das Backend bestimmt sind. Dies erleichtert das Debugging und die Überwachung erheblich, da Sie nicht durch verschachtelte Protokolle suchen müssen.
- Reduzierte Terminal-Unübersichtlichkeit: Das Mischen von Frontend- und Backend-Befehlen in einem Terminal kann verwirrend werden. Separate Terminals halten Ihren Befehlsverlauf und aktive Prozesse organisiert.
- Verbesserte Workflow-Effizienz: Sie können im einen Terminal an Frontend-Aufgaben arbeiten (z. B.
npm run devausführen) und gleichzeitig Backend-Aufgaben (z. B. Server starten oder Protokolle überprüfen) im anderen verwalten, ohne ständig den Kontext in einem einzelnen Terminal wechseln zu müssen.
Verwendung integrierter VSCode-Terminals (empfohlen)
Die integrierte Terminalfunktion von VSCode macht die Verwaltung mehrerer Terminals unglaublich einfach. So nutzen Sie sie für die Trennung von Frontend und Backend
-
Frontend-Terminal (wahrscheinlich haben Sie das bereits): Wenn Sie die Schritte zur Frontend-Einrichtung befolgt haben, haben Sie wahrscheinlich bereits ein Terminal in VSCode im Projektstammverzeichnis (
open-webui) geöffnet. Hier führen Sie Ihre Frontend-Befehle aus (npm run devusw.). Stellen Sie sicher, dass Sie sich im Verzeichnisopen-webuibefinden, wenn Sie mit den nächsten Schritten fortfahren, falls Sie dies noch nicht sind. -
Backend-Terminal (Neues öffnen)
- Gehen Sie in VSCode zu Terminal > Neues Terminal (oder verwenden Sie die Verknüpfung
Strg+Umschalt+unter Windows/Linux oderCmd+Umschalt+unter macOS). Dies öffnet ein neues integriertes Terminalfenster. - Navigieren Sie zum Verzeichnis
backend: Wechseln Sie in diesem neuen Terminal mit dem Befehlcd backendin den Ordnerbackendinnerhalb Ihres Projekts. Dies stellt sicher, dass alle Backend-bezogenen Befehle im richtigen Kontext ausgeführt werden.
Sie haben nun zwei separate Terminalinstanzen in VSCode: eine für das Frontend (wahrscheinlich im Verzeichnis
open-webui) und eine speziell für das Backend (im Verzeichnisbackend). Sie können in VSCode einfach zwischen diesen Terminals wechseln, um Ihre Frontend- und Backend-Prozesse unabhängig voneinander zu verwalten. Diese Einrichtung wird für einen saubereren und effizienteren Entwicklungs-Workflow dringend empfohlen. - Gehen Sie in VSCode zu Terminal > Neues Terminal (oder verwenden Sie die Verknüpfung
Backend-Einrichtungsschritte (in Ihrem Backend-Terminal)
-
Navigieren Sie zum Backend-Verzeichnis: (Sie sollten sich in Ihrem neuen Terminal aus dem vorherigen Schritt bereits im Verzeichnis
backendbefinden). Wenn nicht, führen Sie auscd backend -
Conda-Umgebung erstellen und aktivieren (empfohlen)
-
Wir empfehlen dringend die Verwendung von Conda zur Verwaltung von Python-Abhängigkeiten und zur Isolierung Ihrer Projektumgebung. Dies verhindert Konflikte mit anderen Python-Projekten auf Ihrem System und stellt sicher, dass Sie die richtige Python-Version und die erforderlichen Bibliotheken haben.
conda create --name open-webui python=3.11
conda activate open-webuiconda create --name open-webui python=3.11: Dieser Befehl erstellt eine neue Conda-Umgebung namensopen-webuimit der Python-Version 3.11. Wenn Sie eine andere Python 3.11.x-Version gewählt haben, ist das in Ordnung.conda activate open-webui: Dieser Befehl aktiviert die neu erstellte Conda-Umgebung. Nach der Aktivierung ändert sich Ihre Terminalaufforderung normalerweise, um anzuzeigen, dass Sie sich in der Umgebungopen-webuibefinden (z. B. steht am Anfang der Zeile(open-webui)).
Stellen Sie sicher, dass Sie die Umgebung in Ihrem Backend-Terminal aktivieren, bevor Sie fortfahren.
(Die Verwendung von Conda ist optional, wird aber zur Verwaltung von Python-Abhängigkeiten und zur Vermeidung von Konflikten dringend empfohlen.) Wenn Sie sich gegen die Verwendung von Conda entscheiden, stellen Sie sicher, dass Sie Python 3.11 oder höher verwenden und fahren Sie mit dem nächsten Schritt fort, aber seien Sie sich möglicher Abhängigkeitskonflikte bewusst.
-
-
Backend-Abhängigkeiten installieren
- Führen Sie in Ihrem Backend-Terminal (und mit aktivierter Conda-Umgebung, wenn Sie Conda verwenden) aus
pip install -r requirements.txt -UDieser Befehl verwendet
pip(Python Package Installer), um die Dateirequirements.txtim Verzeichnisbackendzu lesen.requirements.txtlistet alle Python-Bibliotheken auf, die das Backend zum Ausführen benötigt.pip installlädt diese Bibliotheken herunter und installiert sie in Ihrer aktiven Python-Umgebung (Ihrer Conda-Umgebung, wenn Sie sie verwenden, oder andernfalls Ihrer systemweiten Python-Umgebung). Das Flag-Ustellt sicher, dass Sie die neuesten kompatiblen Versionen der Bibliotheken erhalten. -
Starten Sie den Backend-Entwicklungsserver
- Führen Sie in Ihrem Backend-Terminal aus
sh dev.shDieser Befehl führt das Skript
dev.shaus. Dieses Skript enthält wahrscheinlich den Befehl zum Starten des Backend-Entwicklungsservers. (Sie können die Dateidev.shin Ihrem Code-Editor öffnen und untersuchen, um den genauen ausgeführten Befehl zu sehen, wenn Sie neugierig sind.) Der Backend-Server wird normalerweise gestartet und gibt einige Ausgaben im Terminal aus.📄 Erkunden Sie die API-Dokumentation: Sobald das Backend läuft, können Sie die automatisch generierte API-Dokumentation in Ihrem Webbrowser unter https://:8080/docs aufrufen. Diese Dokumentation ist äußerst wertvoll, um die Backend-API-Endpunkte zu verstehen, wie Sie mit dem Backend interagieren und welche Daten es erwartet und zurückgibt. Halten Sie diese Dokumentation während der Entwicklung griffbereit!
🎉 Herzlichen Glückwunsch! Wenn Sie alle Schritte befolgt haben, sollten Sie jetzt sowohl den Frontend- als auch den Backend-Entwicklungsserver lokal laufen haben. Gehen Sie zurück zu Ihrem Browser-Tab, über den Sie auf das Frontend zugegriffen haben (normalerweise https://:5173). Aktualisieren Sie die Seite. Sie sollten nun die vollständige Open WebUI-Anwendung in Ihrem Browser sehen, die mit Ihrem lokalen Backend verbunden ist!
Fehlerbehebung bei häufigen Problemen
Hier sind Lösungen für einige häufige Probleme, auf die Sie während der Einrichtung oder Entwicklung stoßen könnten
💥 "FATAL ERROR: Reached Heap Limit" (Frontend)
Dieser Fehler, der häufig während der Frontend-Entwicklung auftritt, zeigt an, dass Node.js während des Build-Prozesses der Speicher ausgeht, insbesondere bei der Arbeit mit großen Frontend-Anwendungen.
Lösung: Erhöhen Sie die Heap-Größe von Node.js. Dies gibt Node.js mehr Speicher zur Verfügung. Sie haben einige Optionen
-
Verwendung der
NODE_OPTIONSUmgebungsvariablen (empfohlen für die Entwicklung)-
Dies ist eine temporäre Methode, um das Speicherlimit für die aktuelle Terminalsitzung zu erhöhen. Bevor Sie
npm run devodernpm run buildin Ihrem Frontend-Terminal ausführen, setzen Sie die UmgebungsvariableNODE_OPTIONSexport NODE_OPTIONS="--max-old-space-size=4096" # For Linux/macOS (bash, zsh)
# set NODE_OPTIONS=--max-old-space-size=4096 # For Windows (Command Prompt)
# $env:NODE_OPTIONS="--max-old-space-size=4096" # For Windows (PowerShell)
npm run devWählen Sie den für Ihr Betriebssystem und Terminal geeigneten Befehl.
4096steht für 4 GB Speicher. Sie können diesen Wert bei Bedarf weiter erhöhen (z. B.8192für 8 GB). Diese Einstellung gilt nur für Befehle, die in der aktuellen Terminalsitzung ausgeführt werden.
-
-
Dockerfileändern (für Docker-Umgebungen)-
Wenn Sie mit Docker arbeiten, können Sie die Umgebungsvariable
NODE_OPTIONSdauerhaft in IhremDockerfilefestlegen. Dies ist nützlich für eine konsistente Speicherzuweisung in Docker-Umgebungen, wie im Beispiel des ursprünglichen Leitfadens gezeigtENV NODE_OPTIONS=--max-old-space-size=4096 -
Ausreichend RAM zuweisen: Unabhängig von der Methode stellen Sie sicher, dass Ihr System oder Container genügend RAM für Node.js zur Verfügung hat. Mindestens 4 GB RAM werden empfohlen, und mehr könnte für größere Projekte oder komplexe Builds erforderlich sein. Schließen Sie unnötige Anwendungen, um RAM freizugeben.
-
⚠️ Portkonflikte (Frontend & Backend)
Wenn Sie Fehler im Zusammenhang mit Ports sehen, wie z. B. "Adresse bereits in Verwendung" oder "Port bereits belegt", bedeutet dies, dass eine andere Anwendung auf Ihrem System bereits Port 5173 (Standard für Frontend) oder 8080 (Standard für Backend) verwendet. Nur eine Anwendung kann einen bestimmten Port gleichzeitig nutzen.
Lösung
-
Konfliktierenden Prozess identifizieren: Sie müssen herausfinden, welche Anwendung den benötigten Port verwendet.
- Linux/macOS: Öffnen Sie ein neues Terminal und verwenden Sie die Befehle
lsofodernetstatlsof -i :5173(oder:8080für den Backend-Port)netstat -tulnp | grep 5173(oder8080) Diese Befehle listen die Prozess-ID (PID) und den Namen des Prozesses auf, der den angegebenen Port verwendet.
- Windows: Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator und verwenden Sie
netstatoderGet-NetTCPConnectionnetstat -ano | findstr :5173(oder:8080) (Eingabeaufforderung)Get-Process -Id (Get-NetTCPConnection -LocalPort 5173).OwningProcess(PowerShell) Diese Befehle zeigen ebenfalls die PID des Prozesses an, der den Port verwendet.
- Linux/macOS: Öffnen Sie ein neues Terminal und verwenden Sie die Befehle
-
Konfliktierenden Prozess beenden: Sobald Sie die Prozess-ID (PID) identifiziert haben, können Sie die Anwendung, die diesen Port verwendet, beenden. Seien Sie vorsichtig beim Beenden von Prozessen, insbesondere wenn Sie sich nicht sicher sind, um was es sich handelt.
- Linux/macOS: Verwenden Sie den Befehl
kill:kill <PID>(ersetzen Sie<PID>durch die tatsächliche Prozess-ID). Wenn der Prozess nicht mitkillbeendet wird, können Siekill -9 <PID>(erzwungenes Beenden) verwenden, aber seien Sie vorsichtig damit. - Windows: Verwenden Sie den Befehl
taskkillin der Eingabeaufforderung oder PowerShell als Administrator:taskkill /PID <PID> /F(ersetzen Sie<PID>durch die Prozess-ID). Das Flag/Ferzwingt die Beendigung.
- Linux/macOS: Verwenden Sie den Befehl
-
Alternativ Ports ändern (Fortgeschritten)
- Wenn Sie den konfliktierenden Prozess nicht beenden können (z. B. es handelt sich um einen Systemdienst, den Sie benötigen), können Sie Open WebUI so konfigurieren, dass es andere Ports für das Frontend und/oder Backend verwendet. Dies beinhaltet normalerweise die Änderung von Konfigurationsdateien.
- Frontend-Port: Überprüfen Sie die Frontend-Dokumentation oder Konfigurationsdateien (oft in
vite.config.jsoder ähnlich), wie der Entwicklungs-Server-Port geändert werden kann. Möglicherweise müssen Sie auch die Datei.envanpassen, wenn das Frontend Umgebungsvariablen für den Port verwendet. - Backend-Port: Untersuchen Sie das Skript
dev.shoder die Backend-Konfigurationsdateien, um zu sehen, wie der Backend-Port festgelegt ist. Möglicherweise müssen Sie den Startbefehl oder eine Konfigurationsdatei ändern, um den Backend-Port zu ändern. Wenn Sie den Backend-Port ändern, müssen Sie wahrscheinlich die.env-Datei des Frontends aktualisieren, um auf die neue Backend-URL zu verweisen.
- Frontend-Port: Überprüfen Sie die Frontend-Dokumentation oder Konfigurationsdateien (oft in
- Wenn Sie den konfliktierenden Prozess nicht beenden können (z. B. es handelt sich um einen Systemdienst, den Sie benötigen), können Sie Open WebUI so konfigurieren, dass es andere Ports für das Frontend und/oder Backend verwendet. Dies beinhaltet normalerweise die Änderung von Konfigurationsdateien.
🔄 Hot Reload funktioniert nicht
Hot Reload (oder Hot Module Replacement - HMR) ist eine fantastische Entwicklungsfunktion, die Ihren Browser automatisch aktualisiert, wenn Sie Änderungen am Code vornehmen. Wenn es nicht funktioniert, kann dies Ihren Entwicklungs-Workflow erheblich verlangsamen.
Fehlerbehebungsschritte
- Entwicklungsserver laufen lassen: Überprüfen Sie nochmals, ob sowohl
npm run dev(Frontend) als auchsh dev.sh(Backend) in ihren jeweiligen Terminals laufen und keine Fehler aufgetreten sind. Suchen Sie im Terminal-Output nach Meldungen, die darauf hinweisen, dass sie laufen und im "Watch-Modus" oder "Entwicklungsmodus" sind. Wenn Fehler vorliegen, beheben Sie diese zuerst. - Auf Watch Mode/HMR-Meldungen prüfen: Wenn die Entwicklungsserver starten, sollten sie normalerweise Meldungen im Terminal ausgeben, die darauf hinweisen, dass Hot Reload oder Watch Mode aktiviert ist. Suchen Sie nach Formulierungen wie "HMR enabled", "watching for file changes" oder ähnlichem. Wenn Sie diese Meldungen nicht sehen, liegt möglicherweise ein Konfigurationsproblem vor.
- Browser-Cache: Manchmal kann der Cache Ihres Browsers verhindern, dass Sie die neuesten Änderungen sehen, selbst wenn Hot Reload funktioniert. Versuchen Sie einen Hard Refresh in Ihrem Browser
- Windows/Linux: Strg+Umschalt+R
- macOS: Cmd+Umschalt+R
- Alternativ können Sie versuchen, den Cache Ihres Browsers zu löschen oder das Frontend in einem privaten/Inkognito-Browserfenster zu öffnen.
- Abhängigkeitsprobleme (Frontend): Veraltete oder beschädigte Frontend-Abhängigkeiten können manchmal Hot Reloading beeinträchtigen. Versuchen Sie, Ihre Frontend-Abhängigkeiten neu zu installieren
-
Führen Sie in Ihrem Frontend-Terminal aus
rm -rf node_modules && npm installDieser Befehl löscht das Verzeichnis
node_modules(wo Abhängigkeiten gespeichert sind) und installiert sie dann von Grund auf neu. Dies kann Probleme beheben, die durch beschädigte oder veraltete Pakete verursacht werden.
-
- Neustart des Backends erforderlich (für Backend-Änderungen): Hot Reload funktioniert normalerweise am besten für Frontend-Codeänderungen (UI, Styling, Komponenten). Für signifikante Backend-Codeänderungen (insbesondere Änderungen an der Serverlogik, API-Endpunkten oder Abhängigkeiten) müssen Sie möglicherweise den Backend-Server manuell neu starten (indem Sie
sh dev.shin Ihrem Backend-Terminal stoppen und erneut ausführen). Hot Reload für Backend-Änderungen ist oft weniger zuverlässig oder in vielen Backend-Entwicklungs-Setups nicht automatisch konfiguriert. - IDE/Editor-Probleme: In seltenen Fällen können Probleme mit Ihrer IDE oder Ihrem Code-Editor dazu führen, dass Dateiänderungen von den Entwicklungsservern nicht richtig erkannt werden. Versuchen Sie, Ihre IDE neu zu starten oder sicherzustellen, dass Dateien korrekt gespeichert werden.
- Konfigurationsprobleme (Fortgeschritten): Wenn keiner der oben genannten Schritte funktioniert, liegt möglicherweise ein komplexeres Konfigurationsproblem mit dem Frontend- oder Backend-Entwicklungsserver-Setup vor. Konsultieren Sie die Projektdokumentation, Konfigurationsdateien (z. B.
vite.config.jsfür das Frontend, Backend-Serverkonfigurationsdateien) oder suchen Sie Hilfe in der Open WebUI-Community oder bei den Maintainern.
Beitragen zu Open WebUI
Wir freuen uns sehr über Ihre Beiträge zu Open WebUI! Ihre Hilfe ist wertvoll, um dieses Projekt noch besser zu machen. Hier ist eine Kurzanleitung für einen reibungslosen und effektiven Beitragsworkflow
-
Projektstruktur verstehen: Nehmen Sie sich Zeit, sich mit der Projektverzeichnisstruktur vertraut zu machen, insbesondere mit den Ordnern
frontendundbackend. Schauen Sie sich den Code, die Konfigurationsdateien und die Dokumentation an, um ein Gefühl dafür zu bekommen, wie die Dinge organisiert sind. -
Mit kleinen Beiträgen beginnen: Wenn Sie neu im Projekt sind, sollten Sie mit kleineren Beiträgen beginnen, wie z. B.
- Verbesserung der Dokumentation: Tippfehler korrigieren, Erklärungen verdeutlichen, mehr Details zur Dokumentation hinzufügen.
- Fehlerbehebungen: Gemeldete Fehler oder Probleme beheben.
- Kleine UI-Verbesserungen: Styling verbessern, kleinere Layout-Probleme beheben. Diese kleineren Beiträge sind eine großartige Möglichkeit, sich mit dem Code und dem Beitragsprozess vertraut zu machen.
-
Größere Änderungen zuerst besprechen: Wenn Sie planen, eine bedeutende neue Funktion zu implementieren oder wesentliche Änderungen vorzunehmen, wird dringend empfohlen, Ihre Ideen zuerst mit den Projekt-Maintainern oder der Community zu besprechen. Sie können dies tun, indem Sie
- Ein Issue im GitHub-Repository eröffnen, um Ihre Funktion oder Änderung vorzuschlagen.
- Den Open WebUI-Community-Kanälen beitreten (falls verfügbar, prüfen Sie die README-Datei oder die Website des Projekts auf Links) und Ihre Ideen dort besprechen. Dies hilft sicherzustellen, dass Ihr Beitrag mit den Projektzielen übereinstimmt und vermeidet verschwendete Mühe für Funktionen, die möglicherweise nicht gemergt werden.
-
Einen separaten Branch für Ihre Arbeit erstellen: Niemals direkt in den
dev-Branch committen. Erstellen Sie immer einen neuen Branch für jede Funktion oder Fehlerbehebung, an der Sie arbeiten. Dies hält Ihre Änderungen isoliert und erleichtert die Verwaltung und Einreichung von Pull-Requests.-
Um einen neuen Branch (z. B. mit dem Namen
mein-feature-branch) basierend auf demdev-Branch zu erstellengit checkout dev
git pull origin dev # Ensure your local dev branch is up-to-date
git checkout -b my-feature-branch
-
-
Änderungen häufig committen und klare Commit-Nachrichten schreiben: Machen Sie kleine, logische Commits, während Sie Funktionen entwickeln oder Fehler beheben. Schreiben Sie klare und prägnante Commit-Nachrichten, die erklären, welche Änderungen Sie vorgenommen haben und warum. Gute Commit-Nachrichten erleichtern das Verständnis der Änderungshistorie und sind für die Zusammenarbeit unerlässlich.
- Beispiel für eine gute Commit-Nachricht:
Fix: Tippfehler in der Dokumentation für die Backend-Einrichtung korrigiert - Beispiel für eine gute Commit-Nachricht:
Feat: Profilseite des Benutzers mit Anzeige grundlegender Informationen implementiert
- Beispiel für eine gute Commit-Nachricht:
-
Regelmäßig mit dem
dev-Branch synchronisieren: Während Sie an Ihrem Branch arbeiten, synchronisieren Sie Ihren Branch regelmäßig mit den neuesten Änderungen vomdev-Branch, um Merge-Konflikte später zu minimierengit checkout dev
git pull origin dev
git checkout my-feature-branch
git merge devLösen Sie alle Merge-Konflikte, die während des
git merge-Schritts auftreten. -
Tests ausführen (falls verfügbar) vor dem Pushen: Obwohl dieser Leitfaden keine spezifischen Testverfahren für Open WebUI detailliert beschreibt, ist es eine gute Praxis, alle verfügbaren Tests auszuführen, bevor Sie Ihren Code pushen. Überprüfen Sie die Projektdokumentation oder
package.json(für Frontend) und Backend-Dateien auf testbezogene Befehle (z. B.npm run test,pytestusw.). Das Ausführen von Tests hilft sicherzustellen, dass Ihre Änderungen keine Regressionen eingeführt oder bestehende Funktionalität beschädigt haben. -
Pull Request (PR) einreichen: Sobald Sie Ihre Arbeit abgeschlossen, getestet (falls zutreffend) und bereit sind, Ihre Änderungen beizusteuern, reichen Sie einen Pull Request (PR) an den
dev-Branch des Open WebUI-Repositorys auf GitHub ein.- Gehen Sie zum Open WebUI-Repository auf GitHub.
- Navigieren Sie zu Ihrem Branch.
- Klicken Sie auf die Schaltfläche "Contribute" oder "Pull Request" (normalerweise grün).
- Füllen Sie das PR-Formular aus
- Titel: Geben Sie Ihrem PR einen klaren und aussagekräftigen Titel, der Ihre Änderungen zusammenfasst (z. B. "Fix: Problem mit der Validierung des Login-Formulars behoben").
- Beschreibung: Geben Sie eine detailliertere Beschreibung Ihrer Änderungen, des Problems, das Sie lösen (falls zutreffend), und relevanter Kontext an. Verlinken Sie alle zugehörigen Issues, falls vorhanden.
- Reichen Sie den PR ein.
Projekt-Maintainer werden Ihren Pull Request überprüfen, Feedback geben und möglicherweise Ihre Änderungen mergen. Reagieren Sie auf Feedback und seien Sie bereit, Überarbeitungen vorzunehmen, wenn dies gewünscht wird.
Vielen Dank, dass Sie diesen umfassenden Leitfaden gelesen haben und für Ihr Interesse, zu Open WebUI beizutragen! Wir freuen uns darauf, Ihre Beiträge zu sehen und Ihnen zu helfen, Teil der Open WebUI-Community zu werden! 🎉 Viel Spaß beim Codieren!