Como criei e configurei meu blog Ghost com Docker no Azure 🛠️


Depois de testar algumas abordagens, decidi escrever esse post para compartilhar como configurei meu blog usando o Ghost, rodando via Docker, hospedado diretamente no Azure.

📦 Escolhendo o Ghost e a imagem Docker

Tudo começou no site oficial do Ghost (ghost.org), onde encontrei a seção para desenvolvedores com as opções de instalação. Após testar alguns métodos, optei por usar a imagem Docker oficial, que o próprio time do Ghost mantém e atualiza. É uma forma prática e escalável de rodar o CMS com mais controle.

🧱 Configurando o banco de dados

Em seguida, criei uma instância do MySQL, que o Ghost usa para armazenar todas as postagens, usuários, configurações e dados do site.

☁️ Subindo o Ghost no Azure via Web App for Containers

Com o banco pronto, fui para o portal da Azure, onde criei um Web App com o tipo de publicação “Contêiner”. Lá, informei o nome da imagem, a origem (Docker Hub), e a versão que escolhi: index.docker.io/ghost:5.128.1-alpine

Essa é uma imagem leve, baseada no Alpine Linux, perfeita para produção.

⚙️ Configurando variáveis de ambiente

Com o container rodando, o próximo passo foi configurar as variáveis de ambiente da aplicação, que são essenciais para o Ghost funcionar corretamente com banco de dados e envio de e-mails.

No portal Azure, acessei: Configurações > Configurações do aplicativo

E adicionei as seguintes variáveis:

Banco de Dados (MySQL):

  • database__client: mysql
  • database__connection__host: SEU_HOST
  • database__connection__user: SEU_USUÁRIO
  • database__connection__password: SUA_SENHA
  • database__connection__database: NOME_DO_BANCO
  • url: https://seudominio.com

E-mails com Brevo (ex-Sendinblue):

  • mail__transport: SMTP
  • mail__options__host: smtp-relay.brevo.com
  • mail__options__port: 587
  • mail__options__auth__user: SEU_EMAIL_BREVO
  • mail__options__auth__pass: SENHA_SMTP_BREVO

Com isso, o Ghost passou a conseguir se conectar ao banco de dados e enviar e-mails (como recuperação de senha e convites de usuário) usando o Brevo via SMTP.

🌐 Adicionando um domínio personalizado

Ainda nas configurações do Web App, fui em:

CopiarEditarDomínios personalizados > Adicionar domínio personalizado

Ali selecionei a opção “Todos os outros serviços” (meu domínio está em um provedor externo) e configurei o domínio que queria usar.

O Azure me forneceu dois registros para validação do domínio:

  • Um registro do tipo A
  • Um registro do tipo TXT

Bastou ir até o painel do meu provedor de domínio e adicionar esses valores para que o Azure pudesse validar e ativar meu domínio personalizado.

🔒 Configurando o certificado SSL

Após validar o domínio, ativei o HTTPS com um clique:

  • Marquei a opção “Certificado Gerenciado do Serviço de Aplicativo”
  • Tipo de TLS/SSL: SSL SNI

Pronto — domínio validado e com certificado SSL ativo gratuitamente, direto pelo Azure.

✅ Acesso ao painel e finalização

Com tudo pronto, acessei:

https://seudominio.com/ghost

Ali criei a conta de administrador e comecei a configurar o blog do jeito que queria: tema, menus, páginas e tudo mais.

✍️ Considerações finais

Apesar de parecer muita coisa, o processo é bem tranquilo depois que você entende como o Ghost e o Azure funcionam juntos. A vantagem é ter uma estrutura leve, escalável e com baixo custo de manutenção — além de total controle sobre temas e integrações futuras.

Se quiser montar um blog também usando Ghost + Docker + Azure, esse caminho é um ótimo ponto de partida!

:P

Subscribe to Blog NH

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe