Caddy como proxy inverso pero muy fácil
Como comenté en el artículo anterior, uno de los problemas que se le achacan a Traefik es su dificultad a la hora de poner en funcionamiento. Pero, como viste, nada mas lejos de la realidad. Es mas una cuestión de desconocimiento que otra cosa. Sin embargo, lo que es innegable es que es tiene muchas mas funcionalidades que un proxy habitual lo que lo hace algo mas complejo. Por esta razón, te traigo un segundo proxy que te va a permitir hacer al menos lo básico de Traefik de forma simple. Aunque como verás prácticamente es lo mismo. Me refiero a Caddy. Un proxy inverso muy ligero, y potente a la vez. Un proxy inverso que te va a permitir levantar otros mil servicios, como dice el título de este artículo.
De hecho, una vez levantados, tanto Traefik, como Caddy, ninguno de los dos te da ningún problema, con la ventaja adicional de Traefik, que te da mas opciones y posibilidades. Si bien es cierto, que si no vas a utilizar estas funcionalidades, para que las quieres. En ese caso, si no vas a utilizar esas funcionalidades, es una buena opción Caddy.
Caddy como proxy inverso pero muy fácil
¿Que es Caddy?
Caddy es un proxy inverso que te permitirá tener diferentes servicios funcionando en un mismo servidor utilizando todos ellos protocolo seguro. Una de las grandes ventajas de este proxy, al igual que sucede con Traefik, es que ambos se encargan de obtener y renovar los certificados para cada uno de tus sitios de forma completamente automática. No te tienes que preocupar de esta tediosa operación.
Caddy a lo Traefik
Uno de los aspectos que me echaban para atrás de Caddy es el archivo de configuración, y la necesidad de reiniciar el Caddy cada vez que añadía un nuevo servicio. Sin embargo, existe un plugin para Caddy que resuelve ambos problemas de un solo plumazo. Se trata de caddy-docker-proxy.
Este plugin, se encarga de escanear la meta información de Docker en busca de etiquetas. En estas etiquetas tenemos que indicar que servicio o contenedor tiene que ser servido por Caddy. Esto es precisamente el mismo funcionamiento que realiza Traefik. Así, la operativa es la misma. Tienes que declarar una red externa, que es la que utilizará Caddy para publicar los servicios, y las correspondientes etiquetas, para indicarle que puerto tiene que utilizar y la url a publicar. Por supuesto, y como venía haciendo, se encargará de gestionar los certificados. Simplemente brutal.
Así, para cualquier servicio que quieras que gestione Caddy, tienes que añadirle lo siguiente,
networks:
- caddy
labels:
caddy: whoami.example.com
caddy.reverse_proxy: "{{upstreams 8000}}"
Y por supuesto añadir la red correspondiente declarándola como externa,
networks:
caddy:
external: true
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.
La receta self-hosted
Vamos al turrón. A continuación la receta a aplicar y los pasos a seguir para tener tu proxy inverso funcionando en un visto y no visto,
git clone https://github.com/atareao/self-hosted.git
cd self-hosted/caddy
docker network create caddy
docker-compose up -d
docker-compose logs -f
git clone https://github.com/atareao/self-hosted.git
👉 clonas el repositoriocd self-hosted/caddy
👉 cambias al directorio donde se encuentra eldocker-compose
de Caddydocker network create caddy
👉 creas la red de Caddydocker-compose up -d
👉 levantas el serviciodocker-compose logs -f
👉 compruebas que todo está funcionando correctamente y no hay ninguna sorpresa.
Y ya lo tienes funcionando.
El vídeo
A continuación puedes encontrar el vídeo en el que te muestro exactamente lo mismo pero en falso directo. Verás que en escasos 10 minutos tienes tu proxy inverso perfectamente funcional. Además te muestro como puedes levantar un Nginx por el mismo precio.
Imagen de portada de Elsa Gonzalez en Unsplash
La entrada Caddy como proxy inverso pero muy fácil aparece primero en Atareao.