Cómo instalar Jekyll en Ubuntu
Jekyll es un generador de sitios estáticos gratuito, de código abierto y el más popular, que se puede utilizar para crear blogs o compartir contenidos. Es sencillo, ligero y no requiere ninguna base de datos. Requiere poca memoria y es una gran alternativa a WordPress. Con Jekyll, puedes crear los sitios web de tu empresa en cuestión de minutos mediante la creación de páginas de marcado y contenido. Jekyll es la mejor opción para ti si quieres trabajar fuera de línea y deseas utilizar el control de versiones para seguir los cambios en tu sitio web.
En este tutorial, explicaremos cómo instalar Jekyll en Ubuntu 18.04.
Requisitos
- Un servidor con Ubuntu 18.04.
- Una contraseña de root en tu servidor.
Cómo empezar
Antes de empezar, tendrás que actualizar tu sistema con la última versión. Puedes hacerlo ejecutando el siguiente comando:
apt-get update -y apt-get upgrade -y
Una vez que tu servidor esté actualizado, reinicia tu servidor para aplicar los cambios.
Instalar las dependencias necesarias
En primer lugar, tendrás que instalar algunas dependencias en tu sistema. Primero, instala Ruby y las herramientas de compilación necesarias ejecutando el siguiente comando:
apt-get install make build-essential ruby ruby-dev -y
Una vez instaladas todas las dependencias, tendrás que añadir la variable de entorno de Ruby en el archivo ~/.bashrc.
nano ~/.bashrc
Añade las siguientes líneas:
export GEM_HOME=$HOME/gems export PATH=$HOME/gems/bin:$PATH
Guarda y cierra el archivo cuando hayas terminado. A continuación, activa la variable de entorno con el siguiente comando:
source ~/.bashrc
Una vez hecho esto, puedes pasar al siguiente paso.
Instalar Jekyll
En primer lugar, necesitarás instalar Bundler para gestionar las dependencias de Gem. Puedes instalarlo ejecutando el siguiente comando:
gem install bundler
Una vez completada la instalación, deberías obtener la siguiente salida:
Fetching: bundler-2.0.2.gem (100%) Successfully installed bundler-2.0.2 Parsing documentation for bundler-2.0.2 Installing ri documentation for bundler-2.0.2 Done installing documentation for bundler after 2 seconds 1 gem installed
A continuación, instala Jekyll con el siguiente comando:
gem install jekyll
Una vez instalado, deberías obtener la siguiente salida:
Installing ri documentation for jekyll-4.0.0 Done installing documentation for public_suffix, addressable, colorator, http_parser.rb, eventmachine, em-websocket, concurrent-ruby, i18n, ffi, sassc, jekyll-sass-converter, ruby_dep, rb-inotify, rb-fsevent, listen, jekyll-watch, kramdown, kramdown-parser-gfm, liquid, mercenary, forwardable-extended, pathutil, rouge, safe_yaml, unicode-display_width, terminal-table, jekyll after 25 seconds 27 gems installed
Una vez terminado, puedes pasar al siguiente paso.
Crear un sitio web con Jekyll
Jekyll ya está instalado y listo. Ahora puedes crear tu propio sitio web con Jekyll.
Vamos a crear un sitio web llamado test.example.com como se muestra a continuación:
jekyll new test.example.com
Una vez creado el sitio web, deberías ver la siguiente salida:
Bundler: Fetching minima 2.5.1 Bundler: Installing minima 2.5.1 Bundler: Bundle complete! 6 Gemfile dependencies, 31 gems now installed. Bundler: Use `bundle info [gemname]` to see where a bundled gem is installed.Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all Bundler: non-root users on this machine. New jekyll site installed in /root/test.example.com.
Ahora, cambia el directorio a tu sitio web con el siguiente comando:
cd test.example.com
Ahora, inicia tu servidor web Jekyll especificando la dirección IP de tu servidor como se muestra a continuación:
jekyll serve --host=136.243.240.39
Una vez iniciado el servidor web Jekyll, deberías ver la siguiente salida:
Configuration file: /root/test.example.com/_config.yml Source: /root/test.example.com Destination: /root/test.example.com/_site Incremental build: disabled. Enable with --incremental Generating... Jekyll Feed: Generating feed for posts done in 0.168 seconds. Auto-regeneration: enabled for '/root/test.example.com' Server address: http://136.243.240.39:4000/ Server running... press ctrl-c to stop.
Puedes detener tu servidor Jekyll en cualquier momento pulsando CRTL+C.
Acceder a la interfaz web de Jekyll
El servidor web de Jekyll está ahora iniciado y a la escucha en el puerto 4000 por defecto. Ahora, abre tu navegador web y escribe la URL http://136.243.240.39:4000. Serás redirigido al panel de control de Jekyll como se muestra a continuación:
Jekyll vigila continuamente los nuevos cambios en el directorio test.example.com y reconstruirá automáticamente el sitio estático cuando se guarde un cambio en una entrada o página. Por defecto, Jekyll coloca todas las publicaciones del sitio en el directorio _posts.
Configurar Nginx como proxy inverso para Jekyll
Por defecto, Jekyll se ejecuta en el puerto 4000. Así que es buena idea configurar Nginx como proxy inverso para reenviar las peticiones del puerto 80 al 4000.
Primero, instala Nginx con el siguiente comando:
apt-get install nginx -y
Una vez instalado Nginx, crea un nuevo archivo de configuración del host virtual con el siguiente comando:
nano /etc/nginx/sites-available/jekyll.conf
Añade las siguientes líneas:
upstream jekyll { server 127.0.0.1:4000 weight=100 max_fails=5 fail_timeout=5; } server { listen 80; server_name 136.243.240.39; location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://jekyll/; } }
Guarda y cierra el archivo. A continuación, habilita el archivo de host virtual de Nginx con el siguiente comando
ln -s /etc/nginx/sites-available/jekyll.conf /etc/nginx/sites-enabled/
Por último, reinicia el servicio Nginx para aplicar la configuración:
systemctl restart nginx
Ahora puedes acceder a tu servidor Jekyll sin especificar el puerto 4000 con la dirección IP.
Y ya está. Has instalado y configurado con éxito Jekyll en el servidor Ubuntu 18.04. Espero que ahora tengas suficientes conocimientos para crear tu propio sitio web con Jekyll. No dudes en preguntarme si tienes alguna duda.