Apuntes mientras aprendo sobre software y computadoras.

diseño web

Cómo crear un entorno de desarrollo local para Ghost en Linux

En este apunte práctico vamos a revisar cómo crear un entorno de desarrollo local para Ghost.

Esto nos va a permitir crear sitios utilizando ese sistema de gestión de contenido, todo eso sin salir de nuestro equipo con Linux.

Ya en la ocasión anterior estuvimos haciendo algo similar cuándo estudiamos LAMP, el entorno para crear y probar sitios en WordPress localmente también con Linux.

Por eso sin más vueltas vamos a nuestro tema.

¿Qué es Ghost?

La mayorías de las cosas que siguen las estoy haciendo con ayuda de la documentación de Ghost.

Se desprende de todo esto que Ghost es un una herramienta que nos permite publicar contenido en internet. Siendo más exacto es un “sistema de gestión de contenido” (CMS en inglés).

Entonces nos permite crear de forma rápida un sitio, por ejemplo un blog, que utiliza como estilo una planilla o tema intercambiable. Y nos permite utilizar un panel de control para organizar el proyecto.

Ghost y WordPress son dos opciones de código abierto. En su interior Ghost tiene de marco Node.js, mientras que Wordpres utiliza PHP.

La ventaja de Ghost por sobre otras alternativas parece radicar en qué muchas opciones se encuentran disponibles desde el principio. Por ejemplo cuenta con un sistema de suscripciones sin necesidad de agregar plugins o complementos extra.

Antes de instalar Ghost en nuestro equipo

Existen al menos dos formas de utilizar Ghost en nuestra máquina:

  1. Instalar Ghost desde el código fuente
  2. Agregar Ghost de forma local por medio del programa instalador

La primera opción parece estar dedicada más bien a la necesidad de trabajar directamente con el código del programa. Por eso vamos a revisar mejor la segunda opción.

Todo esto nos va a servir para ensayar con la plataforma, modificando y creando temas sin necesidad de un servidor conectado a internet.

Ya dije que estoy haciendo todo esto en Linux, aunque descontando algunos detalles lo mismo aplica para otros sistemas operativos. Antes de continuar necesitamos conseguir algunas otras cosas.

Instalar Node.js

Nodejs es una plataforma que sirve para utilizar Javascript en nuestra máquina.

Lo más seguro es que nuestro equipo Linux ya tiene alguna alguna versión en su interior. De todas formas para instalar Node.js podemos usar el comando:

sudo apt install nodejs

Y ahora podemos probar este comando para conocer que versión tenemos:

node -v

En mi caso eso da por resultado:

v20.16.0

Puede no ser la última versión disponible, pero se encuentra dentro de las versiones que funciona con Ghost.

Instalar npm

Este es un gestor de paquetes. Es similar a “apt”, en el sentido que nos va a permitir instalar programas y nos va ayudar a facilitar la instalación de Ghost.

Podemos instalar npm en el equipo con el comando:

sudo apt install npm

Ahora si usamos en la terminal:

npm

Vamos a recibir por respuesta algunas de las formas en que podemos utilizar el comando.

Cómo instalar Ghost en nuestro equipo

Instalar Ghost-CLI

Ghost trae una herramienta que automatiza gran parte de su instalación y configuración.

Para instalar esa herramienta utilizamos el comando:

npm install ghost-cli@latest -g

Ahora podemos revisar que todo salió correctamente y conocer opciones con:

ghost help

Cómo crear un nuevo directorio para mi proyecto

Esto requiere una explicación un poco más larga de lo que esperaba, por favor no abandones el sitio.

Necesitamos instalar el programa en la misma carpeta que va a contener nuestro proyecto, pero… ¿Dónde tengo que instalar los proyectos de Ghost?

En un primer momento pensé que crear el proyecto en mi directorio Home era una buena idea, pero eso resultó en un error del que voy a escribir luego. Alcanza con decir que usar nuestro directorio personal para este tipo de tareas no es la mejor solución.

La otra opción que se me ocurrió fue crear el proyecto dentro del directorio que utiliza el servidor Apache, esto es: “/var/www/html”. Pero preferí no hacerlo para no mezclar los espacios donde guardo distintos proyectos.

Es importante mencionar que la documentación de Ghost recomienda utilizar el directorio “/var” para guardar los archivos de nuestros sitios

