<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=OpenWebUI_-_251128-justin</id>
	<title>OpenWebUI - 251128-justin - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=OpenWebUI_-_251128-justin"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=OpenWebUI_-_251128-justin&amp;action=history"/>
	<updated>2026-06-05T09:49:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=OpenWebUI_-_251128-justin&amp;diff=71&amp;oldid=prev</id>
		<title>CITEditor: Created page with &quot;= OpenWebUI Docker Compose Configuration =  &#039;&#039;&#039;Reference ID:&#039;&#039;&#039; 251128-justin&lt;br&gt; &#039;&#039;&#039;Author:&#039;&#039;&#039; Justin  This page contains the &lt;code&gt;docker-compose.yml&lt;/code&gt; configuration for Open WebUI, designed to run in front of a local or remote LLM backend (Ollama, llama.cpp, LM Studio, etc.).  == Notes ==  * Typically placed behind an NGINX reverse proxy on a separate &quot;edge&quot; host that terminates HTTPS for your personal domain using Let&#039;s Encrypt and forwards traffic to this servi...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=OpenWebUI_-_251128-justin&amp;diff=71&amp;oldid=prev"/>
		<updated>2026-02-25T07:19:22Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= OpenWebUI Docker Compose Configuration =  &amp;#039;&amp;#039;&amp;#039;Reference ID:&amp;#039;&amp;#039;&amp;#039; 251128-justin&amp;lt;br&amp;gt; &amp;#039;&amp;#039;&amp;#039;Author:&amp;#039;&amp;#039;&amp;#039; Justin  This page contains the &amp;lt;code&amp;gt;docker-compose.yml&amp;lt;/code&amp;gt; configuration for Open WebUI, designed to run in front of a local or remote LLM backend (Ollama, llama.cpp, LM Studio, etc.).  == Notes ==  * Typically placed behind an NGINX reverse proxy on a separate &amp;quot;edge&amp;quot; host that terminates HTTPS for your personal domain using Let&amp;#039;s Encrypt and forwards traffic to this servi...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= OpenWebUI Docker Compose Configuration =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Reference ID:&amp;#039;&amp;#039;&amp;#039; 251128-justin&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Author:&amp;#039;&amp;#039;&amp;#039; Justin&lt;br /&gt;
&lt;br /&gt;
This page contains the &amp;lt;code&amp;gt;docker-compose.yml&amp;lt;/code&amp;gt; configuration for Open WebUI, designed to run in front of a local or remote LLM backend (Ollama, llama.cpp, LM Studio, etc.).&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
* Typically placed behind an NGINX reverse proxy on a separate &amp;quot;edge&amp;quot; host that terminates HTTPS for your personal domain using Let&amp;#039;s Encrypt and forwards traffic to this service on port 3000.&lt;br /&gt;
* The named volume &amp;lt;code&amp;gt;open-webui-data&amp;lt;/code&amp;gt; is bind-mounted to a specific host path on a backup-managed storage pool (TrueNAS/Synology).&lt;br /&gt;
* Application data (users, chat history, uploads, settings, etc.) is expected to grow over time — easily 2–3 GB per year, especially if used for contract and document analysis.&lt;br /&gt;
&lt;br /&gt;
== docker-compose.yml ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
# docker-compose.yml for Open WebUI in front of a local/remote LLM backend&lt;br /&gt;
# - Designed to work with Ollama, llama.cpp servers, LM Studio, etc. via HTTP API&lt;br /&gt;
# - Typically placed behind an NGINX reverse proxy on a separate &amp;quot;edge&amp;quot; host&lt;br /&gt;
#   that terminates HTTPS for your personal domain using Let&amp;#039;s Encrypt and&lt;br /&gt;
#   forwards traffic to this service on port 3000.&lt;br /&gt;
&lt;br /&gt;
services:&lt;br /&gt;
  open-webui:&lt;br /&gt;
    image: ghcr.io/open-webui/open-webui:${WEBUI_DOCKER_TAG-main}   # Use WEBUI_DOCKER_TAG env var; defaults to &amp;#039;main&amp;#039; if not set&lt;br /&gt;
    container_name: open-webui&lt;br /&gt;
    ports:&lt;br /&gt;
      - &amp;quot;3000:8080&amp;quot;    # Expose container port 8080 on host port 3000; NGINX reverse proxy points here&lt;br /&gt;
