Ce script configure un proxy inversé Trafik avec des certificats de letSencrypt pour vos webapps publics. Dans mon exemple, j'ai mis en place un Dokuwiki (excellent texte brut avec l'application Wiki Markdown.) Pendant ce faisant, je pensais qu'il n'y avait pas de guide vraiment simple pour atteindre ce résultat, et peut être un peu déroutant pour les autres, alors c'est parti.
Remarque: Cela fonctionne actuellement avec Trafik v1. Support de la V2 à venir bientôt.
J'ai acheté mon domaine via Namecheap. Quel que soit le registraire du domaine que vous traversez, vous devrez configurer correctement les enregistrements DNS. Je recommande Namecheap en raison de la simplicité, mais ils sont tous à peu près les mêmes. Tant que le fournisseur autorise les enregistrements DNS génériques, vous devriez être bon à aller. Dans l'onglet "Advanced DNS" de Namecheap, je n'ai ajouté que ceci, modifie la valeur d'adresse IP en adresse IP publique de votre serveur:
| Taper | Hôte | Valeur | TTL |
|---|---|---|---|
| Un record | * | Adresse IP | Automatique |
Clone The Repo: git clone https://github.com/Starttoaster/docker-traefik.git
Répertoire de changement: cd docker-traefik
Exécutez le script: ./docker-traefik.sh
Répertoire de modification: cd /opt/traefik
Une fois que vous avez répondu à quelques questions, le script devrait se terminer. Si vous exécutez sur un VPS (serveur cloud), vous devez alors être prêt à exécuter docker-compose up -d et à afficher vos applications. Si vous êtes auto-hébergé de chez vous, passez aux sections suivantes pour les réseaux domestiques. Si vous souhaitez ajouter plus ou autres applications au fichier Docker-Compose, vous devez simplement ajouter la section étiquettes à chaque service et simplement changer le sous-domaine en ce que vous voulez que son URL soit.
Si vous avez fait ce guide sur un serveur à l'aide d'une adresse IP privée (derrière une sorte de routeur), assurez-vous également d'ouvrir également la page de configuration de votre routeur et les ports 80 et 443 de votre serveur à l'adresse IP privée de votre serveur. Je ne peux pas instruire comment procéder car chaque routeur a des pages de configuration différentes, mais recherchez simplement Google pour votre routeur + "transfert de port". Pendant que vous êtes ici, assurez-vous également que votre serveur dispose d'une IP privée attribuée statiquement. Cela économisera beaucoup de maux de tête si votre serveur est jamais redémarré et attribué une nouvelle IP à partir de votre pool DHCP.
La configuration du DNS dynamique est entièrement facultative. Les fournisseurs de services Internet n'attribuent généralement pas les adresses IP publiques statiques aux utilisateurs résidentiels à domicile. Vous trouverez peut-être un jour que votre modem / routeur câble a été réinitialisé pour une raison quelconque. Une fois que le modem / routeur est revenu en ligne, il a potentiellement été attribué à une nouvelle adresse IP publique par le DHCP de votre FAI. Dans ce cas, vous avez deux options:
Trouvez manuellement votre nouvelle adresse IP publique (accédez à: https://diagnostic.opendns.com/myip), et modifiez les sections IP-address pour correspondre à votre nouvelle adresse IP sur votre DNS un enregistrement avec qui que ce soit votre fournisseur DNS. Le mien étant DNS de base de Namecheap.
Configurez DNS dynamique (DDNS). DDNS exécute une application Web minimale à partir de votre serveur domestique qui envoie périodiquement une mise à jour de l'adresse IP que vous utilisez actuellement pour votre fournisseur DNS. Il s'authentifie avec le fournisseur DNS via un ou des touches de passe qui est attribuée par le fournisseur DNS, et si votre adresse IP modifie jamais le fournisseur DNS mettra à jour leurs enregistrements A automatiquement. Je recommande de suivre les instructions de configuration ici: https://github.com/qdm12/ddns-updater
Le conteneur prend en charge Namecheap, Cloudflare, Godaddy, DuckDns et Dreamhost. Assurez-vous que vous avez tous les paramètres nécessaires lorsque le script les demande en suivant les instructions avec le propriétaire du conteneur. Si vous configurez CloudFlare, veuillez consulter mon Gist sur les appels d'API CloudFlare ici.
C'est entièrement facultatif. Le tableau de bord Trafik propose des informations sur les applications derrière votre proxy Web. J'ai ajouté un conditionnel qui vous permet d'automatiser la configuration du tableau de bord Web. Vous aurez besoin d'un «htpasswd» dont j'ai inclus une section ci-dessous sur la façon d'en obtenir une. Un htpasswd est juste un nom d'utilisateur avec un mot de passe haché. Voir «pour générer un htpasswd» ci-dessous. Lorsque le tableau de bord Trafik est configuré, vous aurez juste besoin de saisir votre nom d'utilisateur et votre mot de passe dans la boîte de dialogue qui apparaît sur https://dash.YOUR-DOMAIN.TLD
C'est entièrement facultatif. Si vous souhaitez que toutes vos applications aient une couche de protection supplémentaire, vous pouvez configurer un htpasswd dans le fichier trafik.toml. Un htpasswd est juste un nom d'utilisateur avec un mot de passe haché. J'ai ajouté un conditionnel dans le script qui configurera cela pour vous. Tout ce dont vous avez besoin est un "htpasswd" pour entrer lorsque le script le demande. Lorsque vous souhaitez visiter l'un de vos WEBApps, vous devrez saisir le nom d'utilisateur et le mot de passe que vous avez choisi dans la boîte de dialogue qui apparaît.
htpasswd -nb user passwordS'assurer de remplacer l'utilisateur par le nom d'utilisateur souhaité et le mot de passe par le mot de passe souhaité; ou
http://www.htaccesstools.com/htpasswd-generator/Entrez simplement le nom d'utilisateur et le mot de passe souhaités, puis copiez cette chaîne et entrez-la dans le script lorsque vous l'avez demandé.
À l'utilisateur GitHub QDM12 pour leur image docker dynamique dynamique légère dynamique. QDM12 / DDNS-Updater
À GitHub User Szepeviktor pour leurs contributions à ce script.
À Miroslav Prasil pour la meilleure image Dokuwiki Docker sur Docker Hub.