๐ Open WebUI ์ ๋ฐ์ดํธ
์ ๋ด Open WebUI๊ฐ ์ ๋ฐ์ดํธ๋์ง ์๋์?โ
๋ก์ปฌ Docker ์ค์น์์ ์ต์ ๋ฒ์ ์ Open WebUI๋ก ์ ๋ฐ์ดํธํ๋ ค๋ฉด Watchtower๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ปจํ ์ด๋๋ฅผ ์๋์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์๋ ์ ๊ณต๋ ๋จ๊ณ ์ค ํ๋๋ฅผ ๋ฐ๋ผ ๊ธฐ์กด Open WebUI ์ด๋ฏธ์ง๋ฅผ ์ ๋ฐ์ดํธํ์ธ์.
์๋ ์ ๋ฐ์ดํธโ
-
ํ์ฌ ์ปจํ ์ด๋ ์ค์ง ๋ฐ ์ ๊ฑฐ:
์คํ ์ค์ธ ์ปจํ ์ด๋๋ฅผ ์ค์งํ๊ณ ์ ๊ฑฐํ์ง๋ง Docker ๋ณผ๋ฅจ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ ์ญ์ ๋์ง ์์ต๋๋ค. (์ ๋ฐ์ดํธ ๊ณผ์ ์์ ์ปจํ ์ด๋ ์ด๋ฆ์ด ๋ค๋ฅด๋ฉด
open-webui
๋ฅผ ์์ ์ ์ปจํ ์ด๋ ์ด๋ฆ์ผ๋ก ๋์ฒดํ์ธ์.)
docker rm -f open-webui
-
์ต์ Docker ์ด๋ฏธ์ง ๊ฐ์ ธ์ค๊ธฐ:
Docker ์ด๋ฏธ์ง๋ฅผ ์ ๋ฐ์ดํธํ์ง๋ง ์คํ ์ค์ธ ์ปจํ ์ด๋๋ ๋ฐ์ดํฐ๋ ์ ๋ฐ์ดํธํ์ง ์์ต๋๋ค.
docker pull ghcr.io/open-webui/open-webui:main
Docker ๋ณผ๋ฅจ์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐ (์ ๋์ ์ผ๋ก ํ์ํ์ง ์์ ํ ๊ถ์ฅํ์ง ์์!). ํ์ํ์ง ์๋ค๋ฉด ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋ฐ๊ณ ๋ง์ง๋ง ๋จ๊ณ๋ก ์ด๋ํ์ธ์:
๊นจ๋ํ ์ํ๋ก ์์ํ๋ ค๋ฉด Docker ๋ณผ๋ฅจ์ ์๋ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค. ์ฃผ์ํ์ธ์, ์ด ๊ณผ์ ์์ ๋ชจ๋ ์ฑํ ๊ธฐ๋ก ๋ฐ ๊ธฐํ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋ฉ๋๋ค.
๋ฐ์ดํฐ๋ open-webui
๋ผ๋ Docker ๋ณผ๋ฅจ์ ์ ์ฅ๋ฉ๋๋ค. ์๋ ๋ช
๋ น์ด๋ก ์ ๊ฑฐํ ์ ์์ต๋๋ค:
docker volume rm open-webui
-
์ ๋ฐ์ดํธ๋ ์ด๋ฏธ์ง์ ๊ธฐ์กด ๋ณผ๋ฅจ์ ์ฐ๊ฒฐํ์ฌ ์ปจํ ์ด๋ ์ฌ์์:
๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ์ง ์์๋ค๋ฉด ์ ๋ฐ์ดํธ๋ ์ด๋ฏธ์ง์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐํ์ฌ ์ปจํ ์ด๋๋ฅผ ์์ํฉ๋๋ค. ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค๋ฉด ์ ๋ฐ์ดํธ๋ ์ด๋ฏธ์ง์ ์๋ก์ด ๋น ๋ณผ๋ฅจ์ผ๋ก ์ปจํ ์ด๋๋ฅผ ์์ํฉ๋๋ค. Nvidia GPU ์ง์์ ์ํด์๋ docker run ๋ช ๋ น์ด์
--gpus all
์ ์ถ๊ฐํ์ธ์
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
๋งค๋ฒ ์ ๋ฐ์ดํธ ํ ๋ก๊ทธ์์ ์ํ๋ก ์ ์ง๋๋์?โ
๋งค๋ฒ ์
๋ฐ์ดํธ ํ ๋ก๊ทธ์์ ์ํ๋ก ์ ์ง๋๋ ๊ฒฝ์ฐ, ํ๊ฒฝ ๋ณ์ ๋ด WEBUI_SECRET_KEY
๊ฐ ์ค์ ๋์ด ์๋์ง ํ์ธํ์ธ์. ์ด ํค๊ฐ ์ผ๊ด๋๊ฒ ์ ์๋์ง ์์ผ๋ฉด ์
๋ฐ์ดํธ ํ ์ธ์ฆ ์ธ์
์ด ๋ฌดํจํ๋ ์ ์์ต๋๋ค.
WEBUI_SECRET_KEY
๋ฅผ ์ง์์ ์ผ๋ก ์ค์ ํ๋ ค๋ฉด Docker ์ปจํ
์ด๋ ์คํ ์ ํฌํจํ์ธ์:
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui -e WEBUI_SECRET_KEY=your_secret_key ghcr.io/open-webui/open-webui:main
๋๋, docker-compose๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, environment
์น์
์๋์ ์ถ๊ฐํ์ธ์:
version: '3'
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
environment:
- WEBUI_SECRET_KEY=your_secret_key
ํ๊ฒฝ ๋ณ์ ์ค์ ์ ๋ํ ์์ธํ ๋ด์ฉ์ Open WebUI ๋ณด์ ๋ณ์ ๋ฌธ์๋ฅผ ํ์ธํ์ธ์.
Watchtower๋ฅผ ์ด์ฉํ Open WebUI ์๋ ์ ๋ฐ์ดํธโ
Watchtower๋ฅผ ์ฌ์ฉํ์ฌ Open WebUI์ ์ ๋ฐ์ดํธ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ ์ ์์ต๋๋ค. ๋ค์์ ์ธ ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค:
์ต์ 1: 1ํ ์ ๋ฐ์ดํธโ
Watchtower๋ฅผ ์คํํ์ฌ ํ์ฌ ์ปจํ
์ด๋๋ฅผ ์ค์ง, ์ต์ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๊ณ , ์
๋ฐ์ดํธ๋ ์ด๋ฏธ์ง์ ๊ธฐ์กด ๋ณผ๋ฅจ์ ์ฐ๊ฒฐํ์ฌ ์๋ก์ด ์ปจํ
์ด๋๋ฅผ ์์ํ ์ ์์ต๋๋ค (Nvidia GPU ์ง์์ ์ํด์ --gpus all
์ docker run ๋ช
๋ น์ด์ ์ถ๊ฐํ์ธ์):
docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui
์ต์ 2: ๋ณ๋์ ์ปจํ ์ด๋๋ก Watchtower ์คํโ
๋ณ๋์ ์ปจํ ์ด๋๋ก Watchtower๋ฅผ ์คํํ์ฌ Open WebUI ์ปจํ ์ด๋๋ฅผ ๊ฐ์ํ๊ณ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค:
docker run -d --name watchtower \
--volume /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -i 300 open-webui
์ด ๋ช ๋ น์ Watchtower๋ฅผ ๋ถ๋ฆฌ๋ ๋ชจ๋๋ก ์์ํ์ฌ Open WebUI ์ปจํ ์ด๋๋ฅผ 5๋ถ๋ง๋ค ์ ๋ฐ์ดํธ๊ฐ ์๋์ง ๊ฐ์ํฉ๋๋ค.
์ต์
3: docker-compose.yml
ํ์ผ๊ณผ Watchtower ํตํฉโ
docker-compose.yml
ํ์ผ๊ณผ Watchtower๋ฅผ ํตํฉํ์ฌ Open WebUI ์
๋ฐ์ดํธ๋ฅผ ์๋ํํ ์ ์์ต๋๋ค (Nvidia GPU ์ง์์ ์ํด์ --gpus all
์ docker run ๋ช
๋ น์ด์ ์ถ๊ฐํ์ธ์):
version: '3'
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
watchtower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 300 open-webui
depends_on:
- open-webui
volumes:
open-webui:
์ด ์์ ์์ Watchtower๋ docker-compose.yml
ํ์ผ์ ํตํฉ๋์ด Open WebUI ์ปจํ
์ด๋๋ฅผ 5๋ถ๋ง๋ค ์
๋ฐ์ดํธ๊ฐ ์๋์ง ๊ฐ์ํฉ๋๋ค.