🧪 Guide till utvecklingsgrenen
Grenen dev innehåller nya förbättringar och experimentella funktioner före officiell release.
dev är experimentell och kan innehålla fel, ofullständiga funktioner och inkompatibla ändringar. Använd den bara om du accepterar instabilitet och vill hjälpa Libre WebUI.
🎯 Vad är dev-grenen?
Nya funktioner testas i dev innan de slås ihop till stabila main: nya funktioner, felrättningar, UI-experiment och prestandaoptimeringar.
🚀 Använd dev-grenen
Docker (rekommenderas)
Utvecklings-Compose monterar värdens Docker-socket så Work fungerar. På Linux anger du först DOCKER_GID i .env.
Med extern 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
Enkel 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
Från källkod
# 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 kan bli klart innan backend hunnit slutföra sina uppstartskontroller. För en lokal backend väntar utvecklingsproxyn upp till 10 sekunder på dess lyssnare innan en API-begäran vidarebefordras. Varje begäran vidarebefordras en gång, även skrivningar; misslyckade begäranden spelas inte upp igen. Om backend förblir otillgänglig svarar proxyn med HTTP 503 och ett tips om att försöka igen. Statiska frontendfiler är fortsatt tillgängliga under väntetiden.
Chatten fortsätter att återansluta efter tillfälliga backendavbrott, med fördröjningar på högst 30 sekunder. En lyckad anslutning nollställer fördröjningen och utloggning avbryter väntande försök. Autentiseringsfel stoppar automatisk återanslutning.
Testa Work
Starta Docker, verifiera docker info som backendanvändaren och att uppgiftscontainrar syns i docker ps, kör npm run dev, logga in som administratör och välj en verktygskapabel modell i Work.
npm run test:work
Testerna verifierar Docker-policy, sökvägsgränser, livscykel, kapacitet och verktygsadaptrar för OpenAI, Anthropic och Gemini. Se Work: isolerade arbetsytor.
🔄 Håll dig uppdaterad
# 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
🐛 Hittat ett fel?
Före rapportering
Sök först bland GitHub Issues, prova stabila main och säkerställ att felet kan upprepas.
Rapportera fel
Rapportera ett fel på GitHub och ta med:
**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]
Hämta commit-hash
# Find your current dev branch commit
git rev-parse HEAD
# Or get a short version
git rev-parse --short HEAD
🏆 Bidrag och erkännande
Erkännande för bidragsgivare
Bidragsgivare listas i CONTRIBUTORS.md, nämns i release notes, får medförfattarskap i commits och tack i annonser. Nuvarande gemenskap omfattar rob, jm och fler.
Aktuella bidragsgivare
Se den fullständiga listan i CONTRIBUTORS.md.
Vill du bidra med kod?
För kod: forka repositoryt, skapa en gren från dev med git checkout -b feature/amazing-feature dev, gör ändringen och öppna en pull request mot dev. Se bidragsguiden och gemenskapsstadgan.
Pull request-kontroller
Varje pull request, även en staplad pull request mot en mellanliggande
funktions- eller rättningsgren, kör arbetsflödet Format & Lint. Dess
oberoende jobb kontrollerar formatering, lint för frontend och backend,
TypeScript-typer, paket- och regressionstester samt Playwrights
webbläsarsvit. Chromium kör hela webbläsarsviten. WebKit och Firefox kör
dessutom de kritiska flödena för autentisering, strömning, dialogrutor, flikar,
automatiseringar, lagring, Work och taluppspelning. Varje motor körs i ett eget
CI-jobb, och misslyckade körningar laddar upp separata testresultat.
Den testade npm-tarballen installeras i en ny konsumentkatalog på Linux, macOS
och Windows, med både Node 22.22 och Node 24. Kontrollerna installerar riktiga
produktionsberoenden utan att låna utcheckningens node_modules och verifierar
sedan att CLI:t startar, att tjänsten blir redo, att frontend serveras och att
data finns kvar efter en omstart. Kör samma kontroll lokalt efter
npm run build med npm run test:package-install. Ange en tarball eller en
katalog som innehåller en tarball för att testa en viss artefakt. En ren
installation kräver åtkomst till registret och plattformens vanliga
förutsättningar för att bygga inbyggda moduler när ett förbyggt beroende inte
finns tillgängligt.
Ett separat Work Computer-jobb bygger GUI-avbilden från körmiljöns låsta bas och
kör det verkliga interaktionsregressionstestet. TEST_WORK_COMPUTER=1 gör att
en saknad Docker-daemon eller avbild får kontrollen att misslyckas i stället för
att hoppas över. För att återskapa det lokalt anger du den flaggan och
WORK_COMPUTER_TEST_IMAGE till en separat byggd testavbild och kör sedan
npm run test:work-computer. Utan obligatoriskt läge rapporterar lokala
körningar fortfarande en överhoppning när den valfria GUI-fixturen saknas.
Matrisen lägger till kontroller för de ytor som stöds. Den aktiverar inte kombinationer som saknar stöd. Nodlokala CLI-autentiseringsuppgifter är fortfarande inte tillgängliga för externa teamarbetare.
CodeQL täcker JavaScript/TypeScript, Python och arbetsflödeskod i varje pull
request. De körbara Python-leverantörsservrarna under examples/ klassas
uttryckligen som kod i .gitattributes, så att GitHubs språkidentifiering tar
med dem. Den separata hanterade konfigurationen Code Quality bör omfatta
både JavaScript/TypeScript och Python. Om historiska fynd finns kvar efter en
rättning kontrollerar du den analyserade revisionen och språktäckningen och
uppdaterar den aktuella analysen när ändringen har publicerats. Avfärda inte
giltiga fynd och ändra inte korrekt asynkront beteende bara för att förbättra
ett visat betyg.
Arbetsflödet Electron Dev Build paketerar också artefakter för macOS, Windows
och Linux. Byggen av pull requests för macOS behåller projektets ad hoc-signatur
utan autentiseringsuppgifter, så att det paketerade programmet kan verifieras
före uppladdning. Pull request-arbetsflödet får inga uppgifter för Developer ID
eller notarisering.
Arbetsflödet Docker Build Test and Push bygger avbilder för både amd64 och
arm64 för varje pull request, även staplade pull requests mot mellanliggande
grenar. Byggen av pull requests loggar inte in i något containerregister,
pushar inga avbildssammandrag och publicerar inget multiarkitekturmanifest.
Kör samma kontroller på applikationsnivå lokalt innan du öppnar en pull request:
npm run format:check
npm run lint
npm run test:package
npm run test:e2e
⚠️ Viktigt
Datasäkerhet
-
Säkerhetskopiera före byte till
dev. -
Work-filer ligger i separata
libre-work-*-volymer och måste säkerhetskopieras separat. -
Använd en separat volym:
# Use different volume name for devdocker run -d -p 3000:3001 -v libre-webui-dev:/app/backend/data --name libre-webui-dev ghcr.io/libre-webui/libre-webui:dev
Möjliga problem
Inkompatibla ändringar kan kräva konfiguration, funktioner kan vara ofullständiga, prestanda varierar och UI kan ändras.
När du bör använda stabil version
Byt tillbaka till main om du behöver stabilitet:
# 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
🌟 Delta
Redo att forma Libre WebUI:s framtid? 🚀
Dina tester, synpunkter och bidrag i dev förbättrar upplevelsen för alla.