Ceci est mon premier post et je voulais fournir un guide que j’ai créé avec notre ami ChatGPT après avoir lutté pendant des jours pour comprendre comment faire fonctionner Caddy pour le proxy inverse de Discourse installé avec les instructions du bureau. J’ai utilisé des informations trouvées sur le forum de Caddy ici. Configuration de Caddy Discourse . Cela peut être simple, mais pour ceux d’entre nous qui débutent avec Discourse, cela demande un peu d’effort pour le mettre en place.
Merci pour cette communauté manifestement formidable.
Intégration de Discourse, Caddy et WordPress avec les ports Docker pour le proxy inverse
Aperçu
Ce guide fournit un processus étape par étape pour configurer Discourse avec Caddy comme proxy inverse, aux côtés d’une installation WordPress, en utilisant Docker Compose. Ces instructions sont conçues pour un serveur Ubuntu 22 LTS typique et démontrent comment intégrer plusieurs services tout en assurant une configuration propre et reproductible.
Prérequis
Assurez-vous que les prérequis suivants sont remplis avant de continuer :
-
Docker et Docker Compose :
bash
Copy code
apt update && apt install docker docker-compose -y -
Discourse installé :
- Installez Discourse via les instructions d’installation officielles.
-
Noms de domaine :
- Un domaine principal pour WordPress (par exemple,
website.com). - Un sous-domaine pour Discourse (par exemple,
forum.website.com).
- Un domaine principal pour WordPress (par exemple,
Étape 1 : Configuration de docker-compose.yml
Le fichier docker-compose.yml définit les services pour Caddy (proxy inverse), WordPress et MySQL.
Emplacement du fichier
Enregistrez le fichier sous /etc/docker-services/docker-compose.yml.
Configuration
yaml
Copy code
version: '3.8'
services:
caddy:
image: caddy:latest
container_name: caddy
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
networks:
- caddy_net
wordpress:
image: wordpress:latest
container_name: wordpress
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: example_user
WORDPRESS_DB_PASSWORD: example_password
WORDPRESS_DB_NAME: example_db
volumes:
- ./wordpress:/var/www/html
networks:
- caddy_net
db:
image: mysql:5.7
container_name: wordpress_db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: example_password
MYSQL_DATABASE: example_db
MYSQL_USER: example_user
MYSQL_PASSWORD: example_password
volumes:
- db_data:/var/lib/mysql
networks:
- caddy_net
volumes:
caddy_data:
caddy_config:
db_data:
networks:
caddy_net:
external: true
Étape 2 : Configuration du proxy inverse Caddy
Caddy proxy les requêtes vers Discourse et WordPress et gère les certificats HTTPS.
Emplacement du fichier
Enregistrez la configuration sous /etc/docker-services/Caddyfile.
Configuration
caddyfile
Copy code
website.com {
reverse_proxy wordpress:80
}
forum.website.com {
reverse_proxy app:80
}
Cette configuration garantit :
- Les requêtes vers
website.comsont proxyées vers le conteneur WordPress. - Les requêtes vers
forum.website.comsont proxyées vers le conteneur Discourse.
Étape 3 : Configuration de Discourse
Mettez à jour app.yml pour intégrer Discourse avec Caddy et le réseau Docker.
Emplacement du fichier
Situé dans /var/discourse/containers/app.yml.
Modifications de la configuration
-
Exposer les ports HTTP non standard :
yaml
Copy code
expose: - "8880:80" # http -
Supprimer les modèles SSL :
yaml
Copy code
# - "templates/web.ssl.template.yml" # - "templates/web.letsencrypt.ssl.template.yml" -
Définir le réseau Docker :
yaml
Copy code
docker_args: - '--network caddy_net' networks: caddy_net: external: true -
Reconstruire Discourse : Appliquez les modifications en reconstruisant le conteneur Discourse :
bash
Copy code
cd /var/discourse ./launcher rebuild app
Étape 4 : Déployer les services
Démarrez les services Docker pour Caddy et WordPress :
-
Accédez au répertoire Docker Compose :
bash
Copy code
cd /etc/docker-services -
Lancez les conteneurs :
bash
Copy code
docker compose up -d
Étape 5 : Test et vérification
-
Vérifier les conteneurs en cours d’exécution :
bash
Copy code
docker ps -
Accéder à WordPress : Accédez à :
arduino
Copy code
https://website.com -
Accéder à Discourse : Accédez à :
arduino
Copy code
https://forum.website.com -
Vérifier les journaux :
-
Caddy :
bash
Copy code
docker logs caddy -
Discourse :
bash
Copy code
tail -f /var/discourse/shared/standalone/log/rails/production.log
-
Dépannage
-
Discourse ne répond pas :
-
Assurez-vous que Discourse est lié au port
8880. -
Vérifiez que le conteneur est connecté à
caddy_net:bash
Copy code
docker network inspect caddy_net
-
-
Erreurs SSL Caddy :
- Vérifiez les journaux de certificats de Caddy dans
/data.
- Vérifiez les journaux de certificats de Caddy dans
-
Problèmes de reconstruction :
-
Assurez-vous que le réseau
caddy_netest actif lors de la reconstruction de Discourse :bash
Copy code
docker network ls
-
Conclusion
Ce guide démontre comment intégrer Discourse, Caddy et WordPress en utilisant Docker Compose et une configuration de proxy inverse. En suivant ces étapes, vous pouvez obtenir une configuration modulaire et sécurisée pour votre propre infrastructure de site Web.