De onde vem o %{base_url}?

Olá a todos,

Estou executando um container Discourse usando a imagem Bitnami. O problema que experiencio é que todos os templates usam example.com para a variável %{base_url} e não consigo mudar isso.

Criei um ticket de suporte na Bitnami, mas enquanto pesquisava, nunca encontrei em lugar nenhum na internet nada sobre a variável base_url.

Alguém pode me ajudar a esclarecer isso? Estou muito confuso sobre essa variável.

Não damos suporte a instalações usando imagens Bitnami. A recomendação é instalar o Discourse seguindo o guia de instalação padrão se você quiser suporte.

1 curtida

Eu entendo, mas isso está na base, não na minha pergunta: De onde vem o %{base_url} ou onde ele é baseado? Eu nem consigo encontrar isso na documentação ou no fórum do Discourse.

Como altero o %{base_url} de example.com para o meu próprio domainname para que meus modelos de e-mail sejam analisados como deveriam?

Parece que algo deu errado com sua instalação se isso não estiver sendo preenchido com o domínio correto.

Como já foi mencionado, pode ser mais fácil para você seguir a instalação padrão e restaurar um backup se você ainda não conseguiu descobrir o que deu errado.

1 curtida

Por que está sendo preenchido e não apenas definido como uma variável?

Parece que você precisa editar o Docker Compose YAML antes de puxá-lo: containers/bitnami/discourse/docker-compose.yml at main · bitnami/containers · GitHub (linhas 31 e 51)

Eu sei, mas alterá-lo após a primeira execução não o corrige, então me pergunto se ele precisa ser feito desde a primeira execução, pois gostaria de saber se ele define este host (nome) estaticamente ou não.

O contêiner Bitnami também está compilando o Discourse completamente do zero ao atualizá-lo, como o oficial?

A variável parece estar definida aqui:

A variável current_hostname é definida aqui:

A variável force_hostname é declarada no template de configurações do site aqui:

Como está oculta, não pode ser alterada nas configurações de administrador. Como outras configurações do site, presumo que seria armazenada no banco de dados. Procurei em um dump do banco de dados da nossa instância e force_hostname não está definida nem declarada. Em nosso YAML oficial do contêiner Discourse, temos DISCOURSE_HOSTNAME atribuído, mas acho que esta é uma configuração global, não uma configuração do site, então isso parece ser aplicado de forma diferente.

current_hostname parece ser obtido da conexão atual, ou seja, dinâmico. Mas não consigo ver onde exatamente é definida, provavelmente um módulo/gem externo:

Não tenho certeza do que o contêiner Bitnami faz com a configuração DISCOURSE_HOST, então, pelo menos, você poderia procurar em seu banco de dados por force_hostname até descobrirmos mais sobre como DISCOURSE_HOSTNAME do contêiner oficial é armazenado e aplicado.

Obrigado pelo seu apoio até agora! Eu estava, em comparação com suas descobertas, pensando também em configurar minha instalação como um único multisite. Isso poderia talvez fazer funcionar, mas é de fato uma questão de tentar resolver as coisas onde tenho a sensação de que o Bitnami não muda nada no Discourse em si; então, por que esse problema de fato.

Preciso verificar meus dumps.

Não consigo encontrar isso nos meus dumps de banco de dados.

Ok, então atualmente não consigo entender onde/como ambas as variantes de contêiner do Discourse aplicam internamente o nome do host com base no YAML do contêiner.

A composição do contêiner Bitnami não inclui outro servidor web, mas expõe a porta web do Discourse diretamente? O contêiner oficial tem outro Nginx na frente do Discourse, algo que eu realmente queria me livrar, se possível, pois já temos outro servidor web Apache fora do contêiner.