Recuperar para um site a partir de multisite

Olá, segui este Multisite configuration with Docker para configurar múltiplos sites. Agora quero voltar a um único site. O que devo fazer além de restaurar o arquivo app.yml?

Eu realmente não entendo o que você está tentando alcançar aqui, mas se quiser mover um site da configuração multisite, você pode fazer isso baixando um backup do multisite e restaurando-o no site independente. Talvez seja necessário fazer algum remapeamento, dependendo de como esse site independente está configurado.

Eu só quero manter o primeiro site e excluir o segundo.

Sim, a abordagem mais simples é fazer um backup do primeiro site, desligar os dois containers (web_only e data) que você pode ter usado ao configurar o multisite, configurar um novo site por meio de ./discourse-setup e, em seguida, restaurar seu backup. Uma solução mais avançada pode incluir a remoção da configuração do segundo site dos arquivos yml, acessar o container de dados para excluir o segundo banco de dados e remover os ativos do segundo site da pasta compartilhada, etc.

Obrigado! Vou tentar o primeiro método.

Olá, estou seguindo o seu segundo método. Removi o banco de dados do segundo site e restaurei o arquivo de configuração app.yml. Porém, não sei como remover os ativos do segundo site da pasta compartilhada; você poderia me ajudar?

Quando atualizo o Discourse, apareço uma página em branco na página de plugins e um erro no console:

Uncaught TypeError: Cannot read property 'extend' of undefined
    at _discourse-rss-poster-422da9e50d576ad45cb7287315e7a35550af3708eb68422bee05813edc01521d.js:188
    at t.module.exports.u.<computed> (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74640)
    at t.module.exports.u.<computed> (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74470)
    at require (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74637)
    at t.customResolve (_application-572c27eef10b724b244ce26553c6fe92b75f44172387b25ef144f338da4faa1e.js:1015)
    at t.resolveRoute (_application-572c27eef10b724b244ce26553c6fe92b75f44172387b25ef144f338da4faa1e.js:1051)
    at t.e [as resolveRoute] (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:43433)
    at t.n.resolve (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:46378)
    at _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:12420
    at e.t.resolve (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:11959)
```\n
Acho que isso se deve ao segundo site, mas não sei como corrigir. Obrigado!

Você pode me ajudar, por favor? @sam

Você terá que compartilhar seu arquivo app.yml, omitindo as senhas. Eu culparia isso por alguma omissão ou erro no seu arquivo app.yml que está causando isso.

## este é o modelo de contêiner Docker Discourse tudo-em-um e autônomo
##
## Após fazer alterações neste arquivo, você DEVE reconstruir
## /var/discourse/launcher rebuild app
##
## TENHA *MUITO* CUIDADO AO EDITAR!
## ARQUIVOS YAML SÃO EXTREMAMENTE 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.ratelimited.template.yml"
## Descomente estas duas linhas se desejar adicionar o Lets Encrypt (https)
#  - "templates/web.ssl.template.yml"
#  - "templates/web.letsencrypt.ssl.template.yml"
  - "templates/web.socketed.template.yml"

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

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Defina db_shared_buffers para no máximo 25% da memória total.
  ## será definido automaticamente pelo bootstrap com base na RAM detectada, ou você pode sobrescrever
  db_shared_buffers: "128MB"

  ## pode melhorar o desempenho de ordenação, mas aumenta o uso de memória por conexão
  #db_work_mem: "40MB"

  ## Qual revisão do 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 sobrescrever
  UNICORN_WORKERS: 2

  ## TODO: O nome de domínio ao qual esta instância do Discourse responderá
  ## Obrigatório. O Discourse não funcionará com um número IP puro.
  DISCOURSE_HOSTNAME: at4am.io

  ## Descomente se quiser que o contêiner seja iniciado com o mesmo
  ## nome de host (opção -h) especificado acima (padrão "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Lista de e-mails separados por vírgula que serão definidos como administradores e desenvolvedores
  ## no primeiro exemplo de cadastro 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'a@gmail.com'

  ## TODO: O servidor SMTP de e-mail usado para validar novas contas e enviar notificações
  ## ENDEREÇO, usuário e senha do SMTP são obrigatórios
  # AVISO: o caractere '#' na senha do SMTP pode causar problemas!
  DISCOURSE_SMTP_ADDRESS: smtp.office365.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: a@outlook.com
  DISCOURSE_SMTP_PASSWORD: "a"
  DISCOURSE_SMTP_AUTHENTICATION: login
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, padrão true)

  ## Se você adicionou o modelo Lets Encrypt, descomente abaixo para obter um certificado SSL gratuito
  LETSENCRYPT_ACCOUNT_EMAIL: a@gmail.com

  ## O endereço CDN para esta instância do Discourse (configurado para buscar)
  ## consulte 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
## consulte 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
          - git clone https://github.com/livc/discourse-rss-poster
            #- git clone https://github.com/paviliondev/discourse-ratings
          - git clone https://github.com/discourse/discourse-data-explorer
          - git clone https://github.com/discourse/discourse-solved

## Quaisquer comandos personalizados para executar após a construçã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 cadastro, comente novamente a linha. Só precisa ser executado uma vez.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fim dos comandos personalizados"

Este é o meu app.yml, obrigado pela ajuda.

Analisando seu erro anterior e o app.yml, muito provavelmente se trata do fork do plugin RSS que você está usando. Algo pode estar quebrado nele, o que provavelmente está causando o problema. Você pode tentar reconstruir após desativar o plugin?

@itsbhanusharma

Se eu comentar este plugin, a página do plugin funciona. Mas antes de eu atualizar o Discourse para a versão mais recente, o plugin funcionava e não tinha problemas.

Então, não tenho certeza se é devido à atualização do Discourse ou ao multisite.

Especialmente, descobri que
https://meta.discourse.org/t/discourse-subscriptions/140818/77?u=livc
tem o mesmo erro no multisite.

Esse plugin é muito importante para o meu site e agora não tenho ideia do que fazer. :pensive:

Se você criou esse plugin, tente corrigi-lo. Se alguém o construiu para você, tente entrar em contato com essa pessoa para que seja corrigido.