Todos los sistemas en funcionamiento 21 criptomonedas aceptadas · Monero bienvenido Política sin KYC
ChainVPS

Publicación · sin KYC

Aloja Ghost en un VPS offshore

Ghost es una plataforma de publicación rápida y moderna que puedes alojar tú mismo en minutos en un VPS offshore, manteniendo tus textos, suscriptores y pagos fuera de las nubes de terceros.

Qué es

Ghost es un CMS de código abierto basado en Node.js, diseñado para blogs, newsletters y sitios de membresía, con suscripciones por correo electrónico nativas, niveles de pago y un editor Markdown limpio. Se distribuye como una imagen Docker oficial respaldada por MySQL 8, sirviendo tu sitio a través de su propio puerto detrás de un proxy inverso.

Por qué alojarlo offshore

Ejecutar Ghost en un VPS sin KYC y de pago con criptomonedas significa que tu publicación no está ligada a una cuenta que pueda vincularse a tu identidad, ser desplataformada o entregada bajo solicitud. Con ubicaciones offshore de nivel privacidad y ancho de banda ilimitado, mantienes el control total de tu contenido, tu lista de miembros y tus pagos de Stripe, sin que un proveedor de hosting controle tus palabras.

El despliegue

Una configuración de referencia funcional

Copia esto en una nueva instancia de ChainVPS. Sustituye los marcadores de posición y ponlo en marcha.

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

Puertos que debes abrir

PuertoProtocoloPropósito
2368TCPPuerto de la aplicación HTTP de Ghost: mantenlo enlazado a 127.0.0.1 y sírvelo mediante un proxy inverso; nunca lo expongas públicamente
443TCPHTTPS hacia el público a través de tu proxy inverso (Caddy/nginx)
80TCPHTTP para la emisión de certificados ACME/Let's Encrypt y redirección a 443
3306TCPMySQL: solo en la red interna de Docker, nunca lo publiques en el host

Dimensionamiento adecuado

Qué plan necesitas

Ligero

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

Blog personal o una newsletter pequeña. Ghost + MySQL caben cómodamente; añade 1 GB de swap como red de seguridad.

Medio

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

Publicación activa con membresías de pago, artículos con muchas imágenes y envíos de correo regulares. Margen suficiente para la caché de MySQL y los picos de tráfico.

Alto

Dedicado (núcleos dedicados, 16 GB+ RAM, NVMe)

Sitio de alto tráfico o configuración multi-blog con grandes bibliotecas multimedia; aísla MySQL y sirve los archivos multimedia mediante caché para una latencia constante.

Mejores ubicaciones: Para una publicación que debe permanecer en línea sin importar la presión de retirada de contenido, elige una ubicación de nivel privacidad de ChainVPS: Islandia (IS), Suiza (CH), Rumanía (RO), Moldavia (MD), Países Bajos (NL) o Luxemburgo (LU). CH e IS cuentan con fuertes protecciones a la prensa y la libertad de expresión, además de leyes de privacidad sólidas; NL y LU ofrecen un alcance de baja latencia hacia audiencias europeas con ancho de banda ilimitado, ideal para sitios con muchas imágenes y newsletters.

Blíndalo

Lista de verificación de hardening

  • Nunca publiques el puerto 2368 ni el 3306 en 0.0.0.0. Mantén Ghost enlazado a 127.0.0.1 y MySQL únicamente en la red interna de Docker; expón el sitio exclusivamente a través de un proxy inverso TLS (Caddy emite certificados Let's Encrypt automáticamente, o usa nginx + certbot).
  • Configura la variable de entorno `url` con tu dominio https:// real antes del primer arranque. Ghost incrusta la URL en los enlaces de los recursos, y cambiarla después requiere actualizar la base de datos y vaciar la caché.
  • Protege el panel de administración: exige una contraseña larga y única en la configuración inicial, y restringe /ghost/ mediante una lista blanca de IPs o autenticación básica en el proxy si publicas desde ubicaciones fijas. Activa la autenticación de dos factores (2FA) integrada de Ghost para el personal.
  • Haz copias de seguridad programadas de ambos volúmenes: exporta MySQL (`docker compose exec db mysqldump -u ghost -p ghostdb`) y archiva el volumen de contenido (`/var/lib/ghost/content`, que contiene imágenes y temas). Envía las copias cifradas al almacenamiento de ChainVPS o fuera del servidor.
  • Fija las etiquetas de las imágenes (ghost:5-alpine, mysql:8.0) y actualiza de forma deliberada con `docker compose pull && docker compose up -d`; prueba la compatibilidad de temas e integraciones antes de saltar a versiones mayores de Ghost, y mantén activa en el borde la protección DDoS incluida con el plan.

Preguntas

Hosting Ghost — Preguntas frecuentes

¿Necesita Ghost MySQL, o puedo usar SQLite?

Ghost 5 requiere oficialmente MySQL 8 para producción. El archivo compose anterior configura MySQL 8 automáticamente. SQLite solo es compatible para desarrollo local y no se recomienda para un despliegue offshore en producción.

¿Cómo añado HTTPS?

Ghost por sí mismo sirve HTTP plano en el puerto 2368. Coloca un proxy inverso delante: Caddy es el más sencillo (emite y renueva certificados Let's Encrypt automáticamente), o usa nginx con certbot. Apúntalo a 127.0.0.1:2368 y configura la `url` de Ghost con tu dominio https://.

¿Puedo enviar newsletters sin dejar un rastro de identidad con terceros?

Ghost envía el correo a los miembros a través de cualquier proveedor SMTP o Mailgun. En una configuración centrada en la privacidad, usa un relay SMTP que acepte pago con criptomonedas o un registro mínimo, y configúralo mediante las variables de entorno mail__. El correo transaccional igualmente necesita un dominio de envío entregable con SPF/DKIM.

¿Cuánto disco necesitaré?

El núcleo de Ghost junto con MySQL ocupa poco (unos pocos cientos de MB). El crecimiento real proviene de las imágenes y vídeos subidos al volumen de contenido. Un blog ligero funciona bien con 20-40 GB; los sitios con muchas imágenes o de membresía deberían planificar almacenamiento NVMe y copias de seguridad regulares del volumen de contenido.

¿Sobrevivirá mi sitio a picos de tráfico o ataques DDoS?

Los planes de ChainVPS incluyen protección DDoS en el borde de la red, y el ancho de banda es ilimitado, así que una publicación viral no generará cargos por exceso. Para picos de solicitudes, activa el almacenamiento en caché a nivel de proxy de las vistas de página offshore y pasa a un plan VPS Pro o dedicado si observas concurrencia alta de forma constante.

Desplegar Ghost
en los próximos 60 segundos.

Ancho de banda ilimitado · DDoS incluido · 21 criptomonedas · sin KYC.