Dies ist mein erster Beitrag und ich wollte eine Anleitung bereitstellen, die ich mit unserem Freund ChatGPT erstellt habe, nachdem ich tagelang damit gekämpft hatte, Caddy für den Reverse-Proxy für Discourse, das gemäß den Anweisungen des Büros installiert wurde, zum Laufen zu bringen. Ich habe Informationen aus dem Forum von Caddy hier verwendet. Caddy Discourse Setup. Das mag einfach sein, aber für diejenigen von uns, die gerade erst mit Discourse beginnen, ist es eine ziemliche Anstrengung, es zum Laufen zu bringen.
Vielen Dank für eine offensichtlich großartige Community.
Integration von Discourse, Caddy und WordPress mit Docker-Ports für Reverse Proxy
Übersicht
Diese Anleitung bietet einen Schritt-für-Schritt-Prozess zur Einrichtung von Discourse mit Caddy als Reverse Proxy, zusammen mit einer WordPress-Installation, unter Verwendung von Docker Compose. Diese Anweisungen sind für einen typischen Ubuntu 22 LTS-Server konzipiert und zeigen, wie mehrere Dienste integriert werden können, um eine saubere und reproduzierbare Einrichtung zu gewährleisten.
Voraussetzungen
Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind, bevor Sie fortfahren:
-
Docker und Docker Compose:
bash
apt update && apt install docker docker-compose -y -
Discourse installiert:
- Installieren Sie Discourse über die offiziellen Installationsanweisungen.
-
Domainnamen:
- Eine primäre Domain für WordPress (z. B.
website.com). - Eine Subdomain für Discourse (z. B.
forum.website.com).
- Eine primäre Domain für WordPress (z. B.
Schritt 1: Konfiguration von docker-compose.yml
Die Datei docker-compose.yml definiert Dienste für Caddy (Reverse Proxy), WordPress und MySQL.
Dateispeicherort
Speichern Sie die Datei als /etc/docker-services/docker-compose.yml.
Konfiguration
yaml
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
Schritt 2: Einrichtung des Caddy Reverse Proxy
Caddy leitet Anfragen sowohl an Discourse als auch an WordPress weiter und verwaltet HTTPS-Zertifikate.
Dateispeicherort
Speichern Sie die Konfiguration als /etc/docker-services/Caddyfile.
Konfiguration
caddyfile
website.com {
reverse_proxy wordpress:80
}
forum.website.com {
reverse_proxy app:80
}
Diese Konfiguration stellt sicher:
- Anfragen an
website.comwerden an den WordPress-Container weitergeleitet. - Anfragen an
forum.website.comwerden an den Discourse-Container weitergeleitet.
Schritt 3: Konfiguration von Discourse
Aktualisieren Sie app.yml, um Discourse mit Caddy und dem Docker-Netzwerk zu integrieren.
Dateispeicherort
Befindet sich in /var/discourse/containers/app.yml.
Konfigurationsänderungen
-
Nicht standardmäßige HTTP-Ports freigeben:
yaml
expose: - "8880:80" # http -
SSL-Vorlagen entfernen:
yaml
# - "templates/web.ssl.template.yml" # - "templates/web.letsencrypt.ssl.template.yml" -
Docker-Netzwerk festlegen:
yaml
docker_args: - '--network caddy_net' networks: caddy_net: external: true -
Discourse neu erstellen: Wenden Sie die Änderungen an, indem Sie den Discourse-Container neu erstellen:
bash
cd /var/discourse ./launcher rebuild app
Schritt 4: Dienste bereitstellen
Starten Sie die Docker-Dienste für Caddy und WordPress:
-
Navigieren Sie zum Docker Compose-Verzeichnis:
bash
cd /etc/docker-services -
Starten Sie die Container:
bash
docker compose up -d
Schritt 5: Testen und Verifizierung
-
Laufende Container überprüfen:
bash
docker ps -
WordPress aufrufen: Navigieren Sie zu:
arduino
https://website.com -
Discourse aufrufen: Navigieren Sie zu:
arduino
https://forum.website.com -
Logs überprüfen:
-
Caddy:
bash
docker logs caddy -
Discourse:
bash
tail -f /var/discourse/shared/standalone/log/rails/production.log
-
Fehlerbehebung
- Discourse reagiert nicht:
-
Stellen Sie sicher, dass Discourse an Port
8880gebunden ist. -
Überprüfen Sie, ob der Container mit
caddy_netverbunden ist:bash
docker network inspect caddy_net
-
- Caddy SSL-Fehler:
- Überprüfen Sie die Caddy-Zertifikatsprotokolle in
/data.
- Überprüfen Sie die Caddy-Zertifikatsprotokolle in
- Probleme beim Neuerstellen:
-
Stellen Sie sicher, dass das
caddy_net-Netzwerk aktiv ist, wenn Sie Discourse neu erstellen:bash
docker network ls
-
Fazit
Diese Anleitung zeigt, wie Discourse, Caddy und WordPress mithilfe von Docker Compose und einer Reverse-Proxy-Konfiguration integriert werden. Durch Befolgen dieser Schritte können Sie eine modulare und sichere Einrichtung für Ihre eigene Website-Infrastruktur erreichen.