Así instalé este blog mediante el CMS Ghost en un servidor de Amazon. Configuración de la instancia EC2 con Ubuntu, paso a paso
Pongo en marcha este blog a través de Ghost, una plataforma de publicación digital orientada a creadores de contenido, lanzada en 2013.
Ghost es un CMS (sistema de gestión de contenidos) que ofrece varias opciones de alojamiento en la web. La solución más rápida y sencilla pasa por suscribirse a su servicio Ghost Pro. Al ser un software de código abierto, también puede ubicarse en servidores ajenos; eso sí, con una configuración más compleja.
Para su instalación y ejecución, Ghost necesita un ordenador –una máquina local o remota– con al menos 1 GB de memoria RAM y que pueda gestionar los paquetes NPM y Node.js, entre otros requerimientos técnicos.
Como me gustan los retos elegí la alternativa difícil, pero a la vez menos costosa en inversión. En este post voy a explicar los pasos seguidos para lanzar mi blog de música: sona.ivanleis.eu.
![EC2](https://s3-eu-west-1.amazonaws.com/media.ivanleis.eu/2022/02/Captura-de-pantalla-2021-12-29-a-las-13.13.35.jpg)
En primer lugar abrí una cuenta en AWS, el servicio de computación en la nube de Amazon (en otro post explicaré cómo se alquilan sus ordenadores virtuales o "instancias"). AWS ofrece un año de capa gratuita, ideal para hacer experimentos en la web como este mismo sitio. Nos conectamos a la consola de administración y accedemos al servicio EC2. Vemos en la imagen superior cómo ya tenemos una instancia abierta, es decir una máquina virtual.
Vamos a lanzar una nueva instancia, AWS nos presentará un listado de sistemas operativos disponibles y elegimos Ubuntu Server (64 bits).
![](https://s3-eu-west-1.amazonaws.com/media.ivanleis.eu/2022/02/Captura-de-pantalla-2021-12-29-a-las-13.21.11.jpg)
Nos preguntará el tipo de instancia que queremos según nuestras necesidades de CPU, memoria y almacenamiento. La capa gratuita ofrece td2.micro, con 1 GB de RAM, potencia suficiente para alojar Ghost. Lanzamos la instancia, revisamos los detalles, y acto seguido nos pedirá nuestro par de claves de AWS, o bien crearemos un nuevo par. Aquí aprovechamos unas claves que ya teníamos guardadas.
Regresamos al panel de EC2 y vemos la nueva instancia, con su propia dirección IP pública, en este caso 3.249.75.205. Esta será la máquina donde alojaremos el blog sona.ivanleis.eu.
![](https://s3-eu-west-1.amazonaws.com/media.ivanleis.eu/2022/02/instanciasaws.jpg)
Bien, al lío. Abrimos en nuestro ordenador la consola (Terminal en Mac o Linux, en Windows se pueden usar otros programas SSH como Putty). Y nos conectamos con nuestra llave, o par de claves:
ssh -i "llave.pem" [email protected]
![](https://s3-eu-west-1.amazonaws.com/media.ivanleis.eu/2022/02/Captura-de-pantalla-2021-12-29-a-las-14.10.46.jpg)
Estamos dentro del servidor. Vamos a mantener mismo usuario, ubuntu
. Y ejecutaremos los comandos con sudo
. Primero actualizamos el sistema:
# Update package lists
sudo apt-get update
# Update installed packages
sudo apt-get upgrade
Finalizado el proceso, instalamos la herramienta Nginx para habilitar un servidor web: sudo apt-get install nginx
. Siguiendo el tutorial de Ghost, le otorgamos permisos: sudo ufw allow 'Nginx Full'
. Instalamos además MySQL, un gestor de bases de datos: sudo apt-get install mysql-server
.
Como estamos en Ubuntu 20.04, continuamos con la recomendación de aplicar una contraseña a MySQL para asegurar la compatibilidad con Ghost
# To set a password, run
sudo mysql
# Now update your user with this command
# Replace 'password' with your password, but keep the quote marks!
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
# Then exit MySQL
quit
Siguiente paso es instalar Node.js
# Add the NodeSource APT repository for Node 14
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash
# Install Node.js
sudo apt-get install -y nodejs
Y ahora viene la parte divertida; descargamos la herramienta de instalación Ghost-CLI con el comando sudo npm install ghost-cli@latest -g
![](https://s3-eu-west-1.amazonaws.com/media.ivanleis.eu/2022/02/Captura-de-pantalla-2021-12-29-a-las-16.59.45.jpg)
¡Lo tenemos! Vamos a crear un directorio o carpeta donde irá nuestro blog, dentro de /var/www
que es la opción idónea para servir los contenidos a Internet. Aquí la denomino sona
, le damos los permisos a nuestro usuario y accedemos:
sudo mkdir -p /var/www/sona
sudo chown <user>:<user> /var/www/sona
sudo chmod 775 /var/www/sona
cd /var/www/sona
Ubicados en la carpeta, corremos el instalador con ghost install
. Al tiempo que descarga los paquetes nos hará algunas preguntas:
- Enter your blog URL: ponemos la IP de nuestra instancia
http://3.249.75.205
- Enter your MySQL username:
root
- Enter your MySQL password:
[tucontraseña]
- Enter your Ghost database name:
sona_prod
- Do you wish to set up "ghost" mysql user?:
Yes
- Do you want to set up Nginx?:
Yes
- Do you wish to set up Systemd?
Yes
- Do you want to start Ghost?
Yes
- ✔ Starting Ghost
Bien, tenemos iniciado el servidor Ghost en nuestra carpeta sona
. Solo nos queda un último detalle, asignar permisos de seguridad a la instancia EC2 para que pueda servir el tráfico a la web. Para ello nos dirigimos a nuestra consola de AWS y localizamos "Grupos de seguridad".
Debemos añadir reglas de entrada pulsando en el botón editar reglas de entrada y abrir los puertos 80 y 443 para el acceso por http
y https
. En total son 4 reglas más la que viene por defecto para habilitar el SSH por el puerto 22.
![](https://s3-eu-west-1.amazonaws.com/media.ivanleis.eu/2022/02/reglasdeentradaAWS.jpg)
Si todo ha ido bien, en cuanto accedamos a nuestra IP pública, voilà! Tenemos un blog de Ghost público y listo para ser utilizado.
![](https://sona.ivanleis.eu/content/images/2022/01/roger-harris-Sj_FOinWBPI-unsplash-1.jpg)
![](https://s3-eu-west-1.amazonaws.com/media.ivanleis.eu/2022/02/Captura-de-pantalla-2021-12-29-a-las-17.37.40.jpg)
Y esto es todo por hoy. Si tienes comentarios que hacer sobre este post o alguna otra cuestión en la que te pueda ayudar, te espero en la página de Contacto. Toda la información sobre instalación Ghost la puedes encontrar en inglés aquí:
![](https://ghost.org/resources/content/images/2021/10/ghost-resources-2.png)