Docker + Traefik 2
12-abr-2020 20:48
#1
|
Buenas, tengo una pregunta para los que useis Traefik 2: Yo actualmente tengo montado nginx (fuera de docker) como reverse proxy. Tengo un dominio en OVH y para cada "servicio" que voy montando creo subdominios del tipo "pihole.dominio.eu". Esos dominios apuntan a otro dominio DDNS que tengo en Dyn.com y que redirige a mi IP pública. Y cada subdominio lo tengo que configurar en mi máquina nginx... Por lo que tengo entendido con Traefik no hace falta andar creando subdominios ¿no?. Pero es algo que aún no he conseguido... Y además, necesito poder acceder a otras máquinas de mi red (fuera de la máquina docker) y no sé cómo hacerlo... Para que os hagais una idea tengo esto: Servidor Proxmox (10.10.10.7) - Máquina con NGINX (10.10.10.10) - Máquina Debian + Docker (10.10.10.3) - Máquina con OMV (10.10.10.8) Desde la máquina Debian con Docker necesito acceder desde fuera a mis otras máquinas: proxmox, nginx y omv... Ya que la idea es eliminar esa máquina NGINX y dejar que Traefik 2 gestione todo. Pero estoy teniendo problemas porque los ejemplos y la documentación no me aclaran mucho ciertas cosas. ¿Alguna ayuda, experiencia? Gracias. |
13-abr-2020 08:27
#3
| Nadie? Al final tendré que pasar a Traefik 1.7 que parece que hay más ejemplos y más gente que lo utiliza... |
16-may-2020 12:40
#4
![]() Buenas, tengo una pregunta para los que useis Traefik 2:
Yo actualmente tengo montado nginx (fuera de docker) como reverse proxy. Tengo un dominio en OVH y para cada "servicio" que voy montando creo subdominios del tipo "pihole.dominio.eu". Esos dominios apuntan a otro dominio DDNS que tengo en Dyn.com y que redirige a mi IP pública. Y cada subdominio lo tengo que configurar en mi máquina nginx... Por lo que tengo entendido con Traefik no hace falta andar creando subdominios ¿no?. Pero es algo que aún no he conseguido... Y además, necesito poder acceder a otras máquinas de mi red (fuera de la máquina docker) y no sé cómo hacerlo... Para que os hagais una idea tengo esto: Servidor Proxmox (10.10.10.7) - Máquina con NGINX (10.10.10.10) - Máquina Debian + Docker (10.10.10.3) - Máquina con OMV (10.10.10.8) Desde la máquina Debian con Docker necesito acceder desde fuera a mis otras máquinas: proxmox, nginx y omv... Ya que la idea es eliminar esa máquina NGINX y dejar que Traefik 2 gestione todo. Pero estoy teniendo problemas porque los ejemplos y la documentación no me aclaran mucho ciertas cosas. ¿Alguna ayuda, experiencia? Gracias. |
13-may-2022 10:52
#5
|
Buenas, tengo una pregunta para los que useis Traefik 2:
Yo actualmente tengo montado nginx (fuera de docker) como reverse proxy. Tengo un dominio en OVH y para cada "servicio" que voy montando creo subdominios del tipo "pihole.dominio.eu". Esos dominios apuntan a otro dominio DDNS que tengo en Dyn.com y que redirige a mi IP pública. Y cada subdominio lo tengo que configurar en mi máquina nginx... Por lo que tengo entendido con Traefik no hace falta andar creando subdominios ¿no?. Pero es algo que aún no he conseguido... Y además, necesito poder acceder a otras máquinas de mi red (fuera de la máquina docker) y no sé cómo hacerlo... Para que os hagais una idea tengo esto: Servidor Proxmox (10.10.10.7) - Máquina con NGINX (10.10.10.10) - Máquina Debian + Docker (10.10.10.3) - Máquina con OMV (10.10.10.8) Desde la máquina Debian con Docker necesito acceder desde fuera a mis otras máquinas: proxmox, nginx y omv... Ya que la idea es eliminar esa máquina NGINX y dejar que Traefik 2 gestione todo. Pero estoy teniendo problemas porque los ejemplos y la documentación no me aclaran mucho ciertas cosas. ¿Alguna ayuda, experiencia? Gracias. Lo hiciste funcionar? Estoy haciendo un trabajo de asir con un server OMV+docker, tengo contenedores con nextcloud, wordpress, mariadb, pihole, wireguard.... y ahora quiero poner traefik pero no encuentro una guia clara de como hacer las cosas |
13-may-2022 11:05
#6
|
Buenas, tengo una pregunta para los que useis Traefik 2:
Yo actualmente tengo montado nginx (fuera de docker) como reverse proxy. Tengo un dominio en OVH y para cada "servicio" que voy montando creo subdominios del tipo "pihole.dominio.eu". Esos dominios apuntan a otro dominio DDNS que tengo en Dyn.com y que redirige a mi IP pública. Y cada subdominio lo tengo que configurar en mi máquina nginx... Por lo que tengo entendido con Traefik no hace falta andar creando subdominios ¿no?. Pero es algo que aún no he conseguido... Y además, necesito poder acceder a otras máquinas de mi red (fuera de la máquina docker) y no sé cómo hacerlo... Para que os hagais una idea tengo esto: Servidor Proxmox (10.10.10.7) - Máquina con NGINX (10.10.10.10) - Máquina Debian + Docker (10.10.10.3) - Máquina con OMV (10.10.10.8) Desde la máquina Debian con Docker necesito acceder desde fuera a mis otras máquinas: proxmox, nginx y omv... Ya que la idea es eliminar esa máquina NGINX y dejar que Traefik 2 gestione todo. Pero estoy teniendo problemas porque los ejemplos y la documentación no me aclaran mucho ciertas cosas. ¿Alguna ayuda, experiencia? Gracias. Para un entorno domestico, en mi caso, no compensaba. Levante el NGNIX y desde su propioa interfaz administro subdominios y direcciones. Si quiero apuntar a un contenedor, voy contra la IP interna del docker. Si quiero algo de fuera de ese docker, contra la IP local. Buen reflote me comí...jaja. En resumen, descarte traefik. Hay muchas alternativas más userfriendly. |
13-may-2022 11:10
#7
|
Yo tengo Traefik en mi casa pero al final si creo subdominios al levantar cada contenedor configurandolo en las propiedades de cada contenedor. Me funciona bien pero no se si es la solución que busca el OP. |
13-may-2022 11:20
#8
| Al final he preferido seguir creando subdominios para cada uno de los servicios, pero si, lo monté con Traefik 2 y docker-compose. Poco a poco, primero Traefik + Portainer y luego fui modificando el docker-compose.yml para ir añadiendo y configurando servicios. |
14-may-2022 12:57
#9
|
Que docker-compose modificas? el de traefik? yo al tener ya varios servicios corriendo en distintos contenedores ¿Tengo que configurarlos en el docker-compose con el que voy a crear el contenedor de traefik o se pueden configurar despues en el panel web de traefik? ¿es necesario que traefik y los demas contenedores esten en la misma red? |
14-may-2022 18:53
#10
|
Que docker-compose modificas? el de traefik?
yo al tener ya varios servicios corriendo en distintos contenedores ¿Tengo que configurarlos en el docker-compose con el que voy a crear el contenedor de traefik o se pueden configurar despues en el panel web de traefik? ¿es necesario que traefik y los demas contenedores esten en la misma red? Yo tengo un docker-compose único y ahí voy añadiendo servicios. Cuando dices "dentro de la misma red" te refieres a tú red física? De todas formas depende de los contenedores y servicios que tengas te interesará tener todo bajo la misma red o en redes separadas a nivel de Traefik. |
14-may-2022 19:00
#11
|
El panel de Traefik es meramente informativo. No puedes crear nada.
Yo tengo un docker-compose único y ahí voy añadiendo servicios. Cuando dices "dentro de la misma red" te refieres a tú red física? De todas formas depende de los contenedores y servicios que tengas te interesará tener todo bajo la misma red o en redes separadas a nivel de Traefik. Me refiero dentro de la misma red Docker Lo que no me queda claro si simplemente tengo definir mis servicios en la configuración de traefik o tengo que modificar algo en los contenedores que ya tengo creados Puedes compartir tu archivo docker-compose? |
14-may-2022 19:13
#12
|
Este el es compose: *********************** version: '3' services: traefik: image: traefik:latest container_name: traefik restart: unless-stopped security_opt: - no-new-privileges:true networks: - proxy expose: - 8080 ports: - 80:80 - 443:443 - 8080:8080 volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - ./data/traefik.yml:/traefik.yml:ro - ./data/acme.json:/acme.json - ./data/config.yml:/config.yml:ro #- /opt/containers/traefik/rules:/rules:ro labels: - "traefik.enable=true" - "traefik.http.routers.traefik.entrypoints=http " - "traefik.http.routers.traefik.rule=Host(`traef ik.m arduk.com`)" #- "traefik.http.middlewares.traefik-auth.basicauth.users=marduk:$$2y$$05$$LhavaIzGBq8U edGuaZATvJAfeVqXWsIOE03gVQgyLrpdCgldIGL4XG" - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.traefik.middlewares=trae fik-https-redirect" - "traefik.http.routers.traefik-secure.entrypoints=https" - "traefik.http.routers.traefik-secure.rule=Host(`traefik.marduk.com`)" - "traefik.http.routers.traefik-secure.middlewares=traefik-auth" - "traefik.http.routers.traefik-secure.tls=true" - "traefik.http.routers.traefik-secure.tls.certresolver=http" - "traefik.http.routers.traefik-secure.service=api@internal" portainer: image: portainer/portainer-ce:latest container_name: portainer restart: unless-stopped security_opt: - no-new-privileges:true networks: - proxy expose: - 9000 ports: - 9000:9000 volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - ./data:/data labels: - "traefik.enable=true" - "traefik.http.routers.portainer.entrypoints=ht tp" - "traefik.http.routers.portainer.rule=Host(`por tain er.marduk.com`)" - "traefik.http.routers.portainer.middlewares=ht tps-redirect@file" - "traefik.http.middlewares.portainer-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.portainer.middlewares=po rtai ner-https-redirect" - "traefik.http.routers.portainer-secure.entrypoints=https" - "traefik.http.routers.portainer-secure.rule=Host(`portainer.marduk.com`)" - "traefik.http.routers.portainer-secure.tls=true" - "traefik.http.routers.portainer-secure.tls.certresolver=http" - "traefik.http.routers.portainer-secure.service=portainer" - "traefik.http.services.portainer.loadbalancer. serv er.port=9000" - "traefik.docker.network=proxy" wireguard: image: linuxserver/wireguard container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SERVERURL=vpn.marduk.com #optional - SERVERPORT=51820 #optional - PEERS=5 #optional - PEERDNS=auto #optional - INTERNAL_SUBNET=10.13.13.0 #optional volumes: - /path/to/appdata/config:/config - /lib/modules:/lib/modules ports: - 51820:51820/udp sysctls: - net.ipv4.conf.all.src_valid_mark=1 labels: - "traefik.enable=false" restart: always Pub-Transmission: image: linuxserver/transmission container_name: Pub-Transmission network_mode: "proxy" environment: - PUID=1000 - PGID=1000 - TZ=Europe/Madrid #- TRANSMISSION_WEB_HOME=/kettu/ #optional - USER=admin #optional - PASS=pass1234 #optional volumes: - /opt/containers/transmission/public:/config - /mnt/hdd6/Downloads/complete:/downloads - /mnt/hdd6/Downloads:/watch ports: - 9091:9091 - 51413:51413 - 51413:51413/udp labels: - "traefik.enable=true" - "traefik.http.routers.Pub-Transmission.entrypoints=http" - "traefik.http.routers.Pub-Transmission.rule=Host(`tor.marduk.com`)" - "traefik.http.middlewares.Pub-Transmission-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.Pub-Transmission.middlewares=Pub-Transmission-https-redirect" - "traefik.http.routers.Pub-Transmission-secure.entrypoints=https" - "traefik.http.routers.Pub-Transmission-secure.rule=Host(`tor.marduk.com`)" - "traefik.http.routers.Pub-Transmission-secure.tls=true" - "traefik.http.routers.Pub-Transmission-secure.tls.certresolver=http" - "traefik.http.routers.Pub-Transmission-secure.service=Pub-Transmission" - "traefik.http.services.Pub-Transmission.loadbalancer.server.port=9091" - "traefik.docker.network=proxy" restart: unless-stopped ouroboros: container_name: ouroboros hostname: ouroboros image: pyouroboros/ouroboros network_mode: "proxy" environment: - CLEANUP=true - INTERVAL=3600 - LOG_LEVEL=info - SELF_UPDATE=true - TZ=Europe/Madrid restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock # netdata: # image: netdata/netdata:latest # container_name: netdata # network_mode: "proxy" # hostname: marduk.com # ports: # - 19999:19999 # environment: # - PGID=998 # - VIRTUAL_PORT=19999 # cap_add: # - SYS_PTRACE # security_opt: # - apparmor:unconfined # volumes: # - /etc/passwd:/opt/containers/netdata/passwd:ro # - /etc/group:/opt/containers/netdata/group:ro # - /proc:/host/proc:ro # - /sys:/host/sys:ro # - /opt/containers/netdata/etc:/etc/netdata # - /var/run/docker.sock:/var/run/docker.sock:ro # labels: # - "traefik.enable=true" # - "traefik.http.routers.netdata.entrypoints=http " # - "traefik.http.routers.netdata.rule=Host(`monit or.m arduk.com`)" # - "traefik.http.middlewares.netdata-https-redirect.redirectscheme.scheme=https" # - "traefik.http.routers.netdata-secure.middlewares=netdata-auth" # - "traefik.http.routers.netdata.middlewares=netd ata-https-redirect" # - "traefik.http.routers.netdata-secure.entrypoints=https" # - "traefik.http.routers.netdata-secure.rule=Host(`monitor.marduk.com`)" # - "traefik.http.routers.netdata-secure.tls=true" # - "traefik.http.routers.netdata-secure.tls.certresolver=http" # - "traefik.http.routers.netdata-secure.service=netdata" # - "traefik.http.services.netdata.loadbalancer.se rver .port=19999" # - "traefik.docker.network=proxy" # restart: always duplicati: image: linuxserver/duplicati container_name: duplicati network_mode: "proxy" environment: - PUID=0 - PGID=0 - TZ=Europe/London #- CLI_ARGS= volumes: - /opt/containers/duplicati/config:/config #- /mnt/backups/duplicati:/backups - /:/source ports: - 8200:8200 labels: - "traefik.enable=true" - "traefik.http.routers.duplicati.entrypoints=ht tp" - "traefik.http.routers.duplicati.rule=Host(`bac kup. marduk.com`)" - "traefik.http.middlewares.duplicati-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.duplicati.middlewares=du plic ati-https-redirect" - "traefik.http.routers.duplicati-secure.entrypoints=https" - "traefik.http.routers.duplicati-secure.rule=Host(`backup.marduk.com`)" - "traefik.http.routers.duplicati-secure.tls=true" - "traefik.http.routers.duplicati-secure.tls.certresolver=http" - "traefik.http.routers.duplicati-secure.service=duplicati" - "traefik.http.services.duplicati.loadbalancer. serv er.port=8200" - "traefik.docker.network=proxy" restart: always fr_db: image: mariadb:latest container_name: FileRun-DataBase networks: - default - proxy ports: - 3307:3306 expose: - 3307 environment: MYSQL_ROOT_PASSWORD: RootPass@1 MYSQL_USER: usuario1 MYSQL_PASSWORD: password00001 MYSQL_DATABASE: fr_database volumes: - /opt/containers/filerun/db:/var/lib/mysql restart: always filerun: image: afian/filerun container_name: filerun network_mode: "proxy" environment: FR_DB_HOST: fr_db FR_DB_PORT: 3306 FR_DB_NAME: fr_database FR_DB_USER: usuario1 FR_DB_PASS: password00001 APACHE_RUN_USER: www-data APACHE_RUN_USER_ID: 33 APACHE_RUN_GROUP: www-data APACHE_RUN_GROUP_ID: 33 depends_on: - fr_db links: - fr_db:fr_db ports: - "8091:80" expose: - 8091 volumes: - /opt/containers/filerun/html:/var/www/html - /mnt:/user-files labels: - "traefik.enable=true" - "traefik.http.routers.filerun.entrypoints=http " - "traefik.http.routers.filerun.rule=Host(`filer un.m arduk.com`)" - "traefik.http.middlewares.filerun-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.filerun.middlewares=file run-https-redirect" - "traefik.http.routers.filerun-secure.entrypoints=https" - "traefik.http.routers.filerun-secure.rule=Host(`filerun.marduk.com`)" - "traefik.http.routers.filerun-secure.tls=true" - "traefik.http.routers.filerun-secure.tls.certresolver=http" - "traefik.http.routers.filerun-secure.service=filerun" - "traefik.http.services.filerun.loadbalancer.se rver .port=80" - "traefik.docker.network=proxy" restart: always adguard-home: image: adguard/adguardhome container_name: "Adguard" network_mode: "proxy" dns: - 127.0.0.1 - 1.1.1.1 ports: - '53:53/tcp' - '53:53/udp' - '67:67/udp' - '8053:80/tcp' - '853:853/tcp' - '3000:3000/tcp' volumes: - /opt/containers/adguard/work:/opt/adguardhome/work - /opt/containers/adguard/confdir:/opt/adguardhome/conf labels: - "traefik.enable=true" - "traefik.http.routers.adguard.entrypoints=http " - "traefik.http.routers.adguard.rule=Host(`adgua rd.m arduk.com`)" - "traefik.http.middlewares.adguard-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.adguard.middlewares=adgu ard-https-redirect" - "traefik.http.routers.adguard-secure.entrypoints=https" - "traefik.http.routers.adguard-secure.rule=Host(`adguard.marduk.com`)" - "traefik.http.routers.adguard-secure.tls=true" - "traefik.http.routers.adguard-secure.tls.certresolver=http" - "traefik.http.routers.adguard-secure.service=adguard" - "traefik.http.services.adguard.loadbalancer.se rver .port=80" - "traefik.docker.network=proxy" restart: always networks: proxy: external: true |
14-may-2022 21:01
#13
| Buenas shur, par de cosas, lo tienes ya rulando? Sino te paso mi config, y el segundo detalle, borra las pass (hash) de la config de arriba, un saludo! |
14-may-2022 21:04
#14
|
Te paso uno que me pidió otro shur hace unos meses. Habrá cosas regular o mal pero tampoco soy un experto y me me ido quedando con lo que funciona.
Este el es compose: *********************** version: '3' services: traefik: image: traefik:latest container_name: traefik restart: unless-stopped security_opt: - no-new-privileges:true networks: - proxy expose: - 8080 ports: - 80:80 - 443:443 - 8080:8080 volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - ./data/traefik.yml:/traefik.yml:ro - ./data/acme.json:/acme.json - ./data/config.yml:/config.yml:ro #- /opt/containers/traefik/rules:/rules:ro labels: - "traefik.enable=true" - "traefik.http.routers.traefik.entrypoints=http " - "traefik.http.routers.traefik.rule=Host(`traef ik.m arduk.com`)" #- "traefik.http.middlewares.traefik-auth.basicauth.users=marduk:$$2y$$05$$LhavaIzGBq8U edGuaZATvJAfeVqXWsIOE03gVQgyLrpdCgldIGL4XG" - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.traefik.middlewares=trae fik-https-redirect" - "traefik.http.routers.traefik-secure.entrypoints=https" - "traefik.http.routers.traefik-secure.rule=Host(`traefik.marduk.com`)" - "traefik.http.routers.traefik-secure.middlewares=traefik-auth" - "traefik.http.routers.traefik-secure.tls=true" - "traefik.http.routers.traefik-secure.tls.certresolver=http" - "traefik.http.routers.traefik-secure.service=api@internal" portainer: image: portainer/portainer-ce:latest container_name: portainer restart: unless-stopped security_opt: - no-new-privileges:true networks: - proxy expose: - 9000 ports: - 9000:9000 volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - ./data:/data labels: - "traefik.enable=true" - "traefik.http.routers.portainer.entrypoints=ht tp" - "traefik.http.routers.portainer.rule=Host(`por tain er.marduk.com`)" - "traefik.http.routers.portainer.middlewares=ht tps-redirect@file" - "traefik.http.middlewares.portainer-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.portainer.middlewares=po rtai ner-https-redirect" - "traefik.http.routers.portainer-secure.entrypoints=https" - "traefik.http.routers.portainer-secure.rule=Host(`portainer.marduk.com`)" - "traefik.http.routers.portainer-secure.tls=true" - "traefik.http.routers.portainer-secure.tls.certresolver=http" - "traefik.http.routers.portainer-secure.service=portainer" - "traefik.http.services.portainer.loadbalancer. serv er.port=9000" - "traefik.docker.network=proxy" wireguard: image: linuxserver/wireguard container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SERVERURL=vpn.marduk.com #optional - SERVERPORT=51820 #optional - PEERS=5 #optional - PEERDNS=auto #optional - INTERNAL_SUBNET=10.13.13.0 #optional volumes: - /path/to/appdata/config:/config - /lib/modules:/lib/modules ports: - 51820:51820/udp sysctls: - net.ipv4.conf.all.src_valid_mark=1 labels: - "traefik.enable=false" restart: always Pub-Transmission: image: linuxserver/transmission container_name: Pub-Transmission network_mode: "proxy" environment: - PUID=1000 - PGID=1000 - TZ=Europe/Madrid #- TRANSMISSION_WEB_HOME=/kettu/ #optional - USER=admin #optional - PASS=pass1234 #optional volumes: - /opt/containers/transmission/public:/config - /mnt/hdd6/Downloads/complete:/downloads - /mnt/hdd6/Downloads:/watch ports: - 9091:9091 - 51413:51413 - 51413:51413/udp labels: - "traefik.enable=true" - "traefik.http.routers.Pub-Transmission.entrypoints=http" - "traefik.http.routers.Pub-Transmission.rule=Host(`tor.marduk.com`)" - "traefik.http.middlewares.Pub-Transmission-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.Pub-Transmission.middlewares=Pub-Transmission-https-redirect" - "traefik.http.routers.Pub-Transmission-secure.entrypoints=https" - "traefik.http.routers.Pub-Transmission-secure.rule=Host(`tor.marduk.com`)" - "traefik.http.routers.Pub-Transmission-secure.tls=true" - "traefik.http.routers.Pub-Transmission-secure.tls.certresolver=http" - "traefik.http.routers.Pub-Transmission-secure.service=Pub-Transmission" - "traefik.http.services.Pub-Transmission.loadbalancer.server.port=9091" - "traefik.docker.network=proxy" restart: unless-stopped ouroboros: container_name: ouroboros hostname: ouroboros image: pyouroboros/ouroboros network_mode: "proxy" environment: - CLEANUP=true - INTERVAL=3600 - LOG_LEVEL=info - SELF_UPDATE=true - TZ=Europe/Madrid restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock # netdata: # image: netdata/netdata:latest # container_name: netdata # network_mode: "proxy" # hostname: marduk.com # ports: # - 19999:19999 # environment: # - PGID=998 # - VIRTUAL_PORT=19999 # cap_add: # - SYS_PTRACE # security_opt: # - apparmor:unconfined # volumes: # - /etc/passwd:/opt/containers/netdata/passwd:ro # - /etc/group:/opt/containers/netdata/group:ro # - /proc:/host/proc:ro # - /sys:/host/sys:ro # - /opt/containers/netdata/etc:/etc/netdata # - /var/run/docker.sock:/var/run/docker.sock:ro # labels: # - "traefik.enable=true" # - "traefik.http.routers.netdata.entrypoints=http " # - "traefik.http.routers.netdata.rule=Host(`monit or.m arduk.com`)" # - "traefik.http.middlewares.netdata-https-redirect.redirectscheme.scheme=https" # - "traefik.http.routers.netdata-secure.middlewares=netdata-auth" # - "traefik.http.routers.netdata.middlewares=netd ata-https-redirect" # - "traefik.http.routers.netdata-secure.entrypoints=https" # - "traefik.http.routers.netdata-secure.rule=Host(`monitor.marduk.com`)" # - "traefik.http.routers.netdata-secure.tls=true" # - "traefik.http.routers.netdata-secure.tls.certresolver=http" # - "traefik.http.routers.netdata-secure.service=netdata" # - "traefik.http.services.netdata.loadbalancer.se rver .port=19999" # - "traefik.docker.network=proxy" # restart: always duplicati: image: linuxserver/duplicati container_name: duplicati network_mode: "proxy" environment: - PUID=0 - PGID=0 - TZ=Europe/London #- CLI_ARGS= volumes: - /opt/containers/duplicati/config:/config #- /mnt/backups/duplicati:/backups - /:/source ports: - 8200:8200 labels: - "traefik.enable=true" - "traefik.http.routers.duplicati.entrypoints=ht tp" - "traefik.http.routers.duplicati.rule=Host(`bac kup. marduk.com`)" - "traefik.http.middlewares.duplicati-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.duplicati.middlewares=du plic ati-https-redirect" - "traefik.http.routers.duplicati-secure.entrypoints=https" - "traefik.http.routers.duplicati-secure.rule=Host(`backup.marduk.com`)" - "traefik.http.routers.duplicati-secure.tls=true" - "traefik.http.routers.duplicati-secure.tls.certresolver=http" - "traefik.http.routers.duplicati-secure.service=duplicati" - "traefik.http.services.duplicati.loadbalancer. serv er.port=8200" - "traefik.docker.network=proxy" restart: always fr_db: image: mariadb:latest container_name: FileRun-DataBase networks: - default - proxy ports: - 3307:3306 expose: - 3307 environment: MYSQL_ROOT_PASSWORD: RootPass@1 MYSQL_USER: usuario1 MYSQL_PASSWORD: password00001 MYSQL_DATABASE: fr_database volumes: - /opt/containers/filerun/db:/var/lib/mysql restart: always filerun: image: afian/filerun container_name: filerun network_mode: "proxy" environment: FR_DB_HOST: fr_db FR_DB_PORT: 3306 FR_DB_NAME: fr_database FR_DB_USER: usuario1 FR_DB_PASS: password00001 APACHE_RUN_USER: www-data APACHE_RUN_USER_ID: 33 APACHE_RUN_GROUP: www-data APACHE_RUN_GROUP_ID: 33 depends_on: - fr_db links: - fr_db:fr_db ports: - "8091:80" expose: - 8091 volumes: - /opt/containers/filerun/html:/var/www/html - /mnt:/user-files labels: - "traefik.enable=true" - "traefik.http.routers.filerun.entrypoints=http " - "traefik.http.routers.filerun.rule=Host(`filer un.m arduk.com`)" - "traefik.http.middlewares.filerun-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.filerun.middlewares=file run-https-redirect" - "traefik.http.routers.filerun-secure.entrypoints=https" - "traefik.http.routers.filerun-secure.rule=Host(`filerun.marduk.com`)" - "traefik.http.routers.filerun-secure.tls=true" - "traefik.http.routers.filerun-secure.tls.certresolver=http" - "traefik.http.routers.filerun-secure.service=filerun" - "traefik.http.services.filerun.loadbalancer.se rver .port=80" - "traefik.docker.network=proxy" restart: always adguard-home: image: adguard/adguardhome container_name: "Adguard" network_mode: "proxy" dns: - 127.0.0.1 - 1.1.1.1 ports: - '53:53/tcp' - '53:53/udp' - '67:67/udp' - '8053:80/tcp' - '853:853/tcp' - '3000:3000/tcp' volumes: - /opt/containers/adguard/work:/opt/adguardhome/work - /opt/containers/adguard/confdir:/opt/adguardhome/conf labels: - "traefik.enable=true" - "traefik.http.routers.adguard.entrypoints=http " - "traefik.http.routers.adguard.rule=Host(`adgua rd.m arduk.com`)" - "traefik.http.middlewares.adguard-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.adguard.middlewares=adgu ard-https-redirect" - "traefik.http.routers.adguard-secure.entrypoints=https" - "traefik.http.routers.adguard-secure.rule=Host(`adguard.marduk.com`)" - "traefik.http.routers.adguard-secure.tls=true" - "traefik.http.routers.adguard-secure.tls.certresolver=http" - "traefik.http.routers.adguard-secure.service=adguard" - "traefik.http.services.adguard.loadbalancer.se rver .port=80" - "traefik.docker.network=proxy" restart: always networks: proxy: external: true básicamente lo que tienes que conseguir es un certificado de wildcard (*.tudominio.com) por ejemplo de letsencrypt. entonces todos los servicios usan este certificado (por ejemplo web.tudominio.com utorrent.tudominio.com, etc) y traefik dirige a cada visitante al servicio/puerto con las líneas que hay en labels. luego es importante que traefik y el servicio que quieras estén en la misma red de docker. yo al principio no los tenía en la misma red y no me iba nada. si aún tienes dudas me dices y miro los docker-compose para darte más ejemplos |
15-may-2022 07:05
#15
|
No se como estais haciendo el deploy. - Si usais los servicios a nivel casero local, en la lan, no hace falta liarse tanto con proxies inversos tipo traefik, nginx, subdominios... Poned heimdall y ya esta. - Si usais los servicios a nivel casero local, en la lan, pero quereis exponer alguno a internet, usad vpn o aislar ese servicio y exponer su puerto. - Si usais los servicios todos expuestos en internet, proxi inverso. |
15-may-2022 12:30
#16
|
este shur sabe! yo lo tengo montado en un Ubuntu server y me suena que era todo tal que así, la única diferencia que tengo yo es que tengo los docker compose de cada servicio separado.
básicamente lo que tienes que conseguir es un certificado de wildcard (*.tudominio.com) por ejemplo de letsencrypt. entonces todos los servicios usan este certificado (por ejemplo web.tudominio.com utorrent.tudominio.com, etc) y traefik dirige a cada visitante al servicio/puerto con las líneas que hay en labels. luego es importante que traefik y el servicio que quieras estén en la misma red de docker. yo al principio no los tenía en la misma red y no me iba nada. si aún tienes dudas me dices y miro los docker-compose para darte más ejemplos ![]() https://doc.traefik.io/traefik/https...cate-resolvers |
28-may-2022 11:34
#17
|
Te paso uno que me pidió otro shur hace unos meses. Habrá cosas regular o mal pero tampoco soy un experto y me me ido quedando con lo que funciona.
Este el es compose: *********************** version: '3' services: traefik: image: traefik:latest container_name: traefik restart: unless-stopped security_opt: - no-new-privileges:true networks: - proxy expose: - 8080 ports: - 80:80 - 443:443 - 8080:8080 volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - ./data/traefik.yml:/traefik.yml:ro - ./data/acme.json:/acme.json - ./data/config.yml:/config.yml:ro #- /opt/containers/traefik/rules:/rules:ro labels: - "traefik.enable=true" - "traefik.http.routers.traefik.entrypoints=http " - "traefik.http.routers.traefik.rule=Host(`traef ik.m arduk.com`)" #- "traefik.http.middlewares.traefik-auth.basicauth.users=marduk:$$2y$$05$$LhavaIzGBq8U edGuaZATvJAfeVqXWsIOE03gVQgyLrpdCgldIGL4XG" - "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.traefik.middlewares=trae fik-https-redirect" - "traefik.http.routers.traefik-secure.entrypoints=https" - "traefik.http.routers.traefik-secure.rule=Host(`traefik.marduk.com`)" - "traefik.http.routers.traefik-secure.middlewares=traefik-auth" - "traefik.http.routers.traefik-secure.tls=true" - "traefik.http.routers.traefik-secure.tls.certresolver=http" - "traefik.http.routers.traefik-secure.service=api@internal" portainer: image: portainer/portainer-ce:latest container_name: portainer restart: unless-stopped security_opt: - no-new-privileges:true networks: - proxy expose: - 9000 ports: - 9000:9000 volumes: - /etc/localtime:/etc/localtime:ro - /var/run/docker.sock:/var/run/docker.sock:ro - ./data:/data labels: - "traefik.enable=true" - "traefik.http.routers.portainer.entrypoints=ht tp" - "traefik.http.routers.portainer.rule=Host(`por tain er.marduk.com`)" - "traefik.http.routers.portainer.middlewares=ht tps-redirect@file" - "traefik.http.middlewares.portainer-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.portainer.middlewares=po rtai ner-https-redirect" - "traefik.http.routers.portainer-secure.entrypoints=https" - "traefik.http.routers.portainer-secure.rule=Host(`portainer.marduk.com`)" - "traefik.http.routers.portainer-secure.tls=true" - "traefik.http.routers.portainer-secure.tls.certresolver=http" - "traefik.http.routers.portainer-secure.service=portainer" - "traefik.http.services.portainer.loadbalancer. serv er.port=9000" - "traefik.docker.network=proxy" wireguard: image: linuxserver/wireguard container_name: wireguard cap_add: - NET_ADMIN - SYS_MODULE environment: - PUID=1000 - PGID=1000 - TZ=Europe/London - SERVERURL=vpn.marduk.com #optional - SERVERPORT=51820 #optional - PEERS=5 #optional - PEERDNS=auto #optional - INTERNAL_SUBNET=10.13.13.0 #optional volumes: - /path/to/appdata/config:/config - /lib/modules:/lib/modules ports: - 51820:51820/udp sysctls: - net.ipv4.conf.all.src_valid_mark=1 labels: - "traefik.enable=false" restart: always Pub-Transmission: image: linuxserver/transmission container_name: Pub-Transmission network_mode: "proxy" environment: - PUID=1000 - PGID=1000 - TZ=Europe/Madrid #- TRANSMISSION_WEB_HOME=/kettu/ #optional - USER=admin #optional - PASS=pass1234 #optional volumes: - /opt/containers/transmission/public:/config - /mnt/hdd6/Downloads/complete:/downloads - /mnt/hdd6/Downloads:/watch ports: - 9091:9091 - 51413:51413 - 51413:51413/udp labels: - "traefik.enable=true" - "traefik.http.routers.Pub-Transmission.entrypoints=http" - "traefik.http.routers.Pub-Transmission.rule=Host(`tor.marduk.com`)" - "traefik.http.middlewares.Pub-Transmission-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.Pub-Transmission.middlewares=Pub-Transmission-https-redirect" - "traefik.http.routers.Pub-Transmission-secure.entrypoints=https" - "traefik.http.routers.Pub-Transmission-secure.rule=Host(`tor.marduk.com`)" - "traefik.http.routers.Pub-Transmission-secure.tls=true" - "traefik.http.routers.Pub-Transmission-secure.tls.certresolver=http" - "traefik.http.routers.Pub-Transmission-secure.service=Pub-Transmission" - "traefik.http.services.Pub-Transmission.loadbalancer.server.port=9091" - "traefik.docker.network=proxy" restart: unless-stopped ouroboros: container_name: ouroboros hostname: ouroboros image: pyouroboros/ouroboros network_mode: "proxy" environment: - CLEANUP=true - INTERVAL=3600 - LOG_LEVEL=info - SELF_UPDATE=true - TZ=Europe/Madrid restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock # netdata: # image: netdata/netdata:latest # container_name: netdata # network_mode: "proxy" # hostname: marduk.com # ports: # - 19999:19999 # environment: # - PGID=998 # - VIRTUAL_PORT=19999 # cap_add: # - SYS_PTRACE # security_opt: # - apparmor:unconfined # volumes: # - /etc/passwd:/opt/containers/netdata/passwd:ro # - /etc/group:/opt/containers/netdata/group:ro # - /proc:/host/proc:ro # - /sys:/host/sys:ro # - /opt/containers/netdata/etc:/etc/netdata # - /var/run/docker.sock:/var/run/docker.sock:ro # labels: # - "traefik.enable=true" # - "traefik.http.routers.netdata.entrypoints=http " # - "traefik.http.routers.netdata.rule=Host(`monit or.m arduk.com`)" # - "traefik.http.middlewares.netdata-https-redirect.redirectscheme.scheme=https" # - "traefik.http.routers.netdata-secure.middlewares=netdata-auth" # - "traefik.http.routers.netdata.middlewares=netd ata-https-redirect" # - "traefik.http.routers.netdata-secure.entrypoints=https" # - "traefik.http.routers.netdata-secure.rule=Host(`monitor.marduk.com`)" # - "traefik.http.routers.netdata-secure.tls=true" # - "traefik.http.routers.netdata-secure.tls.certresolver=http" # - "traefik.http.routers.netdata-secure.service=netdata" # - "traefik.http.services.netdata.loadbalancer.se rver .port=19999" # - "traefik.docker.network=proxy" # restart: always duplicati: image: linuxserver/duplicati container_name: duplicati network_mode: "proxy" environment: - PUID=0 - PGID=0 - TZ=Europe/London #- CLI_ARGS= volumes: - /opt/containers/duplicati/config:/config #- /mnt/backups/duplicati:/backups - /:/source ports: - 8200:8200 labels: - "traefik.enable=true" - "traefik.http.routers.duplicati.entrypoints=ht tp" - "traefik.http.routers.duplicati.rule=Host(`bac kup. marduk.com`)" - "traefik.http.middlewares.duplicati-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.duplicati.middlewares=du plic ati-https-redirect" - "traefik.http.routers.duplicati-secure.entrypoints=https" - "traefik.http.routers.duplicati-secure.rule=Host(`backup.marduk.com`)" - "traefik.http.routers.duplicati-secure.tls=true" - "traefik.http.routers.duplicati-secure.tls.certresolver=http" - "traefik.http.routers.duplicati-secure.service=duplicati" - "traefik.http.services.duplicati.loadbalancer. serv er.port=8200" - "traefik.docker.network=proxy" restart: always fr_db: image: mariadb:latest container_name: FileRun-DataBase networks: - default - proxy ports: - 3307:3306 expose: - 3307 environment: MYSQL_ROOT_PASSWORD: RootPass@1 MYSQL_USER: usuario1 MYSQL_PASSWORD: password00001 MYSQL_DATABASE: fr_database volumes: - /opt/containers/filerun/db:/var/lib/mysql restart: always filerun: image: afian/filerun container_name: filerun network_mode: "proxy" environment: FR_DB_HOST: fr_db FR_DB_PORT: 3306 FR_DB_NAME: fr_database FR_DB_USER: usuario1 FR_DB_PASS: password00001 APACHE_RUN_USER: www-data APACHE_RUN_USER_ID: 33 APACHE_RUN_GROUP: www-data APACHE_RUN_GROUP_ID: 33 depends_on: - fr_db links: - fr_db:fr_db ports: - "8091:80" expose: - 8091 volumes: - /opt/containers/filerun/html:/var/www/html - /mnt:/user-files labels: - "traefik.enable=true" - "traefik.http.routers.filerun.entrypoints=http " - "traefik.http.routers.filerun.rule=Host(`filer un.m arduk.com`)" - "traefik.http.middlewares.filerun-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.filerun.middlewares=file run-https-redirect" - "traefik.http.routers.filerun-secure.entrypoints=https" - "traefik.http.routers.filerun-secure.rule=Host(`filerun.marduk.com`)" - "traefik.http.routers.filerun-secure.tls=true" - "traefik.http.routers.filerun-secure.tls.certresolver=http" - "traefik.http.routers.filerun-secure.service=filerun" - "traefik.http.services.filerun.loadbalancer.se rver .port=80" - "traefik.docker.network=proxy" restart: always adguard-home: image: adguard/adguardhome container_name: "Adguard" network_mode: "proxy" dns: - 127.0.0.1 - 1.1.1.1 ports: - '53:53/tcp' - '53:53/udp' - '67:67/udp' - '8053:80/tcp' - '853:853/tcp' - '3000:3000/tcp' volumes: - /opt/containers/adguard/work:/opt/adguardhome/work - /opt/containers/adguard/confdir:/opt/adguardhome/conf labels: - "traefik.enable=true" - "traefik.http.routers.adguard.entrypoints=http " - "traefik.http.routers.adguard.rule=Host(`adgua rd.m arduk.com`)" - "traefik.http.middlewares.adguard-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.adguard.middlewares=adgu ard-https-redirect" - "traefik.http.routers.adguard-secure.entrypoints=https" - "traefik.http.routers.adguard-secure.rule=Host(`adguard.marduk.com`)" - "traefik.http.routers.adguard-secure.tls=true" - "traefik.http.routers.adguard-secure.tls.certresolver=http" - "traefik.http.routers.adguard-secure.service=adguard" - "traefik.http.services.adguard.loadbalancer.se rver .port=80" - "traefik.docker.network=proxy" restart: always networks: proxy: external: true Muchas gracias por pasarmelo. No fui capaz de hacerlo funcionar, como tenia que entregar el trbajo lo deje. Lo hice con Caddy que me resulto muchisimo mas facil. Ahora estoy probando SWAG que tambien es muy facil. |
30-may-2022 05:52
#18
| Es normal. A mi me costó bastante dejarlo funcionando en la versión 1.7 y migrar a la versión2 fue toda una odisea. De hecho mi idea es quitar Traefik 2 y sustituirlo por nginx, que tiene un gui desde el que poder gestionar servicios sin necesidad de editar ficheros. |
30-may-2022 06:09
#19
| Yo tengo mi home server con Traefik y sin problema. Pones tus labels pertinentes en cada servicio y a gozar. |
30-may-2022 09:50
#20
|
He probado nginx proxy manager ya que se hace todo por interfaz web pero no se por que cada vez que intentaba generar el certificado me daba error interno. Con SWAG lo estoy haciendo sin problema. |
30-may-2022 10:10
#21
|
17-jun-2022 17:57
#22
|
Después de pelearme y pelearme y sabeis que? pelearme con traefik al final he conseguido hacerlo andar. Desde problemas de sintaxis a otros varios, pero por fin lo conseguí! Perdonad que me ponga así pero esto ya es algo avanzado para mi. Os dejo la manera mas sencilla y explicativa de hacerlo. Para negados como yo es una mina de oro xD Este es un archivo que también se puede descargar en el propio vídeo, pero lo dejo por aquí mas a mano. Igualmente copio el contenido por si alguna vez el vídeo desaparece. https://drive.google.com/file/d/1nTs...rLjskP7kw/view Código:
Easy guide to setup traefik and duckdns using docker compose in debian 9
#Install-Docker
#command-to-update-and-upgrade-debian-repository
sudo apt update && sudo apt upgrade
#command-to-install-requirement-for-docker
sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
#command-to-add-debian-repository-key
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
#command-to-add-debian-repository
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
#command-to-update-debian-repository
sudo apt update
#command-to-install-docker-engine
sudo apt install docker-ce
#command-to-view-docker-service-status
sudo systemctl status docker
#ctrl+c to quit
#command-to-download-docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#command-to-allow-executing-docker-compose
sudo chmod +x /usr/local/bin/docker-compose
#command-to-view-docker-compose-version
docker-compose --version
#command-to-edit-daemon-config-file
sudo nano /etc/docker/https://daemon.json
{
"data-root": "/home/docker/.all",
"ipv6": false
}
#ctrl+x-->y-and-enter-to-save-and-quit
#command-to-restart-docker-service-and-load-new-daemon-config
sudo systemctl restart https://docker.service
#command-to-install-hash-password-generator
sudo apt install apache2-utils -y
#command-to-generate-hashed-password
*FOR THIS TUTORIAL I'M USING "YOURUSERNAME YOURPASSWORD" YOU CAN CHANGE THAT ANYWAY YOU LIKE
echo $(htpasswd -nb YOURUSERNAME YOURPASSWORD) | sed -e s/\\$/\\$\\$/g >> usersfile
#command-to-view-generated-hashed-password
cat usersfile
PASTE-YOUR-HASHED-USER-PASSWORD-HERE
#command-to-remove-generated-hashed-file
rm -f usersfile
#Preparing-Neccesary-Info
#DuckDNS-Subdomain:
#DuckDNS-Token:
#Email-For-LetsEncrypt:
#Plain-User-Password:
#Hashed-User-Password:
#command-to-create-duckdns-container-folder
mkdir -p /home/docker/container/ddns/
#command-to-make-docker-compose-file-for-duckdns
nano /home/docker/container/ddns/https://docker-compose.yml
---
version: "2.1"
services:
ddns:
image: https://lscr.io/linuxserver/duckdns:latest
container_name: ddns
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- SUBDOMAINS=https://PASTE-SUBDOMAIN-HERE.duckdns.org
- TOKEN=PASTE-TOKEN-HERE
- LOG_FILE=false
volumes:
- ./config:/config
#ctrl+x-->y-and-enter-to-save-and-quit
#command-to-start-duckdns-container
docker-compose -f ~/container/ddns/https://docker-compose.yml up -d
#command-to-stop-and-takedown-duckdns-container
docker-compose -f ~/container/ddns/https://docker-compose.yml down
#Setup-Traefik
#command-to-create-traefik-container-folder
mkdir -p /home/docker/container/traefik/etc
#https://command-to-make-acme.json-file-(file-to-store-ssl-info)
touch /home/docker/container/traefik/etc/https://acme.json
#https://command-to-limit-acme.json-file-permission
chmod 600 /home/docker/container/traefik/etc/https://acme.json
#command-to-make-static-traefik-config-file
nano /home/docker/container/traefik/etc/https://traefik.yml
global:
checkNewVersion: true
sendAnonymousUsage: false
entryPoints:
http:
address: :80
http:
redirections:
entryPoint:
to: https
scheme: https
https:
address: :443
http:
tls:
certResolver: letsencrypt
domains:
- main: https://PASTE-SUBDOMAIN-HERE.duckdns.org
sans:
- '*.https://PASTE-SUBDOMAIN-HERE.duckdns.org'
middlewares:
- securityHeaders@file
providers:
providersThrottleDuration: 2s
file:
filename: /etc/traefik/https://traefik_dynamic.yml
watch: true
docker:
watch: true
network: proxy
defaultRule: "Host(`{{ index .Labels \"https://com.docker.compose.service\"}}.PASTE-SUBDOMAIN-HERE.duckdns.org`)"
swarmModeRefreshSeconds: 15s
exposedByDefault: false
endpoint: "tcp://dockersocket:2375"
api:
dashboard: true
log:
filePath: /etc/traefik/https://traefik.log
level: ERROR
certificatesResolvers:
letsencrypt:
acme:
email: PASTE-EMAIL-HERE
storage: /etc/traefik/https://acme.json
caServer: https://acme-v02.api.letsencrypt.org/directory
dnsChallenge:
provider: duckdns
resolvers:
- "1.1.1.1:53"
- "8.8.8.8:53"
#ctrl+x-->y-and-enter-to-save-and-quit
#command-to-make-traefik-dynamic-config-file
nano /home/docker/container/traefik/etc/https://traefik_dynamic.yml
http:
middlewares:
securityHeaders:
headers:
accessControlAllowMethods:
- GET
- OPTIONS
- PUT
customResponseHeaders:
X-Robots-Tag: "none,noarchive,nosnippet,notranslate,noimageindex"
X-Forwarded-Proto: "https"
sslProxyHeaders:
X-Forwarded-Proto: https
referrerPolicy: "strict-origin-when-cross-origin"
hostsProxyHeaders:
- "X-Forwarded-Host"
customRequestHeaders:
X-Forwarded-Proto: "https"
accessControlAllowCredentials: true
addVaryHeader: true
accessControlMaxAge: 100
sslRedirect: true
sslForceHost: true
contentTypeNosniff: true
browserXssFilter: true
forceSTSHeader: true
stsIncludeSubdomains: true
stsSeconds: 63072000
stsPreload: true
frameDeny: true
featurePolicy: "camera 'none'; geolocation 'none'; microphone 'none'; payment 'none'; usb 'none'; vr 'none';"
tls:
options:
default:
minVersion: VersionTLS12
sniStrict: true
cipherSuites:
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_CHACHA20_POLY1305_SHA256
curvePreferences:
- CurveP521
- CurveP384
#ctrl+x-->y-and-enter-to-save-and-quit
#command-to-make-docker-compose-file-for-traefik
nano /home/docker/container/traefik/https://docker-compose.yml
---
version: "2.1"
services:
traefik:
image: traefik:latest
container_name: traefik
restart: unless-stopped
ports:
- 80:80
- 443:443
- 8080:8080 # Dashboard port
volumes:
- ./config/:/config/
- ./etc/:/etc/traefik/
networks:
- proxy
labels:
https://traefik.enable: true
https://traefik.http.routers.api.rule: Host(`https://PASTE-SUBDOMAIN-HERE.duckdns.org`)
https://traefik.http.routers.api.entryPoints: https
https://traefik.http.routers.api.service: api@internal
https://traefik.http.routers.api.middlewares: api-auth
https://traefik.http.middlewares.api-auth.basicauth.users: "PASTE-HASHED-USER-PASSWORD-HERE"
https://traefik.http.middlewares.api-auth.basicauth.removeheader: true
environment:
DOCKER_HOST: dockersocket
DUCKDNS_TOKEN: PASTE-TOKEN-HERE
depends_on:
- dockersocket
dockersocket:
image: tecnativa/docker-socket-proxy
container_name: dockersocket
restart: unless-stopped
volumes:
- /var/run/https://docker.sock:/var/run/docker.sock
- ./config/:/config/
networks:
- proxy
environment:
CONTAINERS: 1
POST: 0
networks:
proxy:
driver: bridge
external: true
#ctrl+x-->y-and-enter-to-save-and-quit
#command-to-create-traefik-network-named-proxy
docker network create proxy
#command-to-start-traefik-container
docker-compose -f ~/container/traefik/https://docker-compose.yml up -d
#run-again-to-make-sure-traefik-container-already-up-and-running
#command-to-stop-and-takedown-traefik-container
docker-compose -f ~/container/traefik/https://docker-compose.yml down
#command-to-check-traefik-log-file
cat ~/container/traefik/etc/https://traefik.log
Thanks for watching
See you at next tutorial
What I use to make this tutorial :
OS : Debian 9
User Name : docker
Editor : nano
|

