Este repositorio es una implementación de Træfik que te facilitará la vida para crear reverse proxy para los distintos servicios dockerizados.
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
.
Dirección de correo electrónico utilizada para el registro ACME. Valor predeterminado: 'webmaster@my.domain.tld'
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'
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.
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.
Estás invitado a mi canal de telegram, donde publico más soluciones como esta.