자체 서버에서 언어 모델을 실행하면 프롬프트와 문서가 비공개로 유지되고 토큰당 요금이 없어집니다. Ollama가 모델 측면을 간단하게 해 주고, Open WebUI가 그 위에 ChatGPT 스타일의 인터페이스를 제공합니다. 이 가이드는 Ubuntu가 실행되는 GPU 서버에 둘을 모두 설치합니다.
필요한 것
- GPU 서버. 모델 크기가 GPU를 결정합니다. 4비트 형태의 7~8B 파라미터 모델에는 대략 5~6 GB의 VRAM이 필요합니다. 70B 모델은 훨씬 더 많이, 보통 40 GB 이상이 필요합니다. 규격별 옵션은 프라이빗 LLM 호스팅 페이지를 참고하세요.
- NVIDIA 드라이버가 설치된 Ubuntu 22.04 또는 24.04. 당사 GPU 플랜은 CUDA가 준비된 상태로 제공될 수 있습니다.
- Open WebUI를 위한 Docker. 필요하다면 Docker 설치 방법을 따라 하세요.
1단계: GPU 확인
nvidia-smi
GPU, 드라이버 버전, CUDA 버전이 보여야 합니다. 명령이 없다면 먼저 카드에 맞는 NVIDIA 드라이버를 설치하세요.
2단계: Ollama 설치
curl -fsSL https://ollama.com/install.sh | sh
ollama --version
systemctl status ollama
설치 프로그램이 127.0.0.1:11434에서 수신하는 systemd 서비스를 설정합니다. 파이프로 실행하는 설치 방식이므로 원한다면 실행하기 전에 스크립트를 읽어 보세요.
3단계: 모델 받아서 테스트
ollama pull llama3.1:8b
ollama run llama3.1:8b "Explain what a VPS is in two sentences."
ollama ps
ollama ps는 모델이 GPU에 로드되었는지 보여 줍니다. CPU라고 나오면 GPU가 사용되지 않는 것이며 응답이 느립니다.
4단계: Open WebUI 추가
Docker에서 Open WebUI를 실행하고 호스트의 Ollama를 가리키게 하세요:
docker run -d --name open-webui --restart unless-stopped \
--add-host=host.docker.internal:host-gateway \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
-p 127.0.0.1:3000:8080 \
ghcr.io/open-webui/open-webui:main
127.0.0.1에 바인딩하면 아직 인터넷에 노출되지 않습니다. 처음 열 때 관리자 계정을 만드세요.
5단계: 앞단에 HTTPS 두기
자동 인증서를 위해 Caddy를 사용하세요. 서버를 가리키는 도메인을 준비한 다음:
sudo apt install -y caddy
echo 'chat.example.com {
reverse_proxy 127.0.0.1:3000
}' | sudo tee /etc/caddy/Caddyfile
sudo systemctl reload caddy
Open WebUI 설정에서 공개 가입을 비활성화해 나만 계정을 만들 수 있게 하세요.
비공개로 유지하기
- 포트 11434(Ollama API)를 절대 인터넷에 노출하지 마세요. 로그인이 없습니다.
- 방화벽으로 SSH, 80, 443만 허용하세요. 새 VPS 보안 설정을 참고하세요.
- 모델과 채팅 기록은 서버 디스크에 보관하세요. 기기 밖으로 나가지 않습니다.