Hospedagem própria gratuita (com ressalvas!) com Oracle Cloud

https://blogs.oracle.com/developers/install-run-discourse-for-free-in-the-oracle-cloud

Esta postagem de blog é do ano passado. Não vi nenhuma menção aqui; acho que a Oracle, como empresa de hospedagem, está fora do radar da maioria das pessoas.

Portanto, antes de postar, decidi testar por conta própria para ver se é realmente viável. Criei um site de demonstração:

https://www.opendiscussion.pw

Fiz o cadastro de uma conta na Oracle Cloud. O sistema informou que levaria 15 minutos para validar a conta, mas precisei esperar dois dias devido a um problema com meu cartão de crédito (é solicitado um cartão de crédito para validação).

Segui as instruções da postagem de blog e, em seguida, as instruções normais de instalação do Docker do Discourse. Quase funcionou na primeira tentativa! Tive um problema com a configuração de e-mail. Acredito que seja a única parte que não está explicada corretamente na postagem de blog. Tive que ler a documentação. A documentação da Oracle é muito boa.

Aqui está o que este nível inclui:

  • 2 (duas) VMs
    A VM possui 1/8 de um OCPU com a capacidade de usar recursos adicionais de CPU. VM.Standard.E2.1.Micro. 2,0 GHz AMD EPYC 7551
    Memória: 1 GB

  • Largura de banda: 10 TB

  • Armazenamento: 100 GB de volume em bloco

  • E-mail: 1.000 / mês (SMTP não está incluído)

Vale destacar que a configuração oferecida pela Oracle inclui ~40 GB de disco (para sistema operacional e dados do usuário) mais uma partição de swap de 8 GB. Não há necessidade de um arquivo de swap. E como é possível obter duas VMs no nível “sempre gratuito”, separar o contêiner do banco de dados é uma opção de escalabilidade.

(Por alguma razão, o PaaS de banco de dados gratuito lá não é o Postgres. :wink: )

Obrigado por essas informações interessantes!

Eu também tive um problema. Tentei várias vezes sem sucesso (mensagem do meu banco de “código de segurança incorreto”, embora o código estivesse correto).
Tentei em outro navegador e funcionou; apenas usei outro endereço de e-mail… E agora já se passaram várias horas aguardando a validação da minha conta.

É gratuito, mas o processo de registro é um pouco chato… :sweat_smile:

O que exatamente estava errado na parte do e-mail? Consegui instalar o Discourse na Oracle Cloud, mas não consigo, de jeito nenhum, fazer o envio de e-mails funcionar. Quando vou registrar o usuário administrador na instalação do Discourse, nunca recebo um e-mail.

O discourse-doctor consegue se conectar ao servidor SMTP da Oracle, mas o e-mail não é enviado.

Configurei vários remetentes aprovados, só por precaução. Meu e-mail de administrador, noreply@[domínio do fórum] e noreply@[domínio principal]. Qual é o importante?

Também adicionei um registro TXT nas configurações DNS do meu domínio com a string SPF recomendada.

Foi complicado. Se eu me lembro corretamente, o que funcionou para mim foi alterar o containers/app.yml:

  ## Se quiser definir o endereço de e-mail 'De' para sua primeira inscrição, descomente e altere:
  ## Após receber o primeiro e-mail de inscrição, comente a linha novamente. Ela só precisa ser executada uma vez.
  - exec: rails r "SiteSetting.notification_email='noreply@opendiscussion.pw'"

Obrigado pela resposta!

Infelizmente, isso não ajudou (mesmo após reconstruir o aplicativo).

Posso perguntar como estão seus registros TXT?

Você também não descomentou a configuração “START TLS”?

Então, o que você fez em relação ao e-mail? Você precisa pagar por ele? (porque você disse que o SMTP não está incluído)

O SMTP está incluso. Houve um tempo em que não era assim em todas as regiões. É apenas extremamente difícil de configurar … :neutral_face:

Você sabe se há um log SMTP em algum lugar no Oracle Cloud? Gostaria de saber por que o e-mail não é enviado, mesmo conseguindo contatar o servidor SMTP sem problemas. Por que não estou autorizado ou qualquer que seja o problema.

A Oracle Cloud possui um serviço SMTP, mas ele não está incluído no nível gratuito permanente. É muito barato (USD 0,085 / 1000 e-mails), então eu o uso mesmo assim. Eles ainda não me cobraram nada.

https://www.oracle.com/cloud/networking/email-delivery.html#pricing

https://docs.cloud.oracle.com/en-us/iaas/Content/Email/Concepts/overview.htm

