¿Que es este repositorio?

Este repositorio es una implementación de Træfik que te facilitará la vida para crear reverse proxy para los distintos servicios dockerizados.

Configuración

Crear red externa para conectar las aplicaciones con Træfik

docker network create web

clonar este repositorio

cd /opt
git clone https://github.com/aitorroma/docker-traefik.git traefik
cd traefik
chmod 600 acme.json

Ajustar las variables de nombre de dominio principal y corre en el fichero .env .

ACME_EMAIL

Dirección de correo electrónico utilizada para el registro ACME. Valor predeterminado: 'webmaster@my.domain.tld'

DOCKER_DOMAIN

Dominio base predeterminado utilizado para las reglas de la interfaz. Puede anularse estableciendo la etiqueta "traefik.domain" en un contenedor. Valor predeterminado: 'my.domain.tld'

Uso

cd /opt/traefik
docker-compose up -d

Este comando levantara un contenedor escuchando en el puerto 80 y 443 listo para realizar de proxy inverso.

Usarlo en los contenedores.

Para que funcione en los contenedores tan solo tendrás que añadir este bloque en el docker compose.

networks:
    web:
        external: true
        
env_file: .env
labels:
      traefik.enable: 'true'
      traefik.frontend.rule: "Host:${HOSTNAME}"
      traefik.port: '3333'
    expose:
      - "80"
      - "443"
    networks:
      - default
      - web  

Por ejemplo en un docker compose completo.

version: '3'

networks:
    web:
        external: true
services:
  notion-proxy:
    build:
      context: .
      dockerfile: Dockerfile
    image: notion-proxy
    container_name: notion-proxy
    restart: unless-stopped
    env_file: .env
    labels:
      traefik.enable: 'true'
      traefik.frontend.rule: "Host:${HOSTNAME}"
      traefik.port: '3333'
    expose:
      - "80"
      - "443"
    volumes:
      - ./config:/notion-proxy/config
      - ./cache:/notion-proxy/cache
    networks:
      - default
      - web  
   

En el fichero .env establecer la variable HOSTNAME= o también se puede añadir directamente el nombre de host.

El valor traefik.port define el puerto al que va a hacer el reverse proxy.

Invitación a mi Canal.

Estás invitado a mi canal de telegram, donde publico más soluciones como esta.