Ugrás a fő tartalomra

Docker

A Docker a legegyszerűbb éles jellegű telepítés egyetlen szerverhez. Internet felől elérhető szervernél kezdje a Privát távoli telepítés útmutatóval, amely nem tesz közzé alkalmazásportokat, és Cloudflare Access-védelmet, hostszintű szabályokat, biztonsági mentést és konténerkorlátokat ad hozzá.

A Work elérhetősége

A Work alapértelmezés szerint engedélyezett a repository Compose-fájljaiban. Az image tartalmazza a Docker CLI-t, a Compose pedig csatlakoztatja a /var/run/docker.sock socketet, így a Work-konténerek a Libre WebUI-konténer testvérei, és megjelennek a host docker ps kimenetében.

A socket hozzáférése root szintű irányítást ad a host felett. Gyakorlatilag minden Libre WebUI-rendszergazda a host rendszergazdája is. Használjon megbízható hostot, ne tegye közzé a portot nem megbízható hálózaton, és távolítsa el a mountot, ha nincs szükség Workre; ekkor az oldal Runtime unavailable állapotot jelez.

Linuxon az alkalmazás felhasználójának szüksége van a socket csoportazonosítójára. Az alapértelmezett image a main; mentse a DOCKER_GID értéket a .env fájlba, a Linux-csoport neve pedig docker.

echo "DOCKER_GID=$(docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
alpine stat -c '%g' /var/run/docker.sock)" >> .env

Az értéket konténerből olvassa ki. Egy macOS-host a Docker Desktop VM-je miatt más értéket jelent. Ha a csoport hibás, a Work megnevezi a problémát. Lásd: Work: elszigetelt munkaterületek.

A Work-előnézetek és a Work Computer csak privát host-interfészen tesznek közzé véletlenszerű portokat. A Docker Desktop a Compose alapértelmezéseivel működik: a host loopbackje a kötéshez, a host.docker.internal pedig a backend felőli kapcsolathoz. A natív Docker Engine testvérkonténerből nem éri el a host loopbackjén figyelő szolgáltatást, ezért a kötést a Docker-híd nem nyilvános átjárójára állítsa:

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

A Compose-fájlok a host.docker.internal nevet a host-gateway értéken keresztül képezik le. Soha ne használja a WORK_PREVIEW_BIND=0.0.0.0 beállítást; ez a hitelesítés nélküli, rövid életű feladatportokat minden host-interfészen közzétenné ahelyett, hogy a Libre WebUI aláírt proxyja mögött maradnának.

Beépített Ollama

docker compose up -d

Nyissa meg a http://localhost:8080 címet. A WebUI-port alapértelmezés szerint a loopbackhez kötődik. A WEBUI_BIND_ADDRESS=0.0.0.0 értéket csak megbízható LAN vagy reverse proxy esetén állítsa be, a portot pedig korlátozza a host tűzfalával.

Az Ollama a Compose-hálózaton belül privát marad. A host alkalmazásainak loopback-hozzáféréséhez:

docker compose -f docker-compose.yml -f docker-compose.ollama-host.yml up -d

Az OLLAMA_BIND_ADDRESS értéket csak akkor állítsa be, ha másik gépnek kell elérnie az Ollamát, és védje a portot.

NVIDIA GPU

docker compose -f docker-compose.gpu.yml up -d

Ha a modellek továbbra is CPU-n futnak, ellenőrizze a GPU-hozzáférést az Ollama-konténerből.

Külső Ollama

docker compose -f docker-compose.external-ollama.yml up -d

Szükség esetén írja felül az Ollama URL-jét:

OLLAMA_BASE_URL=http://192.168.1.10:11434 docker compose -f docker-compose.external-ollama.yml up -d

Socket-elszigetelt Work

Work használata a nyers socket webalkalmazásba adása nélkül:

docker compose -f docker-compose.socket-proxy.yml up -d

Egy belső proxy tartja a /var/run/docker.sock socketet, és csak a containers, images, volumes, networks, exec és info API-részeket továbbítja. A swarm, secrets, configs, build és system végpontokat elutasítja. A Libre WebUI a DOCKER_HOST=tcp://docker-socket-proxy:2375 címen éri el, socket vagy DOCKER_GID nélkül. A terminál és a diagnosztika változatlanul működik. A proxy szűkíti az API-felületet, de nem biztosít teljes bérlői elszigetelést, mivel a konténerlétrehozás hostútvonalakat csatlakoztathat.

Adatmegőrzés

A backend adatai az /app/backend/data útvonalon találhatók, amelyet a Compose elnevezett kötetként csatlakoztat. A közvetlen docker run ugyanezt a helyet használja, az ideiglenes előellenőrzés az /app/backend/temp alatt marad. Mindig csatlakoztassa az /app/backend/data útvonalat, ha a konténer újralétrejöhet.

Éles környezetben állítson be stabil titkokat:

JWT_SECRET=replace-with-a-long-random-secret
ENCRYPTION_KEY=replace-with-64-hex-characters

A kötetről és a titkosítási kulcsról együtt készítsen mentést. Régi konténer törlése előtt ellenőrizze az /app/backend/data/.encryption_key fájlt, vagy őrizze meg az ENCRYPTION_KEY értéket; a régi image-ek az egyetlen kulcsot csak a konténerrétegben tárolhatták. A külön kötetekben lévő Work-fájlok nem részei a szokásos mentésnek.

Nyilvános hozzáférés

A Compose-fájlok a WebUI-t loopbackhez kötik, és közvetlenül beállítják a CORS_ORIGIN értéket. Szerkessze a libre-webui.environment bejegyzést, vagy hozzon létre compose.origin.yml fájlt:

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

Ezután helyezze a Libre WebUI-t HTTPS reverse proxy mögé, és állítsa a WEBUI_BIND_ADDRESS értéket arra a pontos interfészre, amelyre a proxynak szüksége van.

A kiszolgáló már hatékonyan szolgálja ki a lefordított frontendet: a /js/ és /assets/ alatti hash-elt csomagokat brotli vagy gzip tömörítéssel, egyéves immutable gyorsítótár-élettartammal küldi, míg az index.html és a service worker no-cache jelölést kap, így az új kiadás a következő betöltéskor érvényesül. A proxynak nem kell újratömörítenie vagy gyorsítótáraznia ezeket az útvonalakat; engedje át az Accept-Encoding fejlécet.

Hasznos parancsok

docker compose ps
docker compose logs -f libre-webui
docker compose logs -f ollama
docker compose pull
docker compose up -d

Kapcsolódó dokumentáció