commit 345d73cf50300a02ee3f871c062a97cfb29a22a6 Author: Thomas Renger Date: Sun Mar 24 07:47:25 2024 +0100 add docker-composee examples for traefik diff --git a/docker-compose-examples/roundcubemail/docker-compose.yaml b/docker-compose-examples/roundcubemail/docker-compose.yaml new file mode 100644 index 0000000..8e105c8 --- /dev/null +++ b/docker-compose-examples/roundcubemail/docker-compose.yaml @@ -0,0 +1,55 @@ +version: '3.3' + +volumes: + db_data: + roundcube-temp: + +services: + db: + image: mariadb:10.6 + volumes: + - db_data:/var/lib/mysql + restart: always + environment: + MYSQL_ROOT_PASSWORD: ****** + MYSQL_DATABASE: roundcube + MYSQL_USER: roundcube + MYSQL_PASSWORD: ****** + + roundcubemail: + depends_on: + - db + image: roundcube/roundcubemail + volumes: + - roundcube-temp:/tmp/roundcube-temp + restart: always + environment: + ROUNDCUBEMAIL_DEFAULT_HOST: ssl://imap.wazong.de + ROUNDCUBEMAIL_DEFAULT_PORT: 993 + ROUNDCUBEMAIL_SMTP_SERVER: tls://mail.wazong.de + ROUNDCUBEMAIL_DB_TYPE: mysql + ROUNDCUBEMAIL_DB_HOST: db + ROUNDCUBEMAIL_DB_NAME: roundcube + ROUNDCUBEMAIL_DB_USER: roundcube + ROUNDCUBEMAIL_DB_PASSWORD: ****** + networks: + - default + - traefik + labels: + - traefik.enable=true + - traefik.http.routers.roundcube-nyx.rule=HostRegexp(`{host:mail.wazong.de}`) + - traefik.http.routers.roundcube-nyx.entrypoints=pound + - traefik.http.routers.roundcube.rule=HostRegexp(`{host:mail.wazong.de}`) + - traefik.http.routers.roundcube.tls=true + - traefik.http.routers.roundcube.entrypoints=websecure + - traefik.http.services.roundcube.loadbalancer.healthcheck.path=/ + - traefik.http.services.roundcube.loadbalancer.healthcheck.interval=120s + - traefik.http.services.roundcube.loadbalancer.healthcheck.hostname=wazong.de + - traefik.http.services.roundcube.loadbalancer.healthcheck.headers.X-Forwarded-Proto=https + - traefik.docker.network=traefik_default + +networks: + default: + traefik: + external: + name: traefik_default diff --git a/docker-compose-examples/traefik/docker-compose.yaml b/docker-compose-examples/traefik/docker-compose.yaml new file mode 100644 index 0000000..4040cb1 --- /dev/null +++ b/docker-compose-examples/traefik/docker-compose.yaml @@ -0,0 +1,46 @@ +version: "3.3" + +services: + traefik: + image: "traefik:v2.10" + command: + - --entrypoints.web.address=:80 + - --entrypoints.websecure.address=:443 + - --entrypoints.pound.address=:9080 + - --entryPoints.pound.forwardedHeaders.trustedIPs=10.23.0.0/24 + - --entrypoints.mqtts.address=:8883 + - --providers.docker=true + - --providers.docker.exposedbydefault=false + - --providers.file.directory=/config/ + - --providers.file.watch=true + - --api + - --api.dashboard=true + - --accesslog + - --metrics.prometheus=true + - --metrics.prometheus.buckets=0.01,0.025,0.05,0.1,0.25,0.5,1.0,2.5,5.0,10.0 + network_mode: host + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + - "/opt/traefik/acme.json:/acme.json" + - "/opt/traefik/config:/config" + - "/opt/traefik/certs:/certs" + labels: + # Dashboard + - traefik.enable=true + - traefik.http.routers.traefik.rule=Host(`api.wazong.de`) + - traefik.http.routers.traefik.service=api@internal + - traefik.http.routers.traefik.tls=true + - traefik.http.routers.traefik.middlewares=authtraefik + - traefik.http.routers.traefik.entrypoints=websecure + - traefik.http.services.traefik.loadbalancer.server.port=888 + - traefik.http.middlewares.authtraefik.basicauth.users=admin:************** + + # global redirect to https + - traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`) + - traefik.http.routers.http-catchall.entrypoints=web + - traefik.http.routers.http-catchall.middlewares=redirect-to-https + + # middleware redirect + - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https + - traefik.http.middlewares.redirect-to-https.redirectscheme.port=443 + restart: always