Hop til hovedindhold

🧪 Vejledning til udviklingsgrenen

Vil du prøve de nyeste funktioner, før de udgives officielt? Grenen dev indeholder de nyeste forbedringer og eksperimentelle funktioner, som med tiden kommer med i den officielle udgivelse.

Eksperimentel software

Grenen dev er eksperimentel og kan indeholde fejl, ufærdige funktioner eller ændringer, der bryder kompatibiliteten. Brug den kun, hvis du kan leve med mulig ustabilitet og gerne vil hjælpe med at forbedre Libre WebUI.

🎯 Hvad er dev-grenen?​

Udviklingsgrenen (dev) er stedet, hvor nye funktioner testes, før de flettes ind i den stabile gren main. Den indeholder:

  • De nyeste funktioner, som endnu ikke er med i de stabile udgivelser
  • Fejlrettelser, der er under test
  • Eksperimentelle forbedringer af brugerfladen og funktionaliteten
  • Ydelsesoptimeringer, der er under udvikling

🚀 Sådan bruger du dev-grenen​

Docker-opsætning (anbefales)​

Udviklingens Compose-filer monterer værtens Docker-socket, så Work fungerer som standard, når Docker er tilgængelig. Opgavecontainere kører på værtens daemon og vises i docker ps. På Linux skal du først angive DOCKER_GID i .env.

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

Simpel 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

Fra kildekode​

# 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 blive klar, før backend er færdig med sine opstartstjek. For en lokal backend venter udviklingsproxyen op til 10 sekunder på dens lytter, før den videresender en API-anmodning. Den videresender hver anmodning én gang, også skrivninger, og gentager ikke mislykkede anmodninger. Hvis backend fortsat ikke er tilgængelig, returnerer proxyen HTTP 503 med et tip om at prøve igen. Statiske frontendfiler er fortsat tilgængelige under ventetiden.

Chatten bliver ved med at genoprette forbindelsen efter midlertidige backendudfald, med forsinkelser på højst 30 sekunder. En vellykket forbindelse nulstiller forsinkelsen, og når du logger ud, annulleres ventende forsøg. Godkendelsesfejl stopper den automatiske genforbindelse.

Test af Work​

  1. Start Docker, og kontrollér, at docker info lykkes som den samme bruger, der kører backend.
  2. Start Libre WebUI fra kildekoden med npm run dev.
  3. Log ind som administrator.
  4. Vælg Work, og brug en Ollama-, Ollama Cloud- eller pluginbaseret model, der kan bruge værktøjer.

Kør de målrettede backendtest for udbydere og containerpolitik med:

npm run test:work

Testene validerer den genererede Docker-politik, afgrænsningen af stier, livscyklus- og kapacitetsadfærd samt værktøjsadaptere til OpenAI-kompatible API'er, Anthropic og Gemini. Se Work: isolerede arbejdsområder for hele runtimegrænsen.

🔄 Hold dig opdateret​

Dev-grenen opdateres ofte. Sådan henter du de seneste ændringer:

# 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

🐛 Har du fundet en fejl? Hjælp os med at blive bedre!​

Dine fejlrapporter er utroligt værdifulde! Sådan rapporterer du problemer effektivt:

Før du rapporterer​

  1. Tjek eksisterende issues: Søg i GitHub Issues for at undgå dubletter
  2. Prøv den stabile version: Bekræft, at fejlen kun findes i dev (ikke i grenen main)
  3. Genskab fejlen konsekvent: Kan du få fejlen til at ske igen?

Sådan rapporterer du fejl​

🐛 Rapportér en fejl på GitHub

Medtag disse oplysninger:

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

Find din Git-commit-hash​

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

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

🏆 Bidrag og anerkendelse​

Når du bruger dev-grenen, er du en del af vores testfællesskab! Bidragydere anerkendes på flere måder:

Anerkendelse af bidragydere​

  • Nævnt i CONTRIBUTORS.md
  • Nævnt i udgivelsesnoterne for væsentlige bidrag
  • Medforfatterskab i commitbeskeder
  • Særlig tak i projektets meddelelser

Nuværende bidragydere​

Vores fantastiske fællesskab omfatter:

  • rob - Projektansvarlig
  • jm - Forbedring af netværksadgang
  • Og flere bidragydere! Se den fulde liste

Vil du bidrage med kode?​

  1. Fork repositoriet
  2. Opret en funktionsgren fra dev: git checkout -b feature/amazing-feature dev
  3. Foretag dine ændringer
  4. Send en pull request mod grenen dev

Se vores retningslinjer for bidrag for en detaljeret vejledning og vores fællesskabscharter for projektets etiske retningslinjer og styringsmodel.

Pull request-kontroller​

