Montando devdocs.io en nuestra red (Docker incluido)
Introducción
Cuando vamos a programar un script o algo más grande, necesitamos documentarnos acerca de las bondades que nos ofrece el lenguaje que escogimos para dicha tarea, devdocs.io es un sitio que reune mucha documentación sobre disímiles tecnologías, agrupadas a veces por versiones. Es una muy buena recopilación, que permite incluso descargarla offline para el almacenamiento del navegador, para que, una vez estemos offline poder consultarla.
Lo bueno de este proyecto es que es libre, es decir, que podemos encontrar su código fuente en GitHub. De eso se trataremos, de cómo instalar en nuestra red local este servicio, incluyendo al final como hacerlo si prefieres Docker.
Instalando en Debian
Una vez bajado el proyecto
# apt install git
# git clone https://github.com/freeCodeCamp/devdocs.git
# cd devdocs
Lo primero que debemos hacer es instalar ruby
y bundle
para gestionar las
dependencias del proyecto:
# apt install ruby bundle
Ahora procedemos a instalar algunos paquetes adicionales, para que cuando
usemos bundle
, que compile nativamente algunas dependencias, no de errores.
# apt install build-essential ruby-dev zlib1g-dev nodejs ruby-thor
Ahora obtenemos todas las dependencias necesarias para que funcione el proyecto
# bundle install
Ya tenemos la base del proyecto, pero no tenemos ninguna documentación
descargada, para eso usaremos thor
# thor docs:download --all
Ya el proyecto está listo para ser ejecutado y empezar a brindar el servicio, el comando para arrancar el servidor es
# rackup -o 0.0.0.0 -p 80 -D
donde -o
indica por que IP escuchará el servidor, definiendo el puerto con
-p
. El -D
indica que se ejecute como un demonio.
Como generalmente pondermos esto en un servidor aparte (preferiblemente un
contenedor), pudieramos modificar directamente /etc/rc.local
para que
ejecutara el comando, ejemplo de este fichero sería
#!/bin/bash
cd /opt/devdocs
rackup -o 0.0.0.0 -p 80 -D
cd -
exit 0
Con esto cada vez que se ejecute nuestro servidor, tendremos el servicio
de devdocs.io
corriendo.
Instalando con Docker
Si eres como yo, que ahora todo lo quiero dockerizar, puesto que he visto muchas ventajas en una infraestructura de contenedores con Docker, devdocs te brinda su Dockerfile para que lo construyas, los pasos son meramente sencillos
Instalamos Docker, en los repos de Debian y Ubuntu viene el paquete, en caso de que no uses ninguno de estos, remitete a su documentación para la instalación.
# apt install docker.io
Teniendo Docker instalado, procedemos a descargar devdocs de su repositorio y construirlo
# apt install git
# git clone https://github.com/freeCodeCamp/devdocs.git
# cd devdocs
# docker build -t thibaut/devdocs .
Esperamos que se construya la imágen, de alguna manera hace todo lo que hicimos en el apartado anterior, pero automatizado. Una vez que se haya construido la imagen, solo tenemos que ejecutarlo
# docker run --name devdocs --restart always -d -p 9292:9292 thibaut/devdocs
Explicando un poco, sería que corriera un contenedor nombrado con --name
, que
se iniciara automáticamente (por --restart always
), que corra como un
demonio (-d
) y que el puerto con que se publicará será el 9292 (por la
primera parte del par 9292:9292
, la segunda parte es del servicio interno).