Mil servicios con Traefik
Como no podía ser de otra forma, la primera pieza del puzzle de tus auto alojados es un proxy inverso. Aunque estoy ya te lo podías imaginar, por que lo anuncié en la introducción. Lo cierto es que para poder tener diferentes servicios alojados en un mismo servidor y saliendo por el mismo puerto es imprescindible hacer uso de un proxy, y en este caso, para mi, sin lugar a dudas la solución pasa por Traefik.
Así, en esta entrega, te mostraré como puedes levantar tu proxy inverso con Traefik en menos de 10 minutos y sin complicaciones.
Mil servicios con Traefik
¿Que es Traefik?
Aunque le he dedicado un tutorial a [Traefik]() es posible que no conozcas esta herramienta, y esta es la razón para esta breve introducción al mismo. Si quieres profundizar mas en esta herramienta, te recomiendo que le des un vistazo al tutorial, que seguro que le sacarás mas provecho.
En pocas palabras, Traefik es un proxy inverso. Aunque, realmente es mucho mas que un proxy inverso, en el sentido que tiene muchas mas opciones para poner en funcionamiento. Digamos, que se trataría de un proxy inverso supervitaminado y mineralizado.
Así, por ejemplo, no solo te permite conducir el tráfico habitual, sino que también te permite gestionar tráfico TCP y UDP, puedes utilizar middleware, para añadir capas extras como puede ser la autenticación. Igualmente puedes limitar las conexiones.
En fin, que como ves se trata de un proxy inverso con muchas capacidades y al que le puedes sacar mucho jugo.
¿Es muy difícil?
Una vez comprendes la filosofía de Traefik no es nada complejo, sin embargo, tienes que entenderla. Por otro, lado, y esto es un punto de vista personal, el cambio de versión de la 1.X a la 2.X, no le hizo ningún bien. Me refiero a que la configuración cambió tanto, que realmente fue contraproducente.
De cualquier forma, como verás, y siguiendo, la receta que he dejado preparada para este self-hosted, en menos de 10 minutos la puedes tener perfectamente funcionando.
Eso si, si quieres sacar todo el potencial de esta herramienta, tienes que dedicarle tiempo, para estudiarla y comprender como funciona.
Pre requisitos
Por supuesto, antes de comenzar con la receta self-hosted, lo primero es tenerlo todo instalado. Para esta, igual, que para el resto de recetas self-hosted, necesitarás docker
y docker-compose
. Estas dos herramientas son imprescindibles. Para instalarlas te recomiendo los siguientes artículos,
- Instalar docker del tutorial de Docker
- Instalar docker-compose del mismo tutorial que te indiqué anteriormente.
A parte de esto, en el caso de que quieras utilizar el middleware de autenticación, que es totalmente opcional, necesitarás instalar la siguiente herramienta,
sudo apt install apache2-utils
En este paquete es donde se encuentra htpasswd
.
La receta self-hosted
Allá vamos. Para tener tu servicio de proxy inverso funcionando con Traefik, simplemente tienes que seguir las instrucciones que detallo a continuación.
git clone https://github.com/atareao/self-hosted.git
cd self-hosted/traefik
cp sample.env .env
cp sample.traefik.yml traefik.yml
touch acme.json
chmod 600 acme.json
htpasswd -nb usuario contraseña >> users.txt
docker network create proxy
docker-compose up -d
docker-compose logs -f
Como ves los pasos son realmente sencillos.
git clone https://github.com/atareao/self-hosted.git
👉 clonas el repositoriocd self-hosted/traefik
👉 cambias al directorio de Traefikcp sample.env .env
👉 para personalizar la configuración. Aquí tienes que editar este archivo y cambiar el nombre de tuhostname
. Esto es fundamental.cp sample.traefik.yml traefik.yml
👉 aquí copias la configuración original de Traefik. Esto te va a permitir tener siempre una copia de la original, por si haces alguna barrabasada.touch acme.json
👉 esto te crea el archivo donde se guardarán los certificados.chmod 600 acme.json
👉 cambia los permisos. Esto es imprescindible para que funcione el protocolo seguro.htpasswd -nb usuario contraseña >> users.txt
👉 Añades una capa de autenticación. Cambiausuario
ycontraseña
por los credenciales que quieras utilizar.docker network create proxy
👉 Crea la redproxy
que utilizarás durante todo el procesodocker-compose up -d
👉 Levanta el servicio.docker-compose logs -f
👉 Este paso es prescindible, aunque totalmente recomendable, porque te servirá para encontrar posibles problemas de funcionamiento o mejor dicho de mal funcionamiento.
Y ya lo tienes funcionando.
El vídeo
Lo mismo pero en falso directo, además en este caso levanto también Nginx, para que se vea las ventajas de tener ese proxy inverso funcionando.
La entrada Mil servicios con Traefik aparece primero en Atareao.