Necesito ayuda para configurar discourse usando Caddy como rproxy

Si no estoy publicando esto en la sección correcta, lo siento.

Estoy usando Oracle Free tier como mi servidor, y tengo una instalación de Ubuntu con un par de contenedores Docker en ejecución.
Estoy usando Caddy, también ejecutándose en Docker, como rproxy para todos mis contenedores.

Ahora necesito configurar Discourse como la última pieza del rompecabezas, pero no estoy seguro de cómo proceder.
He probado e instalado Discourse con una instalación Docker estándar en mi otro servidor de prueba, pero ese es el paquete completo, y si necesito usar Caddy como rproxy, supongo que necesito deshabilitar algunas de las funciones.

Si alguien pudiera indicarme la dirección correcta, lo agradecería mucho.

Esto podría ser útil:

1 me gusta

Creo que eso me puso en el camino correcto. Sin embargo, no estoy seguro de si estoy apuntando a la ruta correcta.

En mi app.yml he configurado mis volúmenes aquí:
Y puedo compilar mi Discourse sin problemas.

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

Y leyendo ese hilo del foro, probé un par de cosas con mi 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
}

Ninguno de ellos funciona, pero realmente no estoy seguro de si lo estoy haciendo bien xD

¿Cómo estás iniciando Caddy?

Esta línea del tema original necesita ser ajustada para tu directorio para que esto funcione. A menos que el directorio correcto esté montado en el contenedor de Caddy, este no podrá ver el socket creado por Discourse.

¡Ah, te refieres a que necesito montar el socket de discourse en caddy? ¡Tiene sentido!

Sin embargo, intenté algo más anoche.
Cuando se inicia discourse, se ejecuta en una red de puente de Docker. Si simplemente agrego la red docker-default, en la que se encuentran todos mis otros contenedores, incluido Caddy, entonces puedo simplemente agregarlo a caddy como hago con todos mis otros contenedores.

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

Sin embargo, no pude averiguar dónde se define la red de Docker en todos esos archivos yml. Si pudiera cambiarla de puente a que se ejecute en el predeterminado de Docker, todo estaría solucionado para mí.

Esto podría ser útil:

Si bien es para Nginx Proxy Manager, describe el proceso de incorporar contenedores a la red bridge predeterminada.

1 me gusta

¡Sí! ¡Funciona!

Tuve que cambiar un par de cosas, pero es casi como el primer hilo que enlazaste.

En Caddyfile tuve que escribirlo así
Lo cual es un poco diferente a lo escrito en el hilo.

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

y he añadido el volumen, lo que por supuesto tiene sentido ahora que lo pienso.
Estoy 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

¡Muchas gracias por la ayuda!

1 me gusta

Eso se debe probablemente a cambios de Caddy en sí mismos. La imagen enlazada en el tema todavía funciona con la configuración proporcionada, hasta donde yo sé.

1 me gusta