Hver pull request, også en stablet pull request mod en mellemliggende funktions- eller rettelsesgren, kører arbejdsgangen Format & Lint. Dens uafhængige job kontrollerer formatering, linting af frontend og backend, TypeScript-typer, pakke- og regressionstest samt Playwrights browsersuite. Chromium kører hele browsersuiten. WebKit og Firefox kører desuden de kritiske forløb for godkendelse, streaming, dialogbokse, faner, automatiseringer, lagring, Work og taleafspilning. Hver motor kører i sit eget CI-job, og mislykkede kørsler uploader separate testresultater.

Den testede npm-tarball installeres i en ny forbrugermappe på Linux, macOS og Windows med både Node 22.22 og Node 24. Kontrollerne installerer rigtige produktionsafhængigheder uden at låne udtjekningens node_modules og verificerer derefter, at CLI'en starter, at tjenesten bliver klar, at frontend serveres, og at data bevares efter en genstart. Kør den samme kontrol lokalt efter npm run build med npm run test:package-install. Angiv en tarball eller en mappe, der indeholder én tarball, for at teste en bestemt artefakt. En ren installation kræver adgang til registret og platformens normale forudsætninger for at bygge native moduler, når en forudbygget afhængighed ikke er tilgængelig.

Et separat Work Computer-job bygger GUI-imaget fra runtimens fastlåste base og kører den reelle regressionstest af interaktion. TEST_WORK_COMPUTER=1 får en manglende Docker-daemon eller et manglende image til at få kontrollen til at fejle i stedet for at springe den over. Hvis du vil genskabe det lokalt, skal du angive det flag og WORK_COMPUTER_TEST_IMAGE til et separat bygget testimage og derefter køre npm run test:work-computer. Uden påkrævet tilstand rapporterer lokale kørsler stadig et spring over, når den valgfrie GUI-fixture mangler.

Matrixen tilføjer kontroller for de understøttede overflader. Den aktiverer ikke kombinationer uden understøttelse. Nodelokale CLI-legitimationsoplysninger er fortsat ikke tilgængelige for eksterne teamworkere.

CodeQL dækker JavaScript/TypeScript, Python og arbejdsgangskode i hver pull request. De eksekverbare Python-udbyderservere under examples/ er udtrykkeligt klassificeret som kode i .gitattributes, så GitHubs sprogregistrering tager dem med. Den separate administrerede opsætning Code Quality bør omfatte både JavaScript/TypeScript og Python. Hvis der stadig er historiske fund efter en rettelse, skal du kontrollere den analyserede revision og sprogdækningen og opdatere den relevante analyse, når ændringen er publiceret. Afvis ikke gyldige fund, og ændr ikke korrekt asynkron adfærd blot for at forbedre den viste karakter.

Arbejdsgangen Electron Dev Build pakker også artefakter til macOS, Windows og Linux. Pull request-byg til macOS beholder projektets ad hoc-signatur uden legitimationsoplysninger, så det pakkede program kan verificeres før upload. Pull request-arbejdsgangen modtager ikke legitimationsoplysninger til Developer ID eller notarisering.

Arbejdsgangen Docker Build Test and Push bygger images til både amd64 og arm64 for hver pull request, også stablede pull requests mod mellemliggende grene. Pull request-byg logger ikke ind i et containerregister, pusher ikke image-digests og publicerer ikke et multiarkitekturmanifest.

Kør de samme kontroller på applikationsniveau lokalt, før du åbner en pull request:

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

⚠️ Vigtige bemærkninger​

Datasikkerhed​

  • Sikkerhedskopiér dine data, før du skifter til dev-grenen
  • Work-opgavefiler ligger i separate navngivne Docker-volumener, libre-work-*. Sikkerhedskopiér dem separat fra SQLite-datamappen, før du tester destruktive ændringer i opgavers eller brugeres livscyklus.
  • Brug et separat Docker-volumen til test af dev:
    # 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

Mulige problemer​

  • Ændringer, der bryder kompatibiliteten, kan kræve opdateret konfiguration
  • Funktioner kan være ufærdige eller ændres uden varsel
  • Ydelsen kan variere, mens optimeringer testes
  • Elementer i brugerfladen kan se anderledes ud eller opføre sig uventet

Hvornår du bør bruge den stabile version​

Skift tilbage til den stabile gren main, hvis du:

  • Har brug for pålidelighed til vigtigt arbejde
  • Oplever for mange fejl
  • Vil have en testet, stabil oplevelse
# 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

🌟 Bliv en del af fællesskabet​


Klar til at hjælpe med at forme fremtiden for Libre WebUI? 🚀

Dine test, din feedback og dine bidrag på dev-grenen forbedrer direkte oplevelsen for alle brugere. Tak, fordi du er en del af vores udviklingsfællesskab!