⏱️ 빠른 시작
- 관리자 생성: Open WebUI에서 처음 생성된 계정은 관리자 권한을 얻어 사용자 관리 및 시스템 설정을 제어합니다.
- 사용자 등록: 후속 가입은 대기 상태로 시작되며 관리자의 승인이 필요합니다.
- 개인정보 및 데이터 보안: 로그인 정보를 포함한 모든 데이터는 기기에 로컬로 저장됩니다. Open WebUI는 엄격한 기밀성과 외부 요청 없음을 통해 향상된 개인정보 보호 및 보안을 보장합니다.
- 모든 모델은 기본적으로 비공개입니다. 모델은 그룹을 통해 공유하거나 공개적으로 만들어야 합니다. 모델이 그룹에 할당되면 해당 그룹의 구성원만 모델을 볼 수 있습니다. 모델이 공개되면 인스턴스의 모든 사람이 볼 수 있습니다.
아래에서 선호하는 설치 방법을 선택하세요:
- Docker: 대부분의 사용자에게 공식적으로 지원되고 권장됨
- Python: 리소스가 낮은 환경이나 수동 설정을 원하는 사용자에게 적합
- Kubernetes: 확장 및 오케스트레이션이 필요한 엔터프라이즈 배포에 이상적
- Docker
- Python
- Kubernetes
- Third Party
- Docker
- Docker Compose
- Podman
- Docker Swarm
Docker로 빠르게 시작하기 🐳
다음 단계에 따라 Docker를 사용하여 Open WebUI를 설치하십시오.
단계 1: Open WebUI 이미지 가져오기
GitHub 컨테이너 레지스트리에서 최신 Open WebUI Docker 이미지를 가져오십시 오.
docker pull ghcr.io/open-webui/open-webui:main
단계 2: 컨테이너 실행
기본 설정으로 컨테이너를 실행하십시오. 이 명령은 지속적인 데이터 저장을 보장하기 위해 볼륨 매핑을 포함합니다.
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
중요한 플래그
- 볼륨 매핑 (
-v open-webui:/app/backend/data
): 데이터의 지속적인 저장을 보장합니다. 컨테이너 재시작 시 데이터 손실을 방지합니다. - 포트 매핑 (
-p 3000:8080
): 로컬 머신의 3000번 포트에서 WebUI를 노출합니다.
GPU 지원 사용
Nvidia GPU 지원을 위해 docker run
명령에 --gpus all
을 추가하십시오:
docker run -d -p 3000:8080 --gpus all -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:cuda
단일 사용자 모드 (로그인 비활성화)
단일 사용자 설정을 위해 로그인 페이지를 건너뛰려면 WEBUI_AUTH
환경 변수를 False
로 설정하십시오:
docker run -d -p 3000:8080 -e WEBUI_AUTH=False -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
이 변경 후 단일 사용자 모드와 다중 계정 모드 사이를 전환할 수 없습니다.
고급 설정: 다른 서버의 Ollama에 연결하기
Open WebUI를 다른 호스트에 위치한 Ollama 서버에 연결하려면 OLLAMA_BASE_URL
환경 변수를 추가하십시오:
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
WebUI에 접속하기
컨테이너가 실행 중일 때 Open WebUI에 접속하려면 다음 URL로 이동하십시오:
각 Docker 플래그에 대한 자세한 도움말은 Dockers 문서를 참조하십시오.
업데이트 중
로컬 Docker 설치를 최신 버전으로 업데이트하려면 Watchtower를 사용하거나 컨테이너를 수동으로 업데이트할 수 있습니다.
옵션 1: Watchtower 사용
Watchtower를 사용하면 업데이트 프로세스를 자동화할 수 있습니다:
docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui
(open-webui
를 컨테이너 이름과 다르다면 해당 이름으로 교체하세요.)
옵션 2: 수동 업데이트
-
현재 컨테이너를 중지하고 제거합니다:
docker rm -f open-webui
-
최신 버전을 가져옵니다:
docker pull ghcr.io/open-webui/open-webui:main
-
컨테이너를 다시 시작합니다:
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
이 두 가지 방법으로 Docker 인스턴스를 최신 빌드로 업데이트하고 실행할 수 있습니다.
Docker Compose 설정
Docker Compose를 사용하면 다중 컨테이너 Docker 애플리케이션 관리를 간소화할 수 있습니다.
Docker가 설치되어 있지 않다면 Docker 설치 튜토리얼을 참고하세요.
Docker Compose는 추가 패키지 docker-compose-v2
가 필요합니다.
경고: 오래된 Docker Compose 튜토리얼은 버전 1 구문을 참조할 수 있으며, docker-compose build
처럼 하이픈 을 사용하는 명령을 포함합니다. 버전 2 구문을 사용하는지 확인하세요. 예: docker compose build
(하이픈 대신 공백 사용).
예제 docker-compose.yml
다음은 Docker Compose를 이용하여 Open WebUI를 설정하기 위한 예제 구성 파일입니다:
version: 3
services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:
서비스 시작하기
서비스를 시작하려면 다음 명령을 실행하세요:
docker compose up -d
도움말 스크립트
run-compose.sh
라는 유용한 도움말 스크립트가 코드베이스에 포함되어 있습니다. 이 스크립트는 배포에 포함할 Docker Compose 파일을 선택하는 데 도움을 주어 설정 프로세스를 간소화합니다.
참고: Nvidia GPU 지원을 위해 이미지를 ghcr.io/open-webui/open-webui:main
에서 ghcr.io/open-webui/open-webui:cuda
로 변경하고, docker-compose.yml
파일에 서비스 정의에 다음을 추가하세요:
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
이 설정은 애플리케이션이 GPU 리소스를 사용할 수 있을 때 이를 활용할 수 있도록 보장합니다.
Podman 사용하기
Podman은 OCI 컨테이너를 개발, 관리 및 실행하기 위한 데몬리스 컨테이 너 엔진입니다.
기본 명령어
-
컨테이너 실행:
podman run -d --name openwebui -p 3000:8080 -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:main
-
실행 중인 컨테이너 목록 보기:
podman ps
Podman 네트워킹
네트워킹 문제가 발생하면 slirp4netns를 사용하여 포드의 네트워크 설정을 조정하여 컨테이너가 컴퓨터의 포트에 접근할 수 있도록 합니다.
slirp4netns 설치를 확인하고 이전에 존재하는 컨테이너를 podman rm
을 사용하여 제거한 후 새 컨테이너를 시작합니다.
podman run -d --network=slirp4netns:allow_host_loopback=true --name openwebui -p 3000:8080 -v open-webui:/app/backend/data ghcr.io/open-webui/open-webui:main
컴퓨터에서 Ollama를 사용하고 있다면(컨테이너 내부에서 실행하지 않는 경우),
open-webui 내부로 이동한 후, Settings > Admin Settings > Connections로 이동하여 새로운 Ollama API 연결을 http://10.0.2.2:[OLLAMA PORT]
에 생성합니다. 기본적으로 Ollama 포트는 11434입니다.
Podman 문서를 참조하여 고급 설정을 확인하세요.
Docker Swarm
이 설치 방법은 Docker Swarm에 대한 지식이 필요하며, 스택 파일을 사용해 Docker Swarm에서 3개의 개별 컨테이너를 서비스로 배포합니다.
이 방법은 ChromaDB, Ollama, OpenWebUI의 격리된 컨테이너를 포함합니다. 추가적으로 설정을 더 잘 이해하기 위한 미리 채워진 환경 변수가 제공됩니다.
하드웨어 설정에 따라 적합한 명령을 선택하세요:
-
시작 전 준비사항:
호스트에서 볼륨을 위한 디렉토리를 생성해야 하거나 사용자 지정 위치 또는 볼륨을 지정할 수 있습니다.
현재 예시는
docker-stack.yaml
과 동일한 디렉토리 내의 격리된 디렉토리data
를 사용합니다.-
예를 들어:
mkdir -p data/open-webui data/chromadb data/ollama
-
-
GPU 지원 사용:
Docker-stack.yaml
version: '3.9'
services:
openWebUI:
image: ghcr.io/open-webui/open-webui:main
depends_on:
- chromadb
- ollama
volumes:
- ./data/open-webui:/app/backend/data
environment:
DATA_DIR: /app/backend/data
OLLAMA_BASE_URLS: http://ollama:11434
CHROMA_HTTP_PORT: 8000
CHROMA_HTTP_HOST: chromadb
CHROMA_TENANT: default_tenant
VECTOR_DB: chroma
WEBUI_NAME: Awesome ChatBot
CORS_ALLOW_ORIGIN: "*" # 현재 기본값이며, 라이브 환경에서는 변경 필요
RAG_EMBEDDING_ENGINE: ollama
RAG_EMBEDDING_MODEL: nomic-embed-text-v1.5
RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE: "True"
ports:
- target: 8080
published: 8080
mode: overlay
deploy:
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
chromadb:
hostname: chromadb
image: chromadb/chroma:0.5.15
volumes:
- ./data/chromadb:/chroma/chroma
environment:
- IS_PERSISTENT=TRUE
- ALLOW_RESET=TRUE
- PERSIST_DIRECTORY=/chroma/chroma
ports:
- target: 8000
published: 8000
mode: overlay
deploy:
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
healthcheck:
test: ["CMD-SHELL", "curl localhost:8000/api/v1/heartbeat || exit 1"]
interval: 10s
retries: 2
start_period: 5s
timeout: 10s
ollama:
image: ollama/ollama:latest
hostname: ollama
ports:
- target: 11434
published: 11434
mode: overlay
deploy:
resources:
reservations:
generic_resources:
- discrete_resource_spec:
kind: "NVIDIA-GPU"
value: 0
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
volumes:
- ./data/ollama:/root/.ollama-
추가 요구 사항:
- CUDA가 활성화되어 있는지 확인하세요. OS 및 GPU 지침을 따르세요.
- Docker GPU 지원을 활성화하세요. Nvidia Container Toolkit를 참조하세요.
- Docker Swarm에서 GPU를 사용하는 설정 방법을 따라 설정하세요.
/etc/nvidia-container-runtime/config.toml
에서 GPU Resource 를 활성화하고swarm-resource = "DOCKER_RESOURCE_GPU"
를 주석 해제하여 GPU 리소스 광고를 활성화합니다. 각 노드에서 이러한 파일을 업데이트한 후 Docker 데몬을 다시 시작해야 합니다.
-
-
CPU 지원 사용:
docker-stack.yaml
내 Ollama 서비스를 수정하고generic_resources:
에 대한 줄을 제거하세요.ollama:
image: ollama/ollama:latest
hostname: ollama
ports:
- target: 11434
published: 11434
mode: overlay
deploy:
replicas: 1
restart_policy:
condition: any
delay: 5s
max_attempts: 3
volumes:
- ./data/ollama:/root/.ollama -
Docker 스택 배포:
docker stack deploy -c docker-stack.yaml -d super-awesome-ai
- uv
- Conda
- Venv
- Development
uv
를 사용한 설치
uv
런타임 관리자는 Open WebUI와 같은 애플리케이션을 위한 원활한 파이썬 환경 관리를 보장합니다. 아래의 단계를 따라 시작하세요:
1. uv
설치
운영 체제에 맞는 설치 명령을 선택하세요:
-
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
-
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
2. Open WebUI 실행
uv
가 설치된 후 Open WebUI 실행은 간단합니다. 데이터 손실을 방지하기 위해 DATA_DIR
환경 변수를 설정하고 아래 명령을 사용하세요. 각 플랫폼에 대한 예제 경로는 다음과 같습니다:
-
macOS/Linux:
DATA_DIR=~/.open-webui uvx --python 3.11 open-webui@latest serve
-
Windows (PowerShell):
$env:DATA_DIR="C:\open-webui\data"; uvx --python 3.11 open-webui@latest serve
Python으로 업데이트하기
pip
을 사용하여 로컬에 설치된 Open-WebUI 패키지를 최신 버전으로 업데이트하려면 다음 간단한 단계를 따르세요:
pip install -U open-webui
-U
(또는 --upgrade
) 플래그는 pip
이 패키지를 최신 사용 가능한 버전으로 업그레이드하도록 보장합니다.
이것으로 끝입니다! Open-WebUI 패키지가 이제 업데이트되어 사용할 준비가 되었습니다.
Conda로 설치하기
-
Conda 환경 생성:
conda create -n open-webui python=3.11
-
환경 활성화:
conda activate open-webui
-
Open WebUI 설치:
pip install open-webui
-
서버 시작:
open-webui serve
Python으로 업데이트하기
pip
을 사용하여 로컬에 설치된 Open-WebUI 패키지를 최신 버전으로 업데이트하려면 다음 간단한 단계를 따르세요:
pip install -U open-webui
-U
(또는 --upgrade
) 플래그는 pip
이 패키지를 최신 사용 가능한 버전으로 업그레이드하도록 보장합니다.
이것으로 끝입니다! Open-WebUI 패키지가 이제 업데이트되어 사용할 준비가 되었습니다.
가상 환경 사용하기
venv
를 사용하여 Python의 격리된 환경을 생성합니다.
단계
-
가상 환경 생성:
python3 -m venv venv
-
가상 환경 활성화:
-
Linux/macOS에서:
source venv/bin/activate
-
Windows에서:
venv\Scripts\activate
-
-
Open WebUI 설치:
pip install open-webui
-
서버 시작:
open-webui serve
Python으로 업데이트하기
pip
을 사용하여 로컬에 설치된 Open-WebUI 패키지를 최신 버전으로 업데이트하려면 다음 간단한 단계를 따르세요:
pip install -U open-webui
-U
(또는 --upgrade
) 플래그는 pip
이 패키지를 최신 사용 가능한 버전으로 업그레이드하도록 보장합니다.
이것으로 끝입니다! Open-WebUI 패키지가 이제 업데이트되어 사용할 준비가 되었습니다.
개발 환경 설정
기여를 원하는 개발자는 고급 주제의 개발 가이드를 확 인하세요.
- Helm
- Kustomize
Kubernetes용 Helm 설정
Helm은 Kubernetes 애플리케이션 관리를 도와줍니다.
사전 준비
- Kubernetes 클러스터가 설정되어 있어야 합니다.
- Helm이 설치되어 있어야 합니다.
단계
-
Open WebUI Helm 저장소 추가:
helm repo add open-webui https://open-webui.github.io/helm-charts
helm repo update -
Open WebUI 차트 설치:
helm install openwebui open-webui/open-webui
-
설치 확인:
kubectl get pods
Open WebUI를 여러 노드/팟/작업자로 구성된 클러스터 환경에서 확장하려면 NoSQL 키-값 데이터베이스를 설정해야 합니다. 환경 변수 몇 가지를 모든 서비스 인스턴스에서 동일한 값으로 설정해야 합니다. 그렇지 않으면 일관성 문제, 잘못된 세션 및 기타 문제가 발생할 수 있습니다!
WebUI에 액세스
클러스터 외부에서 Open WebUI에 액세스하려면 포트 포워딩 또는 로드 밸런싱을 설정하십시오.
Kubernetes를 위한 Kustomize 설정
Kustomize를 사용하면 Kubernetes YAML 설정을 사용자 정의할 수 있습니다.
사전 준비
- Kubernetes 클러스터가 설정되어 있어야 합니다.
- Kustomize가 설치되어 있어야 합니다.
단계
-
Open WebUI Manifest 클론:
git clone https://github.com/open-webui/k8s-manifests.git
cd k8s-manifests -
Manifests 적용:
kubectl apply -k .
-
설치 확인:
kubectl get pods
Open WebUI를 다수의 노드/Pod/작업자(worker)를 사용하는 클러스터 환경에서 확장하려는 경우, NoSQL 키-값 데이터베이스를 설정해야 합니다. 모든 서비스 인스턴스에서 동일한 값으로 설정해야 하는 환경 변수가 있습니다. 그렇지 않으면 일관성 문제, 잘못된 세션 및 기타 문제가 발생할 수 있습니다!
WebUI에 접근
클러스터 외부에서 Open WebUI에 접근하려면 포트 포워딩 또는 로드 밸런싱을 설정하십시오.
다음 단계
설치 후 다음을 방문하세요:
- http://localhost:3000에서 Open WebUI를 엑세스하세요.
- 또는 http://localhost:8080/에서 Python 배포를 사용할 경우.
이제 Open WebUI를 사용할 준비가 되었습니다!
Ollama와 함께 Open WebUI 사용하기
Open WebUI를 Ollama와 함께 사용하는 경우, Ollama 인스턴스를 관리하는 방법에 대해 알아보려면 Ollama 시작 가이드를 꼭 확인하세요.
커뮤니티에 가입하기
도움이 필요하신가요? 질문이 있으신가요? 우리 커뮤니티에 가입하세요: