Μετάβαση στο κύριο περιεχόμενο

🧪 Οδηγός κλάδου ανάπτυξης

Ο κλάδος dev περιέχει τις νεότερες βελτιώσεις και πειραματικές λειτουργίες πριν την επίσημη έκδοση.

Πειραματικό λογισμικό

Ο dev είναι πειραματικός και μπορεί να έχει σφάλματα, ημιτελείς λειτουργίες ή breaking changes. Χρησιμοποιήστε τον μόνο αν αποδέχεστε αστάθεια και θέλετε να βοηθήσετε.

🎯 Τι είναι ο κλάδος dev;​

Νέες λειτουργίες δοκιμάζονται στο dev πριν συγχωνευθούν στο σταθερό main: λειτουργίες, fixes, UI experiments και βελτιστοποιήσεις.

🚀 Χρήση κλάδου dev​

Docker (συνιστάται)​

Τα development Compose files συνδέουν Docker socket ώστε το Work να λειτουργεί. Σε Linux ορίστε πρώτα DOCKER_GID στο .env.

Με εξωτερικό Ollama:

# Clone the repository
git clone https://github.com/libre-webui/libre-webui.git
cd libre-webui

# Switch to dev branch
git checkout dev

# Start the dev image with external Ollama
docker compose -f docker-compose.dev.external-ollama.yml up -d

Απλό Docker:

# Use the dev branch image
docker run -d -p 3000:3001 -v libre-webui:/app/backend/data --name libre-webui-dev --restart always ghcr.io/libre-webui/libre-webui:dev

Από source​

# Clone and switch to dev branch
git clone https://github.com/libre-webui/libre-webui.git
cd libre-webui
git checkout dev

# Install dependencies
npm install

# Start development server
npm run dev

Το Vite μπορεί να είναι έτοιμο πριν ολοκληρώσει ο backend τους ελέγχους εκκίνησης. Για τοπικό backend, το development proxy περιμένει έως 10 δευτερόλεπτα τον listener πριν προωθήσει ένα αίτημα API. Προωθεί κάθε αίτημα μία φορά, συμπεριλαμβανομένων των εγγραφών· δεν επαναλαμβάνει αποτυχημένα αιτήματα. Αν ο backend παραμείνει μη διαθέσιμος, το proxy επιστρέφει HTTP 503 με υπόδειξη επανάληψης. Τα στατικά αρχεία του frontend παραμένουν διαθέσιμα κατά την αναμονή.

Το chat επανασυνδέεται μετά από παροδικές διακοπές του backend, με καθυστερήσεις έως 30 δευτερόλεπτα. Μια επιτυχής σύνδεση μηδενίζει την καθυστέρηση· η αποσύνδεση ακυρώνει τις εκκρεμείς προσπάθειες. Τα σφάλματα ελέγχου ταυτότητας σταματούν την αυτόματη επανασύνδεση.

Δοκιμή Work​

Ξεκινήστε Docker, ελέγξτε docker info και docker ps ως χρήστης backend, τρέξτε npm run dev, συνδεθείτε ως admin και επιλέξτε μοντέλο με εργαλεία στο Work.

npm run test:work

Οι δοκιμές επαληθεύουν Docker policy, path containment, lifecycle, capacity και adapters OpenAI, Anthropic, Gemini. Δείτε Work.

🔄 Ενημέρωση​

# Update your local dev branch
git pull origin dev

# Refresh the dev Compose stack
docker compose -f docker-compose.dev.external-ollama.yml pull
docker compose -f docker-compose.dev.external-ollama.yml up -d

# Or restart simple Docker
docker pull ghcr.io/libre-webui/libre-webui:dev
docker stop libre-webui-dev && docker rm libre-webui-dev
docker run -d -p 3000:3001 -v libre-webui:/app/backend/data --name libre-webui-dev --restart always ghcr.io/libre-webui/libre-webui:dev

🐛 Βρήκατε σφάλμα;​

Πριν την αναφορά​

Ψάξτε GitHub Issues, δοκιμάστε το σταθερό main και επιβεβαιώστε επανάληψη.

