Implante o Ghost em um VPS em minutos
Lance uma publicação Ghost auto-hospedada em um VPS que você controla por completo. O Ghost-CLI configura Node.js, MySQL, um proxy reverso NGINX e o SSL Let’s Encrypt em uma única sessão guiada — sem plano gerenciado, sem comissão sobre a sua receita.
O que você pode fazer com o Ghost auto-hospedado em um VPS
O Ghost é um CMS headless open-source feito para publicações e newsletters. Rode-o em um VPS, e você passa a ser dono de toda a stack — editor, área de membros e envio de e-mails — em vez de pagar uma mensalidade por hospedagem gerenciada.
Tenha sua própria publicação e newsletter
Fique com 100% da receita das suas assinaturas
Domine toda a stack com acesso root
Envie newsletters com o Mailgun
Entregue temas personalizados e rápidos
Escale nos seus próprios termos
Escolha um plano de VPS para o Ghost
O Ghost, o MySQL e o NGINX usam cerca de 1,2 GB em repouso, então a RAM é a especificação que importa, e o VPS Start é o mínimo que cabe com folga. Comece com um VPS Start para um blog pessoal ou uma newsletter pequena; passe para um VPS Medium quando ela já for uma publicação ativa com uma lista de assinantes em crescimento. Todos os planos incluem um endereço IPv4 dedicado, backups semanais gratuitos, KVM e acesso root/SSH total. RAM, disco e outras especificações são escaláveis depois. Uma ressalva no plano Start: as portas SMTP de saída são bloqueadas por padrão — abra um ticket de suporte para habilitar o e-mail antes de configurar sua newsletter (uma verificação KYC pode ser aplicada).
Incremente os recursos do seu servidor VPS
Confira como você pode alterar a configuração do seu VPS. Você pode adquirir espaço em disco adicional, aumentar o desempenho da CPU, adicionar RAM e aproveitar serviços adicionais sem precisar mudar para um novo plano.
Como implantar o Ghost em um VPS
Uma instalação completa do Ghost 6.x em um servidor Ubuntu 24.04 novo leva cerca de 15 minutos. Primeiro, aponte um registro DNS A para o IP do seu VPS — o Let’s Encrypt precisa que o DNS esteja resolvendo antes de emitir seu certificado SSL. O hardening e a configuração de e-mail estão listados como próximos passos no final. Os passos abaixo cobrem a instalação principal; para o passo a passo completo, com todos os comandos e capturas de tela, veja nosso guia completo de instalação do Ghost em um VPS no blog.
Step 01 — Crie um usuário sudo não root
O Ghost-CLI se recusa a rodar como root. Não dê ao usuário o nome ghost — isso entra em conflito com o usuário de sistema que o Ghost-CLI cria durante a instalação.
adduser ghostadminusermod -aG sudo ghostadminStep 02 — Instale as dependências e abra o firewall
Instale o NGINX, o MySQL e os pacotes do Node.js, depois libere o tráfego web:
su - ghostadminsudo apt-get update && sudo apt-get upgrade -ysudo apt-get install -y nginx mysql-server ca-certificates curl gnupgsudo ufw allow 'Nginx Full'sudo ufw allow OpenSSHsudo ufw enableMude o usuário root do MySQL para autenticação por senha, o que o Ghost exige:
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'your_secure_password'; FLUSH PRIVILEGES;"Step 03 — Instale o Node.js 22 LTS
O Ghost 6.x roda somente no Node.js v22. Instale-o pelo NodeSource:
sudo mkdir -p /etc/apt/keyringscurl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpgecho "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.listsudo apt-get update && sudo apt-get install -y nodejsStep 04 — Instale o Ghost-CLI
Instale globalmente o instalador oficial como root, depois volte para o seu usuário:
exitnpm install ghost-cli@latest -gsu - ghostadminStep 05 — Crie o diretório de instalação e rode o instalador
O Ghost fica em /var/www/ghost com o seu usuário como proprietário:
sudo mkdir -p /var/www/ghostsudo chown ghostadmin:ghostadmin /var/www/ghostsudo chmod 775 /var/www/ghostcd /var/www/ghostghost installResponda ao assistente com a URL do seu blog (domínio https:// completo), os dados do MySQL e sim nos prompts de NGINX, SSL e systemd. O Ghost-CLI configura o proxy reverso, solicita um certificado Let’s Encrypt e inicia o Ghost como serviço systemd.
Step 06 — Coloque no ar e confirme as portas
Seu painel de administração agora está em https://yourdomain.com/ghost/. As portas 80 e 443 são públicas via NGINX; o Ghost (2368) e o MySQL (3306) permanecem vinculados ao localhost, então não são necessárias regras de firewall extras. Abra a URL do admin para criar sua conta e publicar seu primeiro post.
Próximos passos (antes de ir para produção): faça o hardening do SSH, conecte o Mailgun para as newsletters, configure o monitoramento e rode ghost backup antes de cada ghost update — reverta uma atualização ruim com ghost update --rollback.
Problemas comuns
- O Ghost-CLI se recusa a rodar como root. Isso é intencional — o Ghost-CLI não se instala na conta root. Crie primeiro um usuário sudo não root e rode a instalação a partir dele. Também não dê a esse usuário o nome ghost, pois ele colide com o usuário de sistema que o Ghost-CLI cria durante a instalação.
- A etapa de SSL é ignorada durante a instalação. Se o Ghost-CLI exibir “SSL certs cannot be generated for IP addresses, skipping”, você rodou a instalação contra um IP em vez de um domínio. Aponte um registro DNS A para o seu VPS antes de instalar e informe o domínio https:// completo como URL do blog — o Let’s Encrypt precisa que o DNS esteja resolvendo para emitir o certificado.
- O Ghost não consegue se conectar ao MySQL. No Ubuntu, o usuário root do MySQL 8 usa autenticação por socket por padrão, que o Ghost não consegue usar. Mude para autenticação por senha com mysql_native_password e use essas credenciais no assistente de instalação.
- Os e-mails da newsletter não são enviados. O SMTP de saída é bloqueado por padrão no plano Start, então a entrega via Mailgun falha até que ele seja liberado. Abra um ticket de suporte para desbloquear as portas SMTP (uma verificação KYC pode ser aplicada) e depois adicione sua chave de API do Mailgun em Settings → Newsletters.
- A instalação falha na versão errada do Node.js. O Ghost 6.x roda somente no Node.js v22 LTS e se recusa a instalar no Node 18 ou 20. Instale a v22 pelo NodeSource e confirme com node --version antes de rodar ghost install. Observe também que o MySQL 8 é obrigatório — o MariaDB não é suportado em produção.