Cambiando Traefik por Caddy

· 3 min · @Hardware · #Raspberry Pi #Docker

Anteriormente venía usando Traefik, pero como ya he comentado, era muy difícil de mantener y de configurar, a parte de las múltiples opciones que tiene. Ante esto, me resultaba muy tedioso su uso, así que decidí buscar otra alternativa más fácil.

Después de buscar y leer a mis blogueros preferidos:

Vi que los dos recomendaban:

Cada uso con sus ventajas e inconvenientes, aunque me tiraba más npm (para abreviar) por el gui que tenía, me decidí por caddy, porque una de sus virtudes es que podías tener url del siguiente estilo:

  • music.tudominio.duckdns.org.

Además el poder tener todos tus servicios activos y con su correspondiente certificado solamente con un fichero de texto.

Eso es una ventaja, porque se parece más a una URL de verdad. Y por eso me decidí por Caddy, aunque al final tuve que tirar por npm, ya lo comentaré en otro articulo.

◇ Qué es Caddy

Caddy es un potente servidor web de código abierto desarrollado en go. Simplifica su infraestructura y se encarga de las renovaciones de certificados.

Funciona muy bien en contenedores porque no tiene dependencias.

Aunque la mayoría de la gente lo usa como servidor web o proxy, es una excelente opción también para:

  • Servidor web
  • proxy inverso
  • proxy de sidecar
  • equilibrador de carga
  • Puerta de enlace API
  • controlador de ingreso
  • administrador de sistemas
  • supervisor de proceso
  • programador de tareas (cualquier proceso de larga duración)

◇ Creando el docker

Caddy requiere acceso de escritura a dos ubicaciones: un directorio de datos y un directorio de configuración.

Recuerda que para generar los certificados de Let’s Encrypt, Caddy necesita tener abiertos los puertos 80 y 443.

version: "3.7"
services:
 caddy:
   image: caddy
   ports:
     - "80:80"
     - "443:443"
   volumes:
     - ./Caddyfile:/etc/caddy/Caddyfile:ro
     - ./data/caddy/data:/data
     - ./data/caddy/config:/config
   restart: unless-stopped
   container_name: caddy  

Creamos el archivo Caddyfile, donde irá la configuración de nuestro proxy inverso.

Voy a exponer mi docker de Spotify personal al mundo para así a través del móvil poder escuchar la música que tengo en el servidor, en concreto, Navidrome (ya explicaré en otro articulo como tener tu propio Spotify en funcionamiento).

Caddy se encargará de exponer este servicio a la red generando el certificado con Let’s Encrypt, que en mi caso, como ya he dicho, es mi Spotify privado y así no tener que depender de nadie.

music.midominio.duckdns.org {
  reverse_proxy http://192.168.1.100:4533
}

Así de rápido y de sencillo tengo mi proxy inverso en funcionamiento junto con mi certificado SSL. Y lo más interesante, es que cuando llegue el momento de que el certificado vaya a caducar, el mismo caddy se encargará de actualizarlo.

◇ Referencia: