commit c82df61c15a4c72dc2bc590ef59757af8a96d038 Author: William Date: Wed Aug 16 23:25:49 2023 +0200 feat: Add Traefik container diff --git a/traefik/.env.example b/traefik/.env.example new file mode 100644 index 0000000..c7f38b2 --- /dev/null +++ b/traefik/.env.example @@ -0,0 +1,2 @@ +NAS_DOMAIN=nas.example.org +NAS_URL=http://0.0.0.0:80 diff --git a/traefik/.gitignore b/traefik/.gitignore new file mode 100644 index 0000000..fc2569f --- /dev/null +++ b/traefik/.gitignore @@ -0,0 +1,2 @@ +.env +acme.json diff --git a/traefik/README.md b/traefik/README.md new file mode 100644 index 0000000..8a08e57 --- /dev/null +++ b/traefik/README.md @@ -0,0 +1,11 @@ +# About Traefik + +# How to setup + +```bash +docker network create web +touch acme.json +chmod 600 acme.json +cp .env.example .env # then edit +docker compose up -d +``` diff --git a/traefik/docker-compose.yml b/traefik/docker-compose.yml new file mode 100644 index 0000000..0d12c8d --- /dev/null +++ b/traefik/docker-compose.yml @@ -0,0 +1,45 @@ +version: "3.3" + +networks: + web: + external: true + +services: + traefik: + image: "traefik:v2.10" + restart: unless-stopped + networks: + - web + ports: + - "80:80" + - "443:443" +# - "8080:8080" + command: + # Entrypoints + - "--entrypoints.web.address=:80" + - "--entrypoints.web.http.redirections.entrypoint.to=websecure" + - "--entrypoints.websecure.address=:443" + - "--entrypoints.websecure.http.tls.certresolver=letsencrypt" + # Docker provider + - "--providers.docker" + - "--providers.docker.exposedbydefault=false" + - "--providers.docker.network=web" + # Let's encrypt + - "--certificatesresolvers.letsencrypt.acme.email=${CERT_EMAIL}" + # File provider + - "--providers.file.directory=/conf.d/" + - "--providers.file.watch=true" + # Dashboard +# - "--api.dashboard=true" +# - "--api.insecure=true" + environment: + NAS_DOMAIN: ${NAS_DOMAIN} + NAS_URL: ${NAS_URL} + volumes: + - "./conf.d:/conf.d" + - "./acme.json:/acme.json" + - "/var/run/docker.sock:/var/run/docker.sock:ro" + labels: + - "traefik.enable=true" + - "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https" + - "traefik.http.middlewares.https-redirect.redirectscheme.permanent=true"