Una solución OpenSource, Full Responsive, con CMS integrado, capacidad para varios editores, Newsletter y suscriptores.
Primero lo primero: La musica correcta para la tarea.
Sugerencia del chef: Lista de Spotify
1. Creamos una cuenta de AWS.
Vale, ahora que ya estamos en el mood, toca crearse una cuenta gratuita de AWS.
2. Creamos una Instancia EC2
En este ejemplo llamaremos a la instancia ‘blog’. Erigiremos un Ubuntu Server 20.04 LTS (Free tier eligible). Elegimos servidor Ubuntu 20.04.
En Instance type, vamos a elegir una t2.micro 1GiB Memory (Free tier elegible).
RAM t2.micro 1GiB
Key pair(login) crearemos una nueva llave para conectarnos a la consola por ssh.
Elige el nombre de la llave y el formato .pem
Una vez creada la llave, se descargara {tuLlave}.pem. Si estas en iOS o Linux puedes saltar al siguiente paso. Si estas en Windows, tienes que copiar la llave al directorio c:/users/{tuUsuario}/.ssh/
Memoria 30gb
Dejamos los Networks Settings tal cual vienen por defecto por ahora. En Configure Storage. Asigna 30gb de espacio y deja todo lo demás como está. Dale a Launch Instance.
Perfecto. Nuestra instancia se genero con éxito.
3. Conectarse por consola
Ahora entramos nuestra instancia, y le damos al botón de Connect. Una vez dentro, elegiremos SSH Client y seguiremos los pasos indicados en la imagen para conectarnos.
Seguimos los pasos para conectarnos por ssh.
No te olvides de abrir la terminal desde el directorio de donde esta la llave que acabas de generar:ssh -i «tuLlave.pem» ubuntu@tuPublicDns
Deberías de ver como te conectas a la consola de Ubuntu 🚀
Logramos conectarnos a la consola de Ubuntu.ç
ROUND 2
nginx, mysql & ghost
4. Crear usuario server
Tenemos que crear un usuario que tenga acceso de admin sobre nginx, mysql y ghost. Para ello, vamos a escribir:# Creamos usuario ‘server’ sudo adduser server # Añadimos al usuario al grupo de superuser para tener los derechos de admin sudo usermod -aG sudo server # Ahora nos logueamos con el usuario server sudo su – server
Al crear el usuario, puede que te pida ingresar una contraseña. Luego te pedirá datos como nombre, teléfono, fax, etc que puedes simplemente darle al enter y pasarlos.
Notaras como cambiaste de Ubuntu a server en la consola. Lo siguiente es actualizar antes de instalar lo que sigue.sudo apt-get update sudo apt-get upgrade
Los de toda la vida.
5. Instalar & Configurar Nginx
sudo apt-get install nginx
Instalamos nginxsudo ufw allow ‘Nginx Full’
Abre el firewall para aceptar HTTP y HTTPS
6. Instalar & Configurar MySQL
sudo apt-get install mysql-server
Instalamos MySQLsudo mysql
Para establecer una contraseña
7. Instala Node 16
Ghost solo funciona con la versión de Node 16.x, así que vamos a asegurarnos de bajar solo esa.curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash sudo apt-get install -y nodejs
8. Instalar Ghost
sudo npm install ghost-cli@latest -g
Instalamos el Ghost-CLI que nos dejara todo configurado fácil y rápido.
9. Crear directorio para Ghost
sudo mkdir -p /var/www/blog
Puedes cambiar el nombre del sitio «blog» al nombre que prefieras.sudo chown servidor:servidor /var/www/blog
Establecemos a server como dueño del directorio.sudo chmod 775 /var/www/blog
Establecemos los permisos correctos.cd /var/www/blog
Y por ultimo, nos dirigimos al directorio recién creado.
10. Instalamos Ghost
ghost install
Instalamos Ghost.
La instalación va a un tiempo, sobre todo dependiendo de la cantidad de memoria RAM que le hayamos asignado al principio. Si bien en la documentación oficial que con tan solo 1GiB es suficiente, en mi experiencia 2GiB es realmente lo mínimo que necesitas para que corra decentemente, la diferencia con el de 4GiB tampoco es tan grande y permite escalar en caso de tener un sistema varios editores y muchos visitantes.
Los valores a completar del config son:
- BlogUrl: Ingresa aqui tu dominio, si todavi no lo tiene, no te preocupes deja el valor por defecto luego vamos a cambiarlo
- MySQL hostname: localhost
- MySQL username: root
- MySQL password: la contraseña que elegiste en el paso 6
- Ghost database name: deja el valor por defecto
Luego de eso, dale Yes a todo. Deberías ver que ghost esta corriendo en verde.ghost ls
Deberías de poder ver que todo esta corriendo correctamente.
11. IP Elástica y Dominio
Genial! Ahora solo tenemos que ir a Network & Security > Elastic IPs y le damos al botón de Allocate Elastic IP address. Una vez creada, entramos en ella y le damos a Associate Elastic IP address y seleccionamos nuestra instancia.
Esta IP, es la que usaremos para dirigir nuestro Dominio de donde sea que lo tengamos alojado. Yo en mi caso uso Namecheap que creo que tiene un excelente servicio de soporte y precios muy competitivos.
Para redireccionar su dominio, lo único que tienen que hacer es agregar un record del tipo A apuntando hacia la IP recién creada.
12. Abrir los puertos
Network & Security > Security Groups: seleccionas tu grupo (que se creo automáticamente cuando hiciste la instancia) le das al botón de Edit inbound rules y copias estos valores:
13. Última configuración de Ghost 🛠
Ahora en al terminal, escribe lo siguiente. Si aun no tienes dominio puedes reemplazarlo por la IP del paso 11.ghost config url https://{tuDominio}
Establecemos a donde apuntara el sitio.ghost config nginx
Reconfiguramos el Nginx.ghost config ssl
Creamos en instalamos los certificados SSL.ghost restart
Reiniciamos Ghost para actualizar los cambios.
Ahora si van a su dominio https://tuDominio.com/ghost podrás acceder a tu panel de admin y terminar la configuración. Puedes crear tu primer post de inmediato para ver cómo se ve.
Cuéntame si sigues los pasos para crear tu blog con este tutorial y cualquier duda puedes escribirme mediante mi Linkedin, ¡Conectemos!
Jean-François Gutierrez, del Dev-Team de My Tech Plan.