Pero esa recomendación está dirigida a un servidor Ubuntu con el objetivo de publicar el sitio en internet. Es una instalación de “producción” distinta a la que nos interesa.

Finalmente me decidí a crear un espacio dentro de la carpeta raíz, en el directorio srv.

El nombre de mi primer proyecto es “ghost_blog”, por lo que voy a utilizar el siguiente comando para crearlo en el espacio correcto:

sudo mkdir -p /srv/www/ghost_blog

Luego agrego mi usuario como cuenta encargada de ese directorio:

sudo chown user:user /srv/www/ghost_blog  

En el lugar de “user” va cada vez el nombre de mi cuenta personal.

Modifico los permisos del directorio con el comando:

sudo chmod 775 /srv/www/ghost_blog

Y entro a ese directorio para completar después el último paso de la instalación:

cd /srv/www/ghost_blog

Es importante recordar que no estoy dando permisos recursivos para todo lo que se encuentra en el directorio “www”, solo para lo que se encuentra dentro del proyecto actual.

Cada vez que quiera crear una nueva carpeta de proyecto voy a tener que replicar estos pasos, solo que agregando el nombre del nuevo directorio. No es algo complejo y va a evitar errores inesperados.

Por otra parte si intento instalar el programa en un directorio que no se encuentra vacío va a resultar en un error: “Current directory is not empty, Ghost cannot be installed here”.

Simplemente tengo que recordar empezar cada proyecto nuevo en una carpeta nueva creada para eso.

Instalar Ghost en la carpeta del proyecto

Ahora para completar la instalación, y ya en el directorio de mi proyecto, utilizo el comando:

ghost install local

Y con eso ya puedo dar por terminada la instalación.

Empezar a desarrollar con Ghost de forma local

Inmediatamente luego de terminar la instalación puedo visitar mi nuevo sitio utilizando este enlace desde cualquier navegador de internet:

http://localhost:2368

Y puedo visitar el panel de control del sitio con este otro enlace:

http://localhost:2368/ghost

Al visitar el panel de control voy a poder ingresar los datos de la cuenta principal.

Cómo crear más de un proyecto de ghost en la misma máquina

Como podemos imaginar puedo tener varios proyectos de Ghost dentro de la misma máquina.

Lo único que tengo que hacer para esto es crear un nuevo directorio para ese proyecto siguiendo los pasos mencionados anteriormente, y luego volver a instalar una copia local de Ghost desde ahí con el comando:

ghost install local

Comenzar y detener la activación de Ghost

Al terminar la instalación pudimos notar que Ghost se “activo” de forma automática. Tenemos la opción de activar y desactivar el programa según sea el caso. Si el programa se encuentra desactivado no vamos a poder encontrarlo al buscar el localhost en el navegador.

Para activar Ghost tengo que usar el comando:

ghost start

Utilizo ese comando directamente en el directorio del proyecto.

Ahora el proceso de Ghost va a seguir activo en mi computadora incluso si cierro el navegador. Para terminarlo utilizo:

ghost stop

Mientras el proceso se mantiene activo puedo revisar los cambios que voy realizando en el sitio.

Solucionar el error: The path /home/… is not readable by other users on the system.

Al utilizar el comando “ghost start” puede ser que algunos sistemas nos den una respuesta de error.

Esto parece ocurrir cuando nuestro proyecto de Ghost fue instalado dentro del directorio Home.

Ese error nos avisa que el directorio que estamos usando dentro de Home no tiene permiso para otras cuentas, y eso le impide a Ghost iniciar y configurar su actividad.

Para solucionar el problema tengo que darle los permisos correctos al proyecto, y lo hago con el comando:

chmod 754 -R /home/dirección/al/proyecto

Aunque tal vez lo mejor es crear el sitio en otra carpeta por fuera del directorio Home, por ejemplo en “/var” o en “/srv” como mencioné anteriormente.

Conclusión

Con esto le doy cierre a este apunte. Ya conseguimos crear un entorno de desarrollo local para Ghost en Linux.

Lo que sigue es empezar a investigar todas las opciones que se presentan. Ahora podemos usar este CMS sin necesidad de entrar a internet para conocer los resultados de las modificaciones que hacemos en el sitio.

¿Te fue de utilidad este material? ¿Encontraste algún error? Me gustaría conocer tu opinión, podés enviarme un correo electrónico para eso.

La seguimos en el próximo apunte.

Leave a Reply