From 142e75be7bf82bcfe379b48844fd8b59164ba6d1 Mon Sep 17 00:00:00 2001 From: Silentoplayz <50341825+Silentoplayz@users.noreply.github.com> Date: Sat, 21 Dec 2024 14:14:13 -0500 Subject: [PATCH] Updated DockerUpdating.md page Updated DockerUpdating.md page --- docs/features/oauth/index.mdx | 6 - .../quick-start/tab-docker/DockerUpdating.md | 104 ++++++++++++++---- 2 files changed, 85 insertions(+), 25 deletions(-) delete mode 100644 docs/features/oauth/index.mdx diff --git a/docs/features/oauth/index.mdx b/docs/features/oauth/index.mdx deleted file mode 100644 index 4051cd9..0000000 --- a/docs/features/oauth/index.mdx +++ /dev/null @@ -1,6 +0,0 @@ ---- -sidebar_position: 19 -title: "🔐 OAuth" ---- - -COMING SOON! \ No newline at end of file diff --git a/docs/getting-started/quick-start/tab-docker/DockerUpdating.md b/docs/getting-started/quick-start/tab-docker/DockerUpdating.md index 4abc595..459540d 100644 --- a/docs/getting-started/quick-start/tab-docker/DockerUpdating.md +++ b/docs/getting-started/quick-start/tab-docker/DockerUpdating.md @@ -1,35 +1,101 @@ -## Updating +## Why isn't my Open WebUI updating? -To update your local Docker installation to the latest version, you can either use **Watchtower** or manually update the container. +To update your local Docker installation of Open WebUI to the latest version available, you can either use **Watchtower** or manually update the container. Follow either of the steps provided below to be guided through updating your existing Open WebUI image. -### Option 1: Using Watchtower +### Manual Update -With [Watchtower](https://containrrr.dev/watchtower/), you can automate the update process: +1. **Stop and remove the current container**: + + This will stop the running container and remove it, but it won't delete the data stored in the Docker volume. (Replace `open-webui` with your container's name throughout the updating process if it's different for you.) + +```bash +docker rm -f open-webui +``` + +2. **Pull the latest Docker image**: + + This will update the Docker image, but it won't update the running container or its data. + +```bash +docker pull ghcr.io/open-webui/open-webui:main +``` + +3. **Remove any existing data in the Docker volume (NOT RECOMMENDED UNLESS ABSOLUTELY NECCESSARY!)**. Skip this step entirely if not needed and move on to the last step: + + If you want to start with a clean slate, you can remove the existing data in the Docker volume. Be careful, as this will delete all your chat histories and other data. + + The data is stored in a Docker volume named `open-webui`. You can remove it with the following command: + +```bash +docker volume rm open-webui +``` + +4. **Start the container again with the updated image and existing volume attached**: + + If you didn't remove the existing data, this will start the container with the updated image and the existing data. If you removed the existing data, this will start the container with the updated image and a new, empty volume. **For Nvidia GPU support, add `--gpus all` to the docker run command** + +```bash +docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main +``` + +## Automatically Updating Open WebUI with Watchtower + +You can use [Watchtower](https://containrrr.dev/watchtower/) to automate the update process for Open WebUI. Here are three options: + +### Option 1: One-time Update + +You can run Watchtower as a one-time update to stop the current container, pull the latest image, and start a new container with the updated image and existing volume attached (**For Nvidia GPU support, add `--gpus all` to the docker run command**): ```bash docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui ``` -_(Replace `open-webui` with your container's name if it's different.)_ +### Option 2: Running Watchtower as a Separate Container -### Option 2: Manual Update +You can run Watchtower as a separate container that watches and updates your Open WebUI container: -1. Stop and remove the current container: +```bash +docker run -d --name watchtower \ + --volume /var/run/docker.sock:/var/run/docker.sock \ + containrrr/watchtower -i 300 open-webui +``` - ```bash - docker rm -f open-webui - ``` +This will start Watchtower in detached mode, watching your Open WebUI container for updates every 5 minutes. -2. Pull the latest version: +### Option 3: Integrating Watchtower with a `docker-compose.yml` File - ```bash - docker pull ghcr.io/open-webui/open-webui:main - ``` +You can also integrate Watchtower with your `docker-compose.yml` file to automate updates for Open WebUI (**For Nvidia GPU support, add `--gpus all` to the docker run command**): -3. Start the container again: +```yml +version: '3' +services: + open-webui: + image: ghcr.io/open-webui/open-webui:main + ports: + - "3000:8080" + volumes: + - open-webui:/app/backend/data - ```bash - docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main - ``` + watchtower: + image: containrrr/watchtower + volumes: + - /var/run/docker.sock:/var/run/docker.sock + command: --interval 300 open-webui + depends_on: + - open-webui -Both methods will get your Docker instance updated and running with the latest build. +volumes: + open-webui: +``` + +In this example, Watchtower is integrated with the `docker-compose.yml` file and watches the Open WebUI container for updates every 5 minutes. + +## Persistent Data in Docker Volumes + +The data is stored in a Docker volume named `open-webui`. The path to the volume is not directly accessible, but you can inspect the volume with the following command: + +```bash +docker volume inspect open-webui +``` + +This will show you the details of the volume, including the mountpoint, which is usually located in `/var/lib/docker/volumes/open-webui/_data`.