Recentemente ho scoperto questo straordinario pannello server per gestire i servizi in esecuzione sul server. Si chiama Coolify, l’ho installato con successo e lo sto attualmente utilizzando per gestire 2 server installando e controllando n8n e altri script.
L’unico servizio mancante in coolify per me è discourse, se poteste aggiungere discourse al servizio coolify sarebbe qualcosa di straordinario, e potremmo d’ora in poi dire a chiunque sia nuovo in questo mondo di installare semplicemente coolify e poi abilitare discourse.
Poiché Discourse non utilizza Docker Compose, ma un proprio launcher, non ero pronto a integrarlo in profondità per essere installato tramite l’interfaccia utente web. Quello che volevo e ho ottenuto è Discourse in esecuzione sul server master di Coolify, instradato attraverso il Traefik integrato al container corretto.
Ciò ha richiesto solo una piccola riconfigurazione di Discourse. Per farlo, in /var/discourse/containers/app.yml ho disabilitato il server socketed e poi ho usato etichette e docker_args per configurare Traefik in modo che trovasse Discourse, gestisse il reindirizzamento HTTP->HTTPS, ottenesse certificati e inoltrasse le richieste da FORUM-HOSTNAME.COM al container Discourse:
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
## Commenta la riga seguente per abilitare l'ascoltatore IPv6
#- "templates/web.ipv6.template.yml"
- "templates/web.ratelimited.template.yml"
## Commenta queste due righe se desideri aggiungere Lets Encrypt (https)
# - "templates/web.ssl.template.yml"
# - "templates/web.letsencrypt.ssl.template.yml"
# - "templates/web.socketed.template.yml"
## quali porte TCP/IP dovrebbe esporre questo container?
## Se vuoi che Discourse condivida una porta con un altro webserver come Apache o nginx,
## vedi https://meta.discourse.org/t/17247 per i dettagli
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
Quindi ./launcher rebuild app, e dopo che ha finito di essere eseguito ho potuto fermare nginx sull’host ed eseguire il container coolify-proxy per occupare le porte 80/443 e ha gestito il resto: la nostra community è attiva sull’host Coolify, dove Coolify gestisce il resto del software.