Centminmod + discourse

Olá.
Eu adoraria experimentar a plataforma Discourse na minha stack LEMP do Centminmod ( https://centminmod.com/ )

Consegui instalar o Docker com sucesso

docker -v
Docker version 20.10.17, build 100c701

Segui o guia de instalação ( https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md) com alguns pequenos ajustes - Eu não tenho um servidor em nuvem em si. É a minha instância gerenciada.

Também tive que editar manualmente o meu /containers/app.yml.

Depois de fazer isso, não recebo erros ao reconstruir o aplicativo via ./launcher rebuild app

No entanto, também não consigo me conectar à instância do Docker. Ele acessa a página de destino do meu virtual host.

O que preciso fazer para fazer o proxy reverso da configuração do nginx para o Docker? Ou alguém escreveu um guia para instalar o Discourse no Centminmod?

Obrigado!

Andy

Eu acho que isso seria o mais próximo do que você está procurando Run other websites on the same machine as Discourse .

1 curtida

Consegui uma instalação funcional do Discourse.

Instalar Docker - não abordado aqui
Instalar Discourse -

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

Configurar app.yaml em /var/discource/containers

ajustar app.yml para remover as portas 80+443

## Após fazer alterações neste arquivo, você DEVE reconstruir
## /var/discourse/launcher rebuild app
##
## TENHA MUITO CUIDADO AO EDITAR!
## ARQUIVOS YAML SÃO SUPER SUPER SENSÍVEIS A ERROS DE ESPAÇAMENTO OU ALINHAMENTO!
## visite http://www.yamllint.com/ para validar este arquivo conforme necessário

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

## quais portas TCP/IP este contêiner deve expor?
## Se você quiser que o Discourse compartilhe uma porta com outro servidor web como Apache ou nginx,
## veja https://meta.discourse.org/t/17247 para detalhes
expose:

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

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Defina db_shared_buffers para um máximo de 25% da memória total.
  ## será definido automaticamente pelo bootstrap com base na RAM detectada, ou você pode substituir
  db_shared_buffers: "128MB"
 
  ## pode melhorar o desempenho da classificação, mas adiciona uso de memória por conexão
  #db_work_mem: "40MB"
 
  ## Qual revisão Git este contêiner deve usar? (padrão: tests-passed)
  #version: tests-passed

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

  ## Quantas requisições web simultâneas são suportadas? Depende da memória e dos núcleos da CPU.
  ## será definido automaticamente pelo bootstrap com base nas CPUs detectadas, ou você pode substituir
  UNICORN_WORKERS: 2

  ## TODO: O nome de domínio que esta instância do Discourse responderá
  ## Considere isso como o que se transforma em server_name em uma configuração Nginx
  DISCOURSE_HOSTNAME: 'your.site.com'
 
  ## Descomente se você quiser que o contêiner seja iniciado com o mesmo
  ## nome de host (-h option) especificado acima (padrão "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Lista de e-mails separados por vírgula que se tornarão administradores e desenvolvedores
  ## na inscrição inicial, exemplo 'user1@example.com,user2@example.com'
  ## Este e-mail é o que você usará para fazer login na instância do Discourse pela primeira vez.
  DISCOURSE_DEVELOPER_EMAILS: 'email@your.com'

  ## TODO: O servidor de e-mail SMTP usado para validar novas contas e enviar notificações
  DISCOURSE_SMTP_ADDRESS: smtp.your.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: email@your.com
  DISCOURSE_SMTP_PASSWORD: addpasswordhere  # AVISO um caractere '#' na senha pode causar problemas!
  ## Não haveria nenhum problema como este com a senha se este fosse um objeto JSON

  ## O endereço CDN para esta instância do Discourse (configurado para puxar)
  ## veja https://meta.discourse.org/t/14857 para detalhes
  #DISCOURSE_CDN_URL: //discourse-cdn.example.com

## O contêiner Docker é sem estado; todos os dados são armazenados em /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Plugins vão aqui
## veja https://meta.discourse.org/t/19157 para detalhes
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

## Quaisquer comandos personalizados para executar após a compilação
run:
  - exec: echo "Início dos comandos personalizados"
  ## Se você quiser definir o endereço de e-mail 'De' para seu primeiro registro, descomente e altere:
  ## Após receber o primeiro e-mail de inscrição, comente a linha novamente. Só precisa ser executado uma vez.
  - exec: rails r "SiteSetting.notification_email='noreply@khophi.co'"
  - exec: echo "Fim dos comandos personalizados"

Encontre /usr/local/nginx/conf/conf.d
edite a configuração relevante

adicione

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;

para location / {

remova include /usr/local/nginx/conf/503include-only.conf; com um #

também

#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.