Implementá Ghost en un VPS en minutos
Lanzá una publicación Ghost autoalojada en un VPS que controlás por completo. Ghost-CLI configura Node.js, MySQL, un proxy inverso NGINX y el SSL de Let’s Encrypt en una sola sesión guiada — sin plan administrado, sin comisión sobre tus ingresos.
Qué podés hacer con Ghost autoalojado en un VPS
Ghost es un CMS headless open source creado para publicaciones y newsletters. Ejecutalo en un VPS y sos dueño de todo el stack — editor, membresías y envío de e-mails — en lugar de pagar una cuota mensual por hosting administrado.
Manejá tu propia publicación y newsletter
Quedate con el 100% de los ingresos de tus suscripciones
Controlá todo el stack con acceso root
Enviá newsletters con Mailgun
Publicá temas propios y rápidos
Escalá en tus propios términos
Elegí un plan de VPS para Ghost
Ghost, MySQL y NGINX usan alrededor de 1,2 GB en reposo, así que la RAM es la especificación que importa, y el VPS Start es el mínimo que entra con comodidad. Empezá con un VPS Start para un blog personal o una newsletter chica; pasá a un VPS Medium cuando ya sea una publicación activa con una lista de suscriptores en crecimiento. Todos los planes incluyen una dirección IPv4 dedicada, backups semanales gratis, KVM y acceso root/SSH completo. La RAM, el disco y otras especificaciones se pueden escalar después. Una advertencia sobre el plan Start: los puertos SMTP de salida están bloqueados por defecto — abrí un ticket de soporte para habilitar el e-mail antes de configurar tu newsletter (puede aplicarse una verificación KYC).
Aumente los recursos de su servidor VPS
Descubra cómo puede cambiar la configuración de su VPS. Puede comprar espacio adicional en disco, aumentar el rendimiento del CPU, agregar RAM y aprovechar servicios adicionales sin tener que cambiar a un nuevo plan.
Cómo implementar Ghost en un VPS
Una instalación completa de Ghost 6.x en un servidor Ubuntu 24.04 nuevo lleva unos 15 minutos. Primero apuntá un registro DNS A a la IP de tu VPS — Let’s Encrypt necesita que el DNS resuelva antes de poder emitir tu certificado SSL. El hardening y la configuración del e-mail figuran como próximos pasos al final. Los pasos de abajo cubren la instalación principal; para el recorrido completo con cada comando y captura de pantalla, mirá nuestra guía completa para instalar Ghost en un VPS en el blog.
Step 01 — Creá un usuario sudo no root
Ghost-CLI se niega a correr como root. No le pongas al usuario el nombre ghost — choca con el usuario de sistema que Ghost-CLI crea durante la instalación.
adduser ghostadminusermod -aG sudo ghostadminStep 02 — Instalá las dependencias y abrí el firewall
Instalá NGINX, MySQL y los paquetes de Node.js, y después permití el tráfico 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 enableCambiá el usuario root de MySQL a autenticación por contraseña, que es lo que Ghost necesita:
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY 'your_secure_password'; FLUSH PRIVILEGES;"Step 03 — Instalá Node.js 22 LTS
Ghost 6.x corre únicamente sobre Node.js v22. Instalalo desde 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 — Instalá Ghost-CLI
Instalá globalmente el instalador oficial como root y después volvé a tu usuario:
exitnpm install ghost-cli@latest -gsu - ghostadminStep 05 — Creá el directorio de instalación y ejecutá el instalador
Ghost vive en /var/www/ghost con tu usuario como propietario:
sudo mkdir -p /var/www/ghostsudo chown ghostadmin:ghostadmin /var/www/ghostsudo chmod 775 /var/www/ghostcd /var/www/ghostghost installRespondé el asistente con la URL de tu blog (dominio https:// completo), los datos de MySQL y sí en los prompts de NGINX, SSL y systemd. Ghost-CLI configura el proxy inverso, solicita un certificado de Let’s Encrypt e inicia Ghost como servicio systemd.
Step 06 — Salí a producción y confirmá los puertos
Tu panel de administración ahora está en https://yourdomain.com/ghost/. Los puertos 80 y 443 son públicos vía NGINX; Ghost (2368) y MySQL (3306) siguen atados a localhost, así que no hacen falta reglas de firewall extra. Abrí la URL del admin para crear tu cuenta y publicar tu primer post.
Próximos pasos (antes de producción): endurecé el SSH, conectá Mailgun para las newsletters, configurá el monitoreo y ejecutá ghost backup antes de cada ghost update — revertí una actualización fallida con ghost update --rollback.
Problemas frecuentes
- Ghost-CLI se niega a correr como root. Es a propósito — Ghost-CLI no se instala bajo la cuenta root. Creá primero un usuario sudo no root y corré la instalación desde ahí. Tampoco le pongas a ese usuario el nombre ghost, porque choca con el usuario de sistema que Ghost-CLI crea durante la instalación.
- El paso de SSL se saltea durante la instalación. Si Ghost-CLI muestra “SSL certs cannot be generated for IP addresses, skipping”, corriste la instalación contra una IP en lugar de un dominio. Apuntá un registro DNS A a tu VPS antes de instalar e ingresá el dominio https:// completo como URL de tu blog — Let’s Encrypt necesita que el DNS resuelva para emitir el certificado.
- Ghost no puede conectarse a MySQL. En Ubuntu, el usuario root de MySQL 8 usa autenticación por socket por defecto, que Ghost no puede usar. Cambialo a autenticación por contraseña con mysql_native_password y usá esas credenciales en el asistente de instalación.
- Los e-mails de la newsletter no se envían. El SMTP de salida está bloqueado por defecto en el plan Start, así que la entrega vía Mailgun falla hasta que se habilite. Abrí un ticket de soporte para desbloquear los puertos SMTP (puede aplicarse una verificación KYC) y después agregá tu API key de Mailgun en Settings → Newsletters.
- La instalación falla por una versión equivocada de Node.js. Ghost 6.x corre únicamente sobre Node.js v22 LTS y se niega a instalarse en Node 18 o 20. Instalá la v22 desde NodeSource y confirmá con node --version antes de ejecutar ghost install. Tené en cuenta también que se requiere MySQL 8 — MariaDB no está soportado para producción.