Todos os sistemas operando normalmente 21 criptomoedas aceitas · Monero bem-vindo Política No-KYC
ChainVPS

Publicação · sem KYC

Hospede Ghost em um VPS offshore

O Ghost é uma plataforma de publicação rápida e moderna que você pode hospedar por conta própria em minutos em uma VPS offshore, mantendo seus textos, assinantes e pagamentos fora das nuvens de terceiros.

O que é

O Ghost é um CMS de código aberto em Node.js criado para blogs, newsletters e sites de assinatura, com inscrições por e-mail nativas, planos pagos e um editor Markdown limpo. Ele é distribuído como uma imagem Docker oficial com suporte do MySQL 8, servindo seu site em sua própria porta atrás de um proxy reverso.

Por que hospedar offshore

Rodar o Ghost em uma VPS sem KYC e paga com cripto significa que sua publicação não fica presa a uma conta que possa ser vinculada à sua identidade, banida ou entregue mediante solicitação. Com localizações offshore voltadas à privacidade e banda larga ilimitada, você mantém controle total sobre seu conteúdo, sua lista de assinantes e seus repasses do Stripe, sem que um provedor de hospedagem controle suas palavras.

A implantação

Uma configuração de referência funcional

Copie isto para uma instância nova do ChainVPS. Substitua os placeholders e depois coloque no ar.

docker-compose.yml
services:
  ghost:
    image: ghost:5-alpine
    restart: always
    ports:
      # Bind to localhost only; terminate TLS in a reverse proxy (nginx/Caddy)
      - "127.0.0.1:2368:2368"
    environment:
      url: https://blog.example.com
      NODE_ENV: production
      database__client: mysql
      database__connection__host: db
      database__connection__port: 3306
      database__connection__user: ghost
      database__connection__password: CHANGE_ME_DB_PASSWORD
      database__connection__database: ghostdb
      # Optional outbound SMTP for member/newsletter email:
      # mail__transport: SMTP
      # mail__options__host: smtp.example.com
      # mail__options__port: 587
      # mail__options__auth__user: [email protected]
      # mail__options__auth__pass: CHANGE_ME_SMTP
    volumes:
      - ghost-content:/var/lib/ghost/content
    depends_on:
      - db

  db:
    image: mysql:8.0
    restart: always
    command: --default-authentication-plugin=caching_sha2_password
    environment:
      MYSQL_ROOT_PASSWORD: CHANGE_ME_ROOT_PASSWORD
      MYSQL_DATABASE: ghostdb
      MYSQL_USER: ghost
      MYSQL_PASSWORD: CHANGE_ME_DB_PASSWORD
    volumes:
      - ghost-db:/var/lib/mysql

volumes:
  ghost-content:
  ghost-db:

# Deploy:
#   apt-get update && apt-get install -y docker.io docker-compose-v2
#   docker compose up -d
# Then point a reverse proxy (Caddy/nginx) at 127.0.0.1:2368 to add HTTPS,
# and set `url:` to your real https:// domain before first boot.

Firewall

Portas a abrir

PortaProtocoloFinalidade
2368TCPPorta HTTP do aplicativo Ghost - mantenha vinculada a 127.0.0.1 e use proxy reverso, nunca exponha publicamente
443TCPHTTPS para o público através do seu proxy reverso (Caddy/nginx)
80TCPHTTP para emissão de certificados ACME/Let's Encrypt e redirecionamento para a 443
3306TCPMySQL - somente rede interna do Docker, nunca publique para o host

Dimensionamento adequado

Qual plano você precisa

Leve

VPS Nano/Small (1-2 vCPU, 2 GB RAM)

Blog pessoal ou uma newsletter pequena. O Ghost + MySQL cabem confortavelmente; adicione 1 GB de swap como margem de segurança.

Médio

VPS Pro (2-4 vCPU, 4-8 GB RAM)

Publicação ativa com assinaturas pagas, posts com muitas imagens e envios de e-mail regulares. Margem para o cache do MySQL e picos de tráfego.

Pesado

Dedicated (dedicated cores, 16 GB+ RAM, NVMe)

Site de alto tráfego ou configuração multi-blog com bibliotecas de mídia grandes; isole o MySQL e sirva a mídia via cache para uma latência consistente.

Melhores localizações: Para uma publicação que precisa continuar online independente de pressões de remoção, escolha uma localização ChainVPS voltada à privacidade: Islândia (IS), Suíça (CH), Romênia (RO), Moldávia (MD), Países Baixos (NL) ou Luxemburgo (LU). CH e IS possuem fortes proteções à imprensa/liberdade de expressão e leis de privacidade; NL e LU oferecem baixa latência para o público leitor europeu, com banda larga ilimitada para sites com muitas imagens e newsletters.

Bloqueie tudo

Checklist de hardening

  • Nunca publique a porta 2368 ou 3306 em 0.0.0.0. Mantenha o Ghost vinculado a 127.0.0.1 e o MySQL apenas na rede interna do Docker; exponha o site exclusivamente através de um proxy reverso TLS (o Caddy emite certificados Let's Encrypt automaticamente, ou use nginx + certbot).
  • Defina a variável de ambiente `url` com seu domínio https:// real antes da primeiríssima inicialização. O Ghost incorpora a URL nos links dos recursos, e alterá-la depois exige uma atualização no banco de dados e a limpeza do cache.
  • Proteja o painel de administração: exija uma senha longa e exclusiva na primeira configuração, e restrinja /ghost/ por lista de IPs permitidos ou autenticação básica no proxy, caso você publique a partir de localizações fixas. Ative a 2FA integrada para a equipe do Ghost.
  • Faça backup dos dois volumes em uma programação regular: exporte o MySQL (`docker compose exec db mysqldump -u ghost -p ghostdb`) e arquive o volume de conteúdo (`/var/lib/ghost/content`, que armazena imagens e temas). Envie backups criptografados para o armazenamento ChainVPS ou para fora do servidor.
  • Fixe as tags das imagens (ghost:5-alpine, mysql:8.0) e atualize de forma deliberada com `docker compose pull && docker compose up -d`; teste a compatibilidade de temas/integrações antes de pular para versões principais do Ghost, e mantenha ativada, na borda da rede, a proteção contra DDoS que já vem incluída no plano.

Perguntas

Hospedagem Ghost — FAQ

O Ghost precisa do MySQL, ou posso usar o SQLite?

O Ghost 5 exige oficialmente o MySQL 8 em produção. O arquivo compose acima já configura o MySQL 8 automaticamente. O SQLite só é suportado para desenvolvimento local e não é recomendado para uma implantação offshore em produção.

Como eu adiciono HTTPS?

O próprio Ghost serve HTTP simples na porta 2368. Coloque um proxy reverso na frente - o Caddy é o mais simples (ele emite e renova certificados Let's Encrypt automaticamente), ou use o nginx com certbot. Aponte-o para 127.0.0.1:2368 e defina o `url` do Ghost para o seu domínio https://.

Posso enviar newsletters sem deixar rastros de identidade em serviços de terceiros?

O Ghost envia e-mails para assinantes através de qualquer provedor SMTP ou do Mailgun. Em uma configuração focada em privacidade, use um relay SMTP que aceite cripto ou tenha cadastro mínimo, e configure-o através das variáveis de ambiente mail__. O e-mail transacional ainda precisa de um domínio de envio confiável, com SPF/DKIM configurados.

De quanto espaço em disco eu vou precisar?

O núcleo do Ghost mais o MySQL ocupam pouco espaço (algumas centenas de MB). O crescimento real vem das imagens e vídeos enviados no volume de conteúdo. Um blog leve funciona bem com 20-40 GB; sites com muitas imagens ou de assinatura devem planejar armazenamento NVMe e backups regulares do volume de conteúdo.

Meu site vai resistir a picos de tráfego ou ataques DDoS?

Os planos ChainVPS incluem proteção contra DDoS na borda da rede, e a banda é ilimitada, então um post viral não vai gerar cobranças extras. Para picos de requisições, ative o cache no nível do proxy para as visualizações de página offshore e migre para um plano VPS Pro ou dedicado se você observar alta concorrência de forma constante.

Implante Ghost
nos próximos 60 segundos.

Banda ilimitada · DDoS incluído · 21 criptomoedas · sem KYC.