Sfoglia il codice sorgente

update image versions, add matrix wellknown service, use per-host traefik cert vols

Josh Bicking 3 anni fa
parent
commit
d3ebca38fa
1 ha cambiato i file con 27 aggiunte e 8 eliminazioni
  1. 27 8
      docker-compose.yml

+ 27 - 8
docker-compose.yml

@@ -1,4 +1,4 @@
-version: '3'
+version: '3.7'
 
 # Environment variables are replaced with definitions in .env, when run with:
 #
@@ -8,6 +8,9 @@ networks:
   default:
     driver: overlay
 
+volumes:
+  traefik-certs: {}
+
 services:
   traefik:
     image: traefik:v2.2
@@ -36,11 +39,13 @@ services:
         # Use LS to get/renew certs for the TLD & subdomains
         - traefik.http.routers.traefik.tls.certresolver=le
         - traefik.http.routers.traefik.tls.domains[0].main=${DOMAIN}
-        - traefik.http.routers.traefik.tls.domains[1].sans=*.${DOMAIN}
+        - traefik.http.routers.traefik.tls.domains[0].sans=*.${DOMAIN}
 
     volumes:
       - /var/run/docker.sock:/var/run/docker.sock:ro
-      - ${CONTAINERS_DIR}/traefik/static.toml:/certificates/static.toml
+      - ${CONTAINERS_DIR}/traefik/static.toml:/static.toml
+      # cert storage can't be shared: https://doc.traefik.io/traefik/https/acme/#storage
+      - traefik-certs:/certificates
     command:
       # Require a "traefik.enable=true" label
       - --providers.docker.exposedbydefault=false
@@ -60,8 +65,9 @@ services:
       - --certificatesresolvers.le.acme.storage=/certificates/acme.json
       - --certificatesresolvers.le.acme.dnschallenge.provider=cloudflare
       - --certificatesresolvers.le.acme.dnschallenge.resolvers=1.1.1.1:53,8.8.8.8:53
-      # Uncomment for testing
+      # debug, uncomment for testing
       #- --certificatesresolvers.le.acme.caServer=https://acme-staging-v02.api.letsencrypt.org/directory
+      #- --log.level=DEBUG
 
       - --accesslog=true
       - --log=true
@@ -69,7 +75,7 @@ services:
       # Enable the traefik dashboard
       - --api=true
 
-      - --providers.file.filename=/certificates/static.toml
+      - --providers.file.filename=/static.toml
     environment:
       - CLOUDFLARE_EMAIL=${CLOUDFLARE_EMAIL}
       - CLOUDFLARE_API_KEY=${CLOUDFLARE_API_KEY}
@@ -92,7 +98,7 @@ services:
       - ${CONTAINERS_DIR}/jekyll/vendor_cache:/vendor
 
   postgres:
-    image: postgres:10.5
+    image: postgres:13.2
     volumes:
       - ${CONTAINERS_DIR}/postgres/data:/var/lib/postgresql/data
       - ${CONTAINERS_DIR}/postgres/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
@@ -102,7 +108,7 @@ services:
     restart: always
 
   nextcloud:
-    image: nextcloud:20.0.4
+    image: nextcloud:20.0.9
     deploy:
       labels:
         - traefik.enable=true
@@ -136,7 +142,7 @@ services:
     restart: always
 
   matrix:
-    image: matrixdotorg/synapse:v1.25.0
+    image: matrixdotorg/synapse:v1.33.2
     deploy:
       labels:
         - traefik.enable=true
@@ -165,6 +171,19 @@ services:
       - ${CONTAINERS_DIR}/matrix:/data
     restart: always
 
+  matrix_wellknown:
+    image: adrianrudnik/matrix-wellknown-server:1.0.1
+    volumes:
+      - ${CONTAINERS_DIR}/matrix/wellknown:/var/schema
+    deploy:
+      labels:
+        - traefik.enable=true
+        - traefik.http.routers.matrix-wellknown.tls=true
+        - traefik.http.routers.matrix-wellknown.rule=Host(`matrix.${DOMAIN}`) && PathPrefix(`/.well-known/matrix/`)
+        - traefik.http.services.matrix-wellknown.loadbalancer.server.port=8080
+    expose:
+      - "8080"
+
   selfoss:
     image: hardware/selfoss
     deploy: