Ich habe kürzlich dieses bemerkenswerte Server-Panel entdeckt, um die auf dem Server laufenden Dienste zu verwalten. Es heißt Coolify. Ich habe es erfolgreich installiert und verwende es derzeit, um 2 Server zu verwalten, indem ich n8n und andere Skripte installiere und steuere.
Der einzige Dienst, der mir in Coolify fehlt, ist Discourse. Wenn ihr Discourse zu den Coolify-Diensten hinzufügen könntet, wäre das etwas Erstaunliches, und wir könnten von nun an jedem Neuling in dieser Welt sagen, er solle einfach Coolify installieren und dann Discourse aktivieren.
Da Discourse nicht Docker Compose verwendet, sondern einen eigenen Launcher, war ich nicht bereit, es tief in die Web-UI-Installation zu integrieren. Was ich wollte und erreicht habe, ist, dass Discourse auf dem Coolify-Masterserver läuft und über den integrierten Traefik zum richtigen Container geleitet wird.
Dies erforderte nur eine geringfügige Neukonfiguration von Discourse. Um dies zu tun, habe ich in /var/discourse/containers/app.yml den Socket-Server deaktiviert und dann Labels und docker_args verwendet, um Traefik so einzurichten, dass es Discourse findet, die HTTP->HTTPS-Umleitung handhabt, Zertifikate abruft und Anfragen von FORUM-HOSTNAME.COM an den Discourse-Container weiterleitet:
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
## Uncomment the next line to enable the IPv6 listener
#- "templates/web.ipv6.template.yml"
- "templates/web.ratelimited.template.yml"
## Uncomment these two lines if you wish to add Lets Encrypt (https)
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
# - "templates/web.socketed.template.yml"
## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
# - "80:80" # http
# - "443:443" # https
docker_args:
- "--network=coolify"
labels:
app_name: discourse
traefik.enable: true
traefik.http.middlewares.discourse_redirect2https.redirectscheme.scheme: https
traefik.http.middlewares.gzip.compress: true
traefik.http.routers.discourse.rule: Host(`FORUM-HOSTNAME.COM`)
traefik.http.routers.discourse.entrypoints: http
traefik.http.routers.discourse.middlewares: discourse_redirect2https
traefik.http.routers.discourse_secure.rule: Host(`FORUM-HOSTNAME.COM`)
traefik.http.routers.discourse_secure.entrypoints: https
traefik.http.routers.discourse_secure.tls: true
traefik.http.routers.discourse_secure.tls.certresolver: letsencrypt
traefik.http.routers.discourse_secure.middlewares: gzip
traefik.http.services.discourse_secure.loadbalancer.server.port: 80
Dann ./launcher rebuild app, und nachdem es fertig war, konnte ich nginx auf dem Host stoppen und den coolify-proxy-Container starten, um die Ports 80/443 zu belegen, und er erledigte den Rest: Unsere Community ist auf dem Coolify-Host am Laufen, wo Coolify die restliche Software verwaltet.