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:mysqldatabase__connection__host:SEU_HOSTdatabase__connection__user:SEU_USUÁRIOdatabase__connection__password:SUA_SENHAdatabase__connection__database:NOME_DO_BANCOurl:https://seudominio.com
E-mails com Brevo (ex-Sendinblue):
mail__transport:SMTPmail__options__host:smtp-relay.brevo.commail__options__port:587mail__options__auth__user:SEU_EMAIL_BREVOmail__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