Αναφορά σφάλματος​

🐛 Report a Bug on GitHub με:

**Environment:**

- Branch: dev
- Version: [git commit hash or date]
- OS: [Windows/macOS/Linux]
- Browser: [Chrome/Firefox/Safari version]
- Setup: [Docker/Source/etc.]
- Docker: [version and whether `docker info` succeeds, for Work issues]
- Work model/provider: [exact route, when applicable]

**Bug Description:**
Clear description of what went wrong

**Steps to Reproduce:**

1. Go to...
2. Click on...
3. See error...

**Expected Behavior:**
What should have happened

**Actual Behavior:**
What actually happened

**Screenshots/Logs:**
[If applicable, add screenshots or error logs]

**Work Activity:**
[Relevant tool call/result or preview output, with secrets removed]

Git commit hash​

# Find your current dev branch commit
git rev-parse HEAD

# Or get a short version
git rev-parse --short HEAD

🏆 Συνεισφορά και αναγνώριση​

Αναγνώριση συνεισφερόντων​

Οι συνεισφέροντες καταγράφονται στο CONTRIBUTORS.md, αναφέρονται σε release notes και commits.

Τρέχοντες συνεισφέροντες​

Περιλαμβάνονται rob, jm και άλλοι.

Θέλετε να συνεισφέρετε κώδικα;​

Κάντε fork, δημιουργήστε κλάδο με git checkout -b feature/amazing-feature dev, κάντε αλλαγή και PR προς dev. Δείτε οδηγίες και χάρτη κοινότητας.

Έλεγχοι pull request​

Κάθε pull request, ακόμη και ένα stacked pull request προς ενδιάμεσο branch λειτουργίας ή διόρθωσης, εκτελεί το workflow Format & Lint. Οι ανεξάρτητες εργασίες του ελέγχουν τη μορφοποίηση, το linting του frontend και του backend, τους τύπους TypeScript, τα tests πακέτου και παλινδρόμησης και τη σουίτα Playwright για browser. Το Chromium εκτελεί ολόκληρη τη σουίτα browser. Το WebKit και το Firefox εκτελούν επιπλέον τις κρίσιμες ροές ταυτοποίησης, streaming, διαλόγων, καρτελών, αυτοματισμών, αποθήκευσης, Work και αναπαραγωγής ομιλίας. Κάθε μηχανή τρέχει στη δική της εργασία CI και οι αποτυχημένες εκτελέσεις ανεβάζουν ξεχωριστά αποτελέσματα tests.

Το tarball npm που ελέγχθηκε εγκαθίσταται σε νέο κατάλογο καταναλωτή σε Linux, macOS και Windows, με Node 22.22 και με Node 24. Αυτοί οι έλεγχοι εγκαθιστούν πραγματικές εξαρτήσεις παραγωγής χωρίς να δανείζονται το node_modules του checkout και στη συνέχεια επαληθεύουν την εκκίνηση του CLI, την ετοιμότητα, την εξυπηρέτηση του frontend και τα δεδομένα μετά από επανεκκίνηση. Εκτελέστε τον ίδιο έλεγχο τοπικά μετά το npm run build με npm run test:package-install· δώστε ένα tarball ή έναν κατάλογο που περιέχει ένα tarball για να ελέγξετε συγκεκριμένο artifact. Μια καθαρή εγκατάσταση χρειάζεται πρόσβαση στο registry και τις συνήθεις προϋποθέσεις της πλατφόρμας για build εγγενών modules, όταν δεν υπάρχει διαθέσιμη προκατασκευασμένη εξάρτηση.

Μια ξεχωριστή εργασία Work Computer χτίζει την εικόνα GUI από την καρφιτσωμένη βάση του runtime και εκτελεί την πραγματική παλινδρόμηση αλληλεπίδρασης. Το TEST_WORK_COMPUTER=1 κάνει τον έλεγχο να αποτυγχάνει, αντί να παραλείπεται, όταν λείπει ο daemon του Docker ή η εικόνα. Για τοπική αναπαραγωγή, ορίστε αυτή τη σημαία και το WORK_COMPUTER_TEST_IMAGE σε μια ξεχωριστά χτισμένη εικόνα ελέγχου και μετά εκτελέστε npm run test:work-computer. Χωρίς την υποχρεωτική λειτουργία, οι τοπικές εκτελέσεις εξακολουθούν να αναφέρουν παράλειψη όταν λείπει το προαιρετικό GUI fixture.

