| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- services:
- {{ service_name }}:
- image: ghcr.io/open-webui/open-webui:v{{ openwebui_version }}
- container_name: {{ container_name }}
- hostname: {{ container_hostname }}
- environment:
- - TZ={{ container_timezone }}
- - OLLAMA_BASE_URL={{ ollama_base_url }}
- {% if authentik_enabled %}
- - ENABLE_OAUTH_SIGNUP=true
- - OAUTH_MERGE_ACCOUNTS_BY_EMAIL={{ oauth_merge_accounts|lower }}
- - OAUTH_PROVIDER_NAME=authentik
- - OPENID_PROVIDER_URL={{ openid_provider_url }}
- - OAUTH_CLIENT_ID={{ authentik_client_id }}
- - OAUTH_CLIENT_SECRET={{ authentik_client_secret }}
- - OAUTH_SCOPES={{ oauth_scopes }}
- - OPENID_REDIRECT_URI={{ openid_redirect_uri }}
- {% endif %}
- volumes:
- - data:/app/backend/data:rw
- {% if network_mode == 'host' %}
- network_mode: host
- {% else %}
- networks:
- {% if traefik_enabled %}
- {{ traefik_network }}:
- {% endif %}
- {% if network_mode == 'macvlan' %}
- {{ network_name }}:
- ipv4_address: {{ network_macvlan_ipv4_address }}
- {% elif network_mode == 'bridge' %}
- {{ network_name }}:
- {% endif %}
- {% endif %}
- {% if not traefik_enabled and network_mode == 'bridge' %}
- ports:
- - "{{ ports_http }}:8080"
- {% endif %}
- {% if traefik_enabled %}
- labels:
- - traefik.enable=true
- - traefik.docker.network={{ traefik_network }}
- - traefik.http.services.{{ service_name }}-web.loadBalancer.server.port=8080
- - traefik.http.routers.{{ service_name }}-http.service={{ service_name }}-web
- - traefik.http.routers.{{ service_name }}-http.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
- - traefik.http.routers.{{ service_name }}-http.entrypoints={{ traefik_entrypoint }}
- {% if traefik_tls_enabled %}
- - traefik.http.routers.{{ service_name }}-https.service={{ service_name }}-web
- - traefik.http.routers.{{ service_name }}-https.rule=Host(`{{ traefik_host }}.{{ traefik_domain }}`)
- - traefik.http.routers.{{ service_name }}-https.entrypoints={{ traefik_tls_entrypoint }}
- - traefik.http.routers.{{ service_name }}-https.tls=true
- - traefik.http.routers.{{ service_name }}-https.tls.certresolver={{ traefik_tls_certresolver }}
- {% endif %}
- {% endif %}
- restart: {{ restart_policy }}
- volumes:
- data:
- driver: local
- {% if network_mode != 'host' %}
- networks:
- {{ network_name }}:
- {% if network_external %}
- external: true
- {% else %}
- {% if network_mode == 'macvlan' %}
- driver: macvlan
- driver_opts:
- parent: {{ network_macvlan_parent_interface }}
- ipam:
- config:
- - subnet: {{ network_macvlan_subnet }}
- gateway: {{ network_macvlan_gateway }}
- {% else %}
- driver: bridge
- {% endif %}
- {% endif %}
- name: {{ network_name }}
- {% if traefik_enabled %}
- {{ traefik_network }}:
- external: true
- {% endif %}
- {% endif %}
|