Docker
Docker er den nemmeste produktionslignende implementering på én server. Til en internettilgængelig server bør du begynde med Privat fjernimplementering, hvis skabelon ikke publicerer porte og tilføjer Cloudflare Access, værtsbeskyttelse, sikkerhedskopiering og containergrænser.
Standardimagen følger main. Dockergruppen hedder docker, og lokale indstillinger som DOCKER_GID gemmes i .env.
Work-tilgængelighed
Work er aktiveret som standard i repositoryets Compose-filer. Imagen indeholder Docker CLI, og Compose monterer /var/run/docker.sock, så Work-containere er sideordnede med Libre WebUI-containeren og ses i docker ps på værten.
Adgang til socketen giver root-lignende kontrol over Docker-værten. Derfor er hver Libre WebUI-administrator i praksis også værtsadministrator. Brug en betroet vært, eksponér ikke porten mod et upålideligt netværk, og fjern monteringen, hvis Work ikke er nødvendigt; derefter viser Work Runtime unavailable.
På Linux behøver appbrugeren Docker-socketens gruppe-id:
echo "DOCKER_GID=$(docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
alpine stat -c '%g' /var/run/docker.sock)" >> .env
Læs værdien gennem en container; macOS-værtens værdi adskiller sig på grund af Docker Desktops VM. Forkert gruppe vises tydeligt på Work-siden. Se Work: isolerede arbejdsområder.
Work-forhåndsvisninger og Work Computer publicerer kun tilfældige porte på en privat værtsgrænseflade. Docker Desktop fungerer med Compose-standardværdierne: værtens loopback til bindingen og host.docker.internal til backendforbindelsen. Native Docker Engine kan ikke nå en lytter på værtens loopback fra en søskendecontainer. Angiv i stedet bindingen til dens ikke-offentlige gateway for Docker-bridgen:
echo "WORK_PREVIEW_BIND=$(docker network inspect bridge \
--format '{{(index .IPAM.Config 0).Gateway}}')" >> .env
echo "WORK_DOCKER_PUBLISHED_HOST=host.docker.internal" >> .env
docker compose up -d --force-recreate libre-webui
Compose-filerne mapper host.docker.internal gennem host-gateway. Brug aldrig WORK_PREVIEW_BIND=0.0.0.0; det ville publicere uautentificerede midlertidige opgaveporte på alle værtens grænseflader i stedet for at holde dem bag Libre WebUIs signerede proxy.
Indbygget Ollama
docker compose up -d
Åbn http://localhost:8080. WebUI-porten bindes som standard til værtens loopback. Angiv kun WEBUI_BIND_ADDRESS=0.0.0.0, når et betroet LAN eller en reverse proxy på værten skal nå den, og begræns porten med værtens firewall.
Ollama forbliver privat i Compose-netværket. Til loopbackadgang fra apps på værten:
docker compose -f docker-compose.yml -f docker-compose.ollama-host.yml up -d
Angiv OLLAMA_BIND_ADDRESS kun når en anden computer skal nå Ollama og beskyt porten.
NVIDIA GPU
docker compose -f docker-compose.gpu.yml up -d
Verificer GPU-adgang i Ollama-containern hvis modeller kør på CPU.
Extern Ollama
docker compose -f docker-compose.external-ollama.yml up -d
Ændra URL ved behov:
OLLAMA_BASE_URL=http://192.168.1.10:11434 docker compose -f docker-compose.external-ollama.yml up -d
Socketisolerad Work
Sådan beholder du Work uden at give webappen den rå socket:
docker compose -f docker-compose.socket-proxy.yml up -d
En intern proxy holder /var/run/docker.sock og videresender kun containere, images, diskenheder, netværk, exec og info. Swarm, secrets, configs, build og system nekas. Libre WebUI bruger DOCKER_HOST=tcp://docker-socket-proxy:2375 uden socketmontering eller DOCKER_GID. Grænsen reducerer API-grænsefladen men er ikke en fuldstændig tenantisolering.
Bestændig data
Backenddata findes i /app/backend/data og monteras som navngiven diskenhed. Æven direkte docker run bruger stien; temporær databaspreflight ligger i /app/backend/temp. Montera datakatalogen når containern kan återskapas.
Angiv stabile hemmeligheder i produktion:
JWT_SECRET=replace-with-a-long-random-secret
ENCRYPTION_KEY=replace-with-64-hex-characters
Sikkerhedskopiér datavolym og krypteringsnøgel sammen. Føre sletning af en ældre direktstartad container, kontrollér /app/backend/data/.encryption_key eller gem konfigureret ENCRYPTION_KEY; ældre images kunde gemme den enda nøgeln i containerlagret. Work-filer i separata Docker-diskenheder indgår ikke i normal backup.
Publik adgang
Repositoryts Compose-filer binder WebUI til loopback og angiver CORS_ORIGIN direkte. Redigera libre-webui.environment eller opret compose.origin.yml:
services:
libre-webui:
environment:
CORS_ORIGIN: https://your-domain.example
BASE_URL: https://your-domain.example
docker compose -f docker-compose.yml -f compose.origin.yml up -d
Placér derefter Libre WebUI bag HTTPS, og angiv WEBUI_BIND_ADDRESS til præcis den grænseflade, proxyen har brug for.
Serveren leverer allerede den byggede frontend effektivt: hashede bundter under /js/ og /assets/ sendes brotli- eller gzip-komprimeret med et års immutable cachelevetid, mens index.html og service worker-filen markeres no-cache, så en ny udgivelse hentes ved næste indlæsning. En proxy behøver hverken at komprimere igen eller cache de stier; send Accept-Encoding videre.
Anvændbara kommandoer
docker compose ps
docker compose logs -f libre-webui
docker compose logs -f ollama
docker compose pull
docker compose up -d