Αυτός ο πίνακας προσθέτει ελέγχους για τις υποστηριζόμενες επιφάνειες· δεν ενεργοποιεί μη υποστηριζόμενους συνδυασμούς. Τα διαπιστευτήρια CLI που είναι τοπικά σε κάθε κόμβο παραμένουν μη διαθέσιμα στους εξωτερικούς workers της ομάδας.

Το CodeQL καλύπτει κώδικα JavaScript/TypeScript, Python και workflows σε κάθε pull request. Οι εκτελέσιμοι servers παρόχων σε Python κάτω από το examples/ έχουν χαρακτηριστεί ρητά ως κώδικας στο .gitattributes, ώστε να τους περιλαμβάνει η ανίχνευση γλωσσών του GitHub. Η ξεχωριστή διαχειριζόμενη ρύθμιση Code Quality πρέπει να περιλαμβάνει και JavaScript/TypeScript και Python. Αν μετά από μια διόρθωση παραμένουν ιστορικά ευρήματα, επαληθεύστε την αναλυμένη αναθεώρηση και την κάλυψη γλωσσών και ανανεώστε την αντίστοιχη ανάλυση αφού δημοσιεύσετε την αλλαγή. Μην απορρίπτετε έγκυρα ευρήματα και μην αλλάζετε σωστή ασύγχρονη συμπεριφορά μόνο για να βελτιώσετε έναν βαθμό που εμφανίζεται.

Το workflow Electron Dev Build πακετάρει επίσης artifacts για macOS, Windows και Linux. Τα builds pull request για macOS διατηρούν την ad hoc υπογραφή του έργου χωρίς διαπιστευτήρια, ώστε η πακεταρισμένη εφαρμογή να μπορεί να επαληθευτεί πριν από το ανέβασμα. Το workflow pull request δεν λαμβάνει διαπιστευτήρια Developer ID ή notarization.

Το workflow Docker Build Test and Push χτίζει εικόνες amd64 και arm64 για κάθε pull request, ακόμη και για stacked pull requests προς ενδιάμεσα branches. Τα builds pull request δεν συνδέονται σε registry κοντέινερ, δεν κάνουν push digests εικόνων και δεν δημοσιεύουν manifest πολλαπλών αρχιτεκτονικών.

Εκτελέστε τους ίδιους ελέγχους σε επίπεδο εφαρμογής τοπικά πριν ανοίξετε pull request:

npm run format:check
npm run lint
npm run test:package
npm run test:e2e

⚠️ Σημαντικές σημειώσεις​

Ασφάλεια δεδομένων​

  • Κρατήστε backup πριν το dev.

  • Τα Work files είναι σε ξεχωριστά libre-work-* volumes.

  • Χρησιμοποιήστε ξεχωριστό volume:

    # Use different volume name for dev
    docker run -d -p 3000:3001 -v libre-webui-dev:/app/backend/data --name libre-webui-dev ghcr.io/libre-webui/libre-webui:dev

Πιθανά προβλήματα​

Breaking changes μπορεί να απαιτούν config, λειτουργίες να είναι ημιτελείς, απόδοση και UI να αλλάζουν.

Πότε να χρησιμοποιείτε stable​

Επιστρέψτε στο main όταν χρειάζεστε αξιοπιστία:

# Switch back to stable
git checkout main
docker compose -f docker-compose.external-ollama.yml pull
docker compose -f docker-compose.external-ollama.yml up -d

🌟 Συμμετοχή στην κοινότητα​


Έτοιμοι να διαμορφώσετε το μέλλον του Libre WebUI; 🚀

Οι δοκιμές, η ανατροφοδότηση και η συνεισφορά σας βελτιώνουν την εμπειρία όλων.