Aller au contenu principal
attention

Ce tutoriel est une contribution de la communauté et n'est pas pris en charge par l'équipe d'Open WebUI. Il sert uniquement de démonstration sur la façon de personnaliser Open WebUI pour votre cas d'utilisation spécifique. Vous souhaitez contribuer ? Consultez le tutoriel de contribution.

HTTPS en utilisant Nginx

Assurer une communication sécurisée entre vos utilisateurs et Open WebUI est primordial. HTTPS (HyperText Transfer Protocol Secure) crypte les données transmises, les protégeant contre les interceptions et les altérations. En configurant Nginx comme proxy inverse, vous pouvez ajouter HTTPS à votre déploiement Open WebUI de maniÚre transparente, renforçant ainsi la sécurité et la fiabilité.

Ce guide propose trois méthodes pour configurer HTTPS :

  • Certificats auto-signĂ©s : IdĂ©al pour le dĂ©veloppement et l'utilisation interne, en utilisant Docker.
  • Lets Encrypt : Parfait pour les environnements de production nĂ©cessitant des certificats SSL fiables, en utilisant Docker.
  • Windows+Auto-signĂ©s : Instructions simplifiĂ©es pour le dĂ©veloppement et l'utilisation interne sur Windows, sans besoin de Docker.

Choisissez la méthode qui correspond le mieux à vos besoins de déploiement.

Nginx Proxy Manager​

Nginx Proxy Manager (NPM) vous permet de gérer facilement les proxys inversés et de sécuriser vos applications locales, comme Open WebUI, avec des certificats SSL valides de Lets Encrypt. Cette configuration permet un accÚs HTTPS, nécessaire pour utiliser les fonctionnalités d'entrée vocale sur de nombreux navigateurs mobiles en raison de leurs exigences de sécurité, sans exposer directement le port spécifique de l'application à Internet.

Conditions prĂ©alables​

  • Un serveur domestique exĂ©cutant Docker et un conteneur open-webui en cours d'exĂ©cution.
  • Un nom de domaine (options gratuites comme DuckDNS ou payantes comme Namecheap/GoDaddy).
  • Connaissances de base en configuration Docker et DNS.

Étapes​

  1. Créer des répertoires pour les fichiers Nginx:

    mkdir ~/nginx_config
    cd ~/nginx_config
  2. Configurer Nginx Proxy Manager avec Docker:

    nano docker-compose.yml
services:
app:
image: jc21/nginx-proxy-manager:latest
restart: unless-stopped
ports:
- 80:80
- 81:81
- 443:443
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt

Exécutez le conteneur :

docker-compose up -d
  1. Configurer DNS et domaine:

    • Connectez-vous Ă  votre fournisseur de domaine (par exemple, DuckDNS) et crĂ©ez un domaine.
    • Pointez le domaine vers l'IP locale de votre proxy (par exemple, 192.168.0.6).
    • Si vous utilisez DuckDNS, obtenez un jeton API depuis leur tableau de bord.
Voici un exemple simple de configuration sur https://www.duckdns.org/domains :​
  1. Configurer les certificats SSL:
  • AccĂ©dez Ă  Nginx Proxy Manager Ă  l'adresse http://server_ip:81. Par exemple : 192.168.0.6:81
  • Connectez-vous avec les identifiants par dĂ©faut ([email protected] / changeme). Changez-les comme demandĂ©.
  • Allez Ă  Certificats SSL → Ajouter un certificat SSL → Lets Encrypt.
  • Entrez votre email et le nom de domaine obtenu via DuckDNS. Un nom de domaine contient un astĂ©risque et un autre ne le contient pas. Exemple : *.hello.duckdns.org et hello.duckdns.org.
  • SĂ©lectionnez l'option Utiliser un dĂ©fi DNS, choisissez DuckDNS et collez votre jeton API. Exemple : dns_duckdns_token=f4e2a1b9-c78d-e593-b0d7-67f2e1c9a5b8
  • Acceptez les conditions de Let’s Encrypt et sauvegardez. Modifiez le temps de propagation si nĂ©cessaire (120 secondes).
  1. Créer des proxys hÎtes:
  • Pour chaque service (par exemple, openwebui, nextcloud), allez Ă  HĂŽtes → Proxys hĂŽtes → Ajouter un proxy hĂŽte.
  • Remplissez le nom de domaine (par exemple, openwebui.hello.duckdns.org).
  • DĂ©finissez le schĂ©ma sur HTTP (par dĂ©faut), activez Support Websockets et pointez vers l'IP de votre Docker (si Docker avec open-webui est exĂ©cutĂ© sur le mĂȘme ordinateur que le gestionnaire NGINX, ce sera la mĂȘme IP que prĂ©cĂ©demment (exemple : 192.168.0.6)
  • SĂ©lectionnez le certificat SSL gĂ©nĂ©rĂ© prĂ©cĂ©demment, forcez SSL et activez HTTP/2.
  1. Ajoutez votre URL Ă  open-webui (sinon vous obtiendrez une erreur HTTPS) :
  • Allez Ă  votre open-webui → Panneau d'administration → ParamĂštres → GĂ©nĂ©ral
  • Dans le champ de texte Webhook URL, entrez votre URL via laquelle vous vous connecterez Ă  votre open-webui via le proxy inverse Nginx. Exemple : hello.duckdns.org (non essentiel pour celui-ci) ou openwebui.hello.duckdns.org (essentiel pour celui-ci).

AccĂ©der au WebUI :​

Accédez à Open WebUI via HTTPS à l'adresse hello.duckdns.org ou openwebui.hello.duckdns.org (selon la façon dont vous l'avez configuré).

Remarque sur le pare-feu : Sachez que les logiciels de pare-feu locaux (comme Portmaster) peuvent bloquer le trafic rĂ©seau interne Docker ou les ports requis. Si vous rencontrez des problĂšmes, vĂ©rifiez les rĂšgles de votre pare-feu pour garantir la communication nĂ©cessaire Ă  cette configuration.​

Prochaines Ă©tapes​

AprÚs avoir configuré HTTPS, accédez à Open WebUI en toute sécurité à l'adresse suivante :

Assurez-vous que vos enregistrements DNS sont correctement configurés si vous utilisez un nom de domaine. Pour les environnements de production, il est recommandé d'utiliser Lets Encrypt pour des certificats SSL fiables.