Hoppa till huvudinnehåll

🧪 Guide till utvecklingsgrenen

Grenen dev innehåller nya förbättringar och experimentella funktioner före officiell release.

Experimentell programvara

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 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

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.