<!-- wp:paragraph -->
<p>이 매뉴얼은 공식 문서 사이트(<a target="_blank" rel="noreferrer noopener" href="https://docs.openwebui.com/getting-started/updating/">https://docs.openwebui.com/getting-started/updating/</a>)를 참조하여 작성되었으며, Docker를 사용하여 설치된 Open WebUI를 안전하게 최신 버전으로 업데이트하는 방법을 안내합니다.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>업데이트를 진행하기 전에 데이터 손실을 방지하기 위해 <strong>반드시 볼륨(volume)을 사용하여 데이터가 영구적으로 저장되도록 설정</strong>되어 있는지 확인해야 합니다. 일반적으로 <code>docker run</code> 명령어에 <code>-v open-webui:/app/backend/data</code>와 같은 옵션이 포함되어 있습니다.</p>
<!-- /wp:paragraph -->

<!-- wp:separator -->
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<!-- /wp:separator -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">1. 수동 업데이트 (Manual Update)</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>가장 기본적인 방법으로, 직접 명령어를 입력하여 Open WebUI 컨테이너를 업데이트합니다.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>1단계: 최신 Docker 이미지 가져오기</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>먼저, 최신 버전의 Open WebUI 이미지를 Docker Hub에서 가져옵니다.</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>docker pull ghcr.io/open-webui/open-webui:main
</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>만약 CUDA 지원 버전을 사용하고 있다면 다음 명령어를 사용하세요.</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>docker pull ghcr.io/open-webui/open-webui:cuda
</code></pre>
<!-- /wp:code -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>2단계: 기존 컨테이너 중지 및 삭제</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>현재 실행 중인 Open WebUI 컨테이너를 중지하고 삭제합니다. 컨테이너 이름이 <code>open-webui</code>가 아닌 경우, 실제 사용하는 이름으로 변경해야 합니다.</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>docker stop open-webui
docker rm open-webui
</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p><strong>참고:</strong> 이 과정에서 컨테이너는 삭제되지만, <code>-v</code> 옵션으로 연결된 볼륨에 저장된 데이터는 삭제되지 않으므로 채팅 기록이나 설정은 안전하게 보존됩니다.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>3단계: 새로운 버전의 컨테이너 실행</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>최신 이미지로 새로운 컨테이너를 실행합니다. 이 때, <strong>최초에 Open WebUI를 설치할 때 사용했던 <code>docker run</code> 명령어와 동일한 옵션을 사용</strong>해야 합니다. 특히, 볼륨 마운트(<code>-v</code>)와 포트 설정(<code>-p</code>)이 중요합니다.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><strong>기본 예시:</strong></p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p><strong>CUDA 지원 버전 예시:</strong></p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>docker run -d -p 3000:8080 --gpus all -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda
</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>이제 새로운 버전의 Open WebUI가 실행됩니다. 웹 브라우저를 통해 접속하여 업데이트가 완료되었는지 확인합니다.</p>
<!-- /wp:paragraph -->

<!-- wp:separator -->
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<!-- /wp:separator -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">2. Watchtower를 이용한 업데이트</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Watchtower는 실행 중인 Docker 컨테이너의 이미지를 모니터링하고, 새로운 버전이 릴리즈되면 자동으로 컨테이너를 업데이트해주는 유용한 도구입니다.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>일회성 수동 업데이트</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Watchtower를 사용하여 한 번만 업데이트를 실행하려면 다음 명령어를 사용합니다. 이 명령어는 <code>open-webui</code>라는 이름의 컨테이너를 찾아 최신 이미지로 업데이트합니다.</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui
</code></pre>
<!-- /wp:code -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading"><strong>자동 업데이트 설정</strong></h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Watchtower 컨테이너를 계속 실행시켜 두면, 주기적으로 Open WebUI의 업데이트를 확인하고 자동으로 적용하게 할 수 있습니다.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>다음 명령어는 300초(5분)마다 업데이트를 확인하도록 Watchtower 컨테이너를 백그라운드에서 실행합니다.</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>docker run -d --name watchtower \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower -i 300 open-webui
</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p><code>docker-compose.yml</code> 파일을 사용하고 있다면, <code>services</code> 섹션에 Watchtower를 추가하여 자동 업데이트를 설정할 수도 있습니다.</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>version: '3'
services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    volumes:
      - open-webui:/app/backend/data
    restart: unless-stopped

  watchtower:
    image: containrrr/watchtower
    container_name: watchtower
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --interval 300 open-webui # 300초마다 open-webui 컨테이너를 감시
    restart: unless-stopped</code></pre>
<!-- /wp:code -->