Centminmod + discourse

Hola.
Me encantaría probar la plataforma Discourse en mi stack LEMP de Centminmod (https://centminmod.com/).

He logrado instalar Docker con éxito.

docker -v
Docker version 20.10.17, build 100c701

He seguido la guía de instalación (discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub) con algunos ajustes menores: no tengo un servidor en la nube como tal. Es mi instancia administrada.

También tuve que editar mi /containers/app.yml manualmente.

Una vez que he hecho esto, no obtengo errores al reconstruir la aplicación a través de ./launcher rebuild app

Sin embargo, tampoco puedo conectarme a la instancia de Docker. Accede a la página de destino de mi host virtual.

¿Qué necesito hacer para poder hacer proxy inverso de la configuración de Nginx a Docker? ¿O alguien ha escrito una guía para instalar Discourse en Centminmod?

¡Gracias!

Andy

Supongo que esto sería lo más cercano a lo que buscas Run other websites on the same machine as Discourse.

1 me gusta

He logrado obtener una instalación funcional de Discourse.

Instalar Docker - no cubierto aquí
Instalar Discourse -

git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

Configurar app.yaml en /var/discource/containers

ajustar app.yml para eliminar los puertos 80+443

## Después de realizar cambios en este archivo, DEBE reconstruir
## /var/discourse/launcher rebuild app
##
## ¡TENGA MUCHO CUIDADO AL EDITAR!
## ¡LOS ARCHIVOS YAML SON MUY, MUY SENSIBLES A ERRORES EN ESPACIOS EN BLANCO O ALINEACIÓN!
## visite http://www.yamllint.com/ para validar este archivo según sea necesario

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.socketed.template.yml"
  #- "templates/web.ratelimited.template.yml"

## ¿Qué puertos TCP/IP debe exponer este contenedor?
## Si desea que Discourse comparta un puerto con otro servidor web como Apache o nginx,
## consulte https://meta.discourse.org/t/17247 para obtener detalles
expose:

  #- "25654:80"   # http
  #- "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Establezca db_shared_buffers en un máximo del 25% de la memoria total.
  ## será establecido automáticamente por bootstrap según la RAM detectada, o puede anularlo
  db_shared_buffers: "128MB"
 
  ## puede mejorar el rendimiento de ordenación, pero aumenta el uso de memoria por conexión
  #db_work_mem: "40MB"
 
  ## ¿Qué revisión de Git debe usar este contenedor? (predeterminado: tests-passed)
  #version: tests-passed

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## ¿Cuántas solicitudes web concurrentes son compatibles? Depende de la memoria y los núcleos de CPU.
  ## será establecido automáticamente por bootstrap según las CPU detectadas, o puede anularlo
  UNICORN_WORKERS: 2

  ## TODO: El nombre de dominio al que responderá esta instancia de Discourse
  ## Considere esto como lo que se transforma en server_name en una configuración de Nginx
  DISCOURSE_HOSTNAME: 'your.site.com'
 
  ## Descomente si desea que el contenedor se inicie con el mismo
  ## nombre de host (-h option) que se especifica arriba (predeterminado "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Lista de correos electrónicos separados por comas que se convertirán en administradores y desarrolladores
  ## en el registro inicial, por ejemplo, 'user1@example.com,user2@example.com'
  ## Este correo electrónico es el que usará para iniciar sesión en la instancia de Discourse por primera vez.
  DISCOURSE_DEVELOPER_EMAILS: 'email@your.com'

  ## TODO: El servidor de correo SMTP utilizado para validar nuevas cuentas y enviar notificaciones
  DISCOURSE_SMTP_ADDRESS: smtp.your.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: email@your.com
  DISCOURSE_SMTP_PASSWORD: addpasswordhere  # ADVERTENCIA: un carácter '#' en la contraseña puede causar problemas.
  ## No habría ningún problema como el anterior con la contraseña si este es un objeto JSON

  ## La dirección CDN para esta instancia de Discourse (configurada para tirar)
  ## consulte https://meta.discourse.org/t/14857 para obtener detalles
  #DISCOURSE_CDN_URL: //discourse-cdn.example.com

## El contenedor Docker no tiene estado; todos los datos se almacenan en /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Los plugins van aquí
## consulte https://meta.discourse.org/t/19157 para obtener detalles
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## Cualquier comando personalizado para ejecutar después de la construcción
run:
  - exec: echo "Comienzo de comandos personalizados"
  ## Si desea establecer la dirección de correo electrónico 'De' para su primer registro, descomente y cambie:
  ## Después de recibir el primer correo electrónico de registro, vuelva a comentar la línea. Solo necesita ejecutarse una vez.
  - exec: rails r "SiteSetting.notification_email='noreply@khophi.co'"
  - exec: echo "Fin de comandos personalizados"

Buscar en /usr/local/nginx/conf/conf.d
editar la conf relevante

añadir

proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
                proxy_set_header Host $http_host;
                proxy_http_version 1.1;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;

a location / {

eliminar include /usr/local/nginx/conf/503include-only.conf; con un #

también

#include /usr/local/nginx/conf/pre-staticfiles-local-yourdomain.com.conf;
  #include /usr/local/nginx/conf/pre-staticfiles-global.conf;
  #include /usr/local/nginx/conf/staticfiles.conf;
  #include /usr/local/nginx/conf/drop.conf;
  #include /usr/local/nginx/conf/errorpage.conf;
  #include /usr/local/nginx/conf/vts_server.conf;

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.