Minha culpa, você está correto. Não percebi que fui colocado em um teste para a versão paga, já que me inscrevi no plano gratuito.

Existem serviços SMTP alternativos gratuitos que funcionam com o Discourse, mantendo o próprio Discourse na Oracle Cloud?

Acho que o único que resta é Pricing | Mailjet. É realmente uma pena que a máfia do Vale do Silício tenha roubado os e-mails gratuitos da internet :smiley:

Depois de 1 mês tentando fazer minha conta de teste funcionar, com o suporte ao chat dizendo que não podia me ajudar, e o suporte por e-mail que também não ajudou e só respondeu uma vez, dizendo que iriam pegar algumas informações sobre minha conta e entrar em contato, mas nunca o fizeram…

Pequei um amigo para abrir uma conta para mim e funcionou perfeitamente em menos de 15 minutos.

Então tentei instalar o Discourse e tive muita dificuldade. Segui o tutorial de instalação do Discourse no Oracle, mas, por algum motivo, não consegui me conectar à porta 443.

Tentei instalar o Discourse em uma imagem Ubuntu padrão, mas não consegui me conectar pelas portas 80 nem 443, por motivos desconhecidos.

Voltei às instruções oficiais; no início não funcionou (a conexão em ambas as portas falhou), mas reiniciei o Docker e, então, mágica: conectei às duas portas.

Então, minha experiência não foi das melhores, seja por problemas meus ou do Oracle.

Mas, no final, agora tenho uma instalação do Discourse gratuita, online, obviamente não a mais rápida, mas funcionando. :+1:t6:

Para quem quiser seguir o mesmo tutorial, há um pequeno erro na parte do firewall do servidor.

Em vez de:
sudo firewall-cmd —reload
Você deve escrever:
sudo firewall-cmd --reload

Por padrão, você não pode instalar o Discourse porque as conexões nas portas 80 e 443 não são permitidas. Você precisa permitir ambas na lista de segurança (no painel de controle do Oracle) e no firewall da instância (via SSH).

Veja como fazer isso em uma instalação padrão do Ubuntu (é um pouco diferente do guia oficial deles, que usa outra imagem Linux).

No painel do Oracle:

Após criar sua instância do Ubuntu, vá para Detalhes da Instância e clique no link da Sub-rede:

Clique na Lista de Segurança:

Clique em Adicionar Regras de Entrada, selecione o protocolo TCP, defina o CIDR de Origem como 0.0.0.0/0 e o intervalo de portas de destino como 80,443.
Valide clicando em “Adicionar Regras de Entrada”.

Verifique se as regras foram adicionadas na lista de segurança:

Na linha de comando do seu servidor via SSH:

Adicione estas regras ao iptables:

iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -i ens3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

O comando adicionará as regras no local correto. Se você simplesmente as anexar às regras existentes sem especificar o número da linha (5), isso não funcionará, pois elas serão substituídas por uma regra anterior existente de “rejeitar tudo”.

Salve as regras para que elas permaneçam após uma reinicialização:

netfilter-persistent save

Agora você pode instalar o Discourse! :tada:

Olá, você recomenda a Oracle Cloud para um site em produção com tráfego intenso?
Obrigado

Acho que você pode hospedar uma pequena comunidade se você e seus usuários não se importarem muito com a velocidade do fórum.
Mas eu não recomendaria, pois é possível encontrar hospedagem barata (~5$/mês) com especificações muito melhores.

@Hector, o https://www.opendiscussion.pw ainda está hospedado em um servidor gratuito?

Oi, para hospedagem barata de ~5$/mês, você está se referindo ao droplet de 5$ da Digital Ocean?

Sim, por exemplo.

Pessoalmente, gosto da Hetzner porque eles não são caros e seus servidores são cobrados por hora, o que é ótimo para testar coisas por curtos períodos. Mas acredito que eles tenham servidores apenas na Europa.

Sim, ainda está no servidor gratuito. Ele tem zero de tráfego, então não posso dizer do que é capaz. Também o uso para desenvolvimento. Até agora, tudo bem.

Para o Hetzner VPS, também terei que instalar o LAMP, fazer atualizações do servidor, tomar cuidado com hackers etc.?

Já no Digital Ocean, por outro lado, tudo já vem pronto; não preciso proteger o servidor, certo? Preciso apenas instalar e gerenciar o Discourse? Essa é a verdadeira diferença entre o Digital Ocean e qualquer outro VPS?

O Digital Ocean é como um VPS gerenciado?

Obrigado!
Deb