Estou tentando instalar o Discourse. Configurei meu banco de dados, Redis e SMTP. Para o PostgreSQL, não houve problema com o socket Unix, mas o Redis parece estar reclamando.
Configurações do Redis:
sudo sed -i 's/^# unixsocket /unixsocket /' /etc/redis/redis.conf
sudo sed -i 's/^# unixsocketp.*/unixsocketperm 770/' /etc/redis/redis.conf
sudo sed -i 's/^# maxmemory <bytes>/maxmemory 1024mb/' /etc/redis/redis.conf
sudo sed -i 's/^# maxmemory-policy noeviction/maxmemory-policy allkeys-lru/' /etc/redis/redis.conf
sudo cat /etc/redis/redis.conf | grep "^maxmemory\|^unixsocket"
Configurar o socket do Redis: nano /var/www/discourse/config/discourse.conf redis_host = "/var/run/redis/redis-server.sock"
Se você deseja instalar o Discourse para produção, deve usar a Instalação Padrão Oficial do Discourse. Se deseja instalar um ambiente de desenvolvimento, há tópicos para cada sistema operacional.
Apenas para esclarecer, estou totalmente operacional e tudo está funcionando, mas precisei definir o host do Redis como “localhost”, pois a conexão via socket Unix não funcionou.
Segui este guia: Install Discourse Forum on Ubuntu 18.04 Without Docker
Como o guia está um pouco desatualizado, precisei fazer alguns ajustes aqui e ali, mas como tenho bastante familiaridade com Linux, consegui resolver sem problemas.
Minha instalação está em um container LXC do Proxmox rodando Ubuntu 20.04.
Acho que será bastante difícil instalar ou manter uma instância de produção que não use Docker. Existem vários pontos complicados na interação entre o nginx e o Discourse que serão difíceis de manter sem o contêiner Docker que eles fornecem, mas, suponho, tudo é possível.
Isso dificilmente vai mudar. Se o modelo atual não suporta o uso de um socket, isso significa que o CDCK não utiliza um socket Redis em sua hospedagem ou em sua instalação Docker suportada.
Não tenho certeza de qual problema você está tentando resolver ao não usar a configuração suportada ./launcher e docker, mas é provável que você encontre vários outros problemas também.
Não tenho certeza se você já usou o Proxmox, mas, na minha opinião, ele é fantástico! Posso acessar a interface web e, com um único clique, criar um backup. Depois, posso fazer alterações e, se algo der errado, basta selecionar o backup e clicar em restaurar.
Além disso, você obtém desempenho muito melhor com um contêiner LXC do que com uma imagem Docker; não há comparação.
Não estou dizendo que o Docker é ruim, pois, como você mesmo destacou, ele torna a configuração extremamente fácil.
Aposto que, para as coisas que você o usou, ele foi ótimo!
Tenho quase certeza de que as pessoas já fizeram essa comparação e que há 100 a 1.000 vezes mais imagens rodando no Docker do que no LXC (que eu usei, em tempos idos).
Não estou dizendo que o Proxmox seja ruim, mas se você quer que o Discourse seja fácil de configurar e manter, você usará o Docker. Como referência, se você pedisse ajuda no Marketplace com um orçamento inferior a US$ 1.000, eu não responderia.
O objetivo do tópico era perguntar sobre o status atual do socket Unix do Redis. Não era para debater se LXC ou Docker são mais adequados para o Discourse. Eu apenas mencionei por que não estou usando Docker porque parecia que você poderia ter curiosidade sobre isso. Para a pessoa comum, o Docker vence sempre, porque é simples. Esse é também o motivo pelo qual, por muito tempo, tantos aplicativos usavam MySQL em vez de PostgreSQL. Mas eu absolutamente amo o PostgreSQL.
Até encontrar algum tipo de problema devastador, vou definitivamente continuar com o LXC, ele simplesmente tem um desempenho excelente! Também não poderia concordar mais que, se você acha que pode precisar de suporte externo, provavelmente deve se ater ao que são as configurações padrão recomendadas. Eu mesmo tenho 20 serviços diferentes, cada um em seus próprios contêineres LXC, rodando em um único nó Proxmox, e todos estão funcionando perfeitamente, e isso é apenas um único nó em um cluster Proxmox. Backups automatizados, monitoramento, migração entre nós do cluster, tudo isso são coisas ótimas
Já mencionei que minha instalação ocorreu sem problemas? Até agora, adoro o Discourse. Fora a necessidade de usar localhost para o Redis em vez do socket Unix, não tive nenhum problema. Vou tentar lembrar de voltar a postar daqui a alguns meses para avisar se isso ainda for o caso
Ha! NÃO! Incrível! Fico feliz que você tenha resolvido! Parece que, se você estiver disposto a usar localhost para o Redis, estará livre de problemas daqui para frente.
Eu acho que é usermod -aG redis discourse ou alternativamente unixsocketperm 777 para que o unicorn tenha permissões para acessar o socket. Certifique-se também de que o diretório onde o socket será criado existe e tem o usuário redis como proprietário. No entanto, o pacote comum redis-server baseado em serviço systemd no Ubuntu garante isso.