&lt;br /&gt;
    environment:&lt;br /&gt;
      # URL of your LLM backend:&lt;br /&gt;
      #   - For Ollama: use the HTTP endpoint reachable from this container.&lt;br /&gt;
      #     If Ollama is running as a Docker service on the same Docker network,&lt;br /&gt;
      #     you can reference it by service name, e.g. http://ollama:11434&lt;br /&gt;
      #   - For llama.cpp / LM Studio / other backends: point to their HTTP API&lt;br /&gt;
      #     URL (for example, http://llama-server:8080) as long as this&lt;br /&gt;
      #     container can reach it.&lt;br /&gt;
      - OLLAMA_BASE_URL=http://ollama:11434&lt;br /&gt;
&lt;br /&gt;
      # Optional secret key for Open WebUI.&lt;br /&gt;
      # - If **unset/empty**, Open WebUI will auto-generate a key on first start.&lt;br /&gt;
      # - If **set**, all session cookies and tokens are signed with this value.&lt;br /&gt;
      #   Recommended for multi-user and production deployments.&lt;br /&gt;
      # Best practice: set WEBUI_SECRET_KEY via your .env file or environment,&lt;br /&gt;
      # not hard-coded here, e.g. WEBUI_SECRET_KEY=$(openssl rand -hex 32)&lt;br /&gt;
      - WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY:-}&lt;br /&gt;
&lt;br /&gt;
    volumes:&lt;br /&gt;
      # Application data (users, chat history, uploads, settings, etc.).&lt;br /&gt;
      # Expect this to grow over time, especially if used for contract and&lt;br /&gt;
      # document analysis (easily 2-3 GB per year).&lt;br /&gt;
      #&lt;br /&gt;
      # We attach a *named* volume here, but map that named volume to a&lt;br /&gt;
      # specific host path on a backup-managed storage pool (TrueNAS/Synology).&lt;br /&gt;
      # See the `volumes:` section below for the bind configuration.&lt;br /&gt;
      - open-webui-data:/app/backend/data&lt;br /&gt;
&lt;br /&gt;
    extra_hosts:&lt;br /&gt;
      - host.docker.internal:host-gateway   # Lets the container reach services on the Docker host&lt;br /&gt;
&lt;br /&gt;
    restart: unless-stopped                 # Auto-restart on crash or host reboot&lt;br /&gt;
&lt;br /&gt;
volumes:&lt;br /&gt;
  open-webui-data:&lt;br /&gt;
    driver: local&lt;br /&gt;
    driver_opts:&lt;br /&gt;
      # Bind-mount this named volume to a specific host directory instead of&lt;br /&gt;
      # using Docker&amp;#039;s default volume location. This directory should live on&lt;br /&gt;
      # storage that is:&lt;br /&gt;
      #   - regularly backed up (e.g., TrueNAS/Synology dataset or share)&lt;br /&gt;
      #   - easy to grow/migrate as data usage increases.&lt;br /&gt;
      #&lt;br /&gt;
      # Example: /mnt/truenas/open-webui-data is a ZFS dataset exported to the&lt;br /&gt;
      # Docker host, or a mounted NFS/SMB share from a NAS.&lt;br /&gt;
      type: none&lt;br /&gt;
      o: bind&lt;br /&gt;
      device: /mnt/truenas/open-webui-data&lt;br /&gt;
      # To move or expand storage later:&lt;br /&gt;
      #   1. Stop the stack: docker compose down&lt;br /&gt;
      #   2. Copy data to a new path on your NAS/TrueNAS/Synology&lt;br /&gt;
      #   3. Update `device:` to point to the new path&lt;br /&gt;
      #   4. Start the stack again: docker compose up -d&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Infrastructure]]&lt;br /&gt;
[[Category:Docker]]&lt;br /&gt;
[[Category:AI/ML]]&lt;br /&gt;
[[Category:Comfac]]&lt;/div&gt;</summary>
		<author><name>CITEditor</name></author>
	</entry>
</feed>