Aiuto nella configurazione di Discourse usando Caddy come rproxy

Mi scuso se non sto postando nella sezione corretta.

Sto usando Oracle Free tier come server e ho un’installazione di Ubuntu con alcuni container Docker in esecuzione.
Sto usando Caddy, anch’esso in esecuzione in Docker, come rproxy per tutti i miei container.

Ora devo configurare Discourse come ultimo pezzo del puzzle, ma non sono sicuro di come procedere.
Ho testato e installato Discourse con una normale installazione Docker sul mio altro server di test, ma quello è il pacchetto completo, e se ho bisogno di usare Caddy come rproxy, devo disabilitare alcune delle funzionalità, immagino?

Se qualcuno potesse indicarmi la giusta direzione, lo apprezzerei molto.

Questo potrebbe essere utile:

1 Mi Piace

Penso di essere sulla strada giusta. Non sono sicuro, però, di indicare il percorso corretto.

Nel mio app.yml ho impostato i miei volumi qui:
E posso compilare il mio Discourse senza problemi.

volumes:
  - volume:
      host: /opt/docker/docker_configs/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /opt/docker/docker_configs/discourse/shared/standalone/log/var-log
      guest: /var/log

E leggendo quel thread del forum, ho provato un paio di cose con il mio Caddyfile.

forum.mydomain.com {
  reverse_proxy unix//opt/docker/docker_configs/discourse/shared/standalone/nginx.http.sock
  import cloudflare
}
forum.mydomain.com {
  reverse_proxy /opt/docker/docker_configs/discourse/shared/standalone/nginx.http.sock
  import cloudflare
}

Nessuno dei due funziona, ma non sono sicuro di farlo nel modo giusto xD

Come stai avviando caddy?

Questa riga dall’argomento originale deve essere adattata alla tua directory affinché funzioni. A meno che la directory corretta non sia montata nel container caddy, questo non può vedere il socket creato da discourse.

Arh, intendi che devo montare il socket di discourse su caddy? Ha senso!

Ho provato qualcos’altro ieri sera.
Quando discourse viene avviato, è in esecuzione in una rete bridge di docker. Se aggiungo semplicemente la rete docker-default, che è quella in cui si trovano tutti i miei altri container, incluso Caddy, allora posso semplicemente aggiungerlo a caddy come faccio con tutti i miei altri container.

forum.mydomain.com {
  reverse_proxy app:80
  import cloudflare
}

Tuttavia, non sono riuscito a capire dove sia definita la rete docker in tutti quei file yml. Se potessi cambiarla da bridge a docker default, tutto sarebbe risolto per me.

Questo potrebbe essere utile:

Sebbene sia per Nginx Proxy Manager, descrive il processo di portare i container sotto il bridge predefinito.

1 Mi Piace

Sì! funziona!

Ho dovuto cambiare un paio di cose, ma è quasi come il primo thread che hai linkato.

Nel Caddyfile ho dovuto scriverlo così
Che è un po’ diverso da quanto scritto nel thread.

forum.mydomain.com {
  reverse_proxy unix//sock/nginx.http.sock
  import cloudflare
}

e ho aggiunto il volume, il che ovviamente ha senso ora che ci penso.
Sto usando docker-compose.

  caddy:
    container_name: Caddy
    build:
      dockerfile: ./caddy-config/Dockerfile
      context: .
    labels:
      com.centurylinklabs.watchtower.enable: "false"
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./docker_configs/caddy/data:/data
      - ./docker_configs/caddy/Caddyfile:/etc/caddy/Caddyfile
      - ./docker_configs/caddy/srv:/srv
      - /var/discourse/shared/standalone:/sock
    restart: always

Grazie mille per l’aiuto!

1 Mi Piace

Ciò è probabilmente dovuto a modifiche upstream in Caddy stesso. L’immagine collegata nell’argomento funziona ancora con la configurazione fornita, per quanto ne so.

1 Mi Piace