refactor: move traefik configuration to docker-compose files via labels
This commit is contained in:
@@ -19,10 +19,32 @@ services:
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
|
||||
# Prod Router
|
||||
- "traefik.http.routers.adguard.rule=Host(`adguard.forust.xyz`)"
|
||||
- "traefik.http.routers.adguard.entrypoints=websecure"
|
||||
- "traefik.http.routers.adguard.middlewares=security-headers"
|
||||
- "traefik.http.routers.adguard.service=adguard"
|
||||
- "traefik.http.routers.adguard.tls=true"
|
||||
- "traefik.http.services.adguard.loadbalancer.server.port=3000"
|
||||
|
||||
# Local Router
|
||||
- "traefik.http.routers.adguard-local.rule=Host(`adguard.workstation.local`) || Host(`adguard.local`)"
|
||||
- "traefik.http.routers.adguard-local.entrypoints=websecure"
|
||||
- "traefik.http.routers.adguard-local.middlewares=security-headers"
|
||||
- "traefik.http.routers.adguard-local.service=adguard"
|
||||
- "traefik.http.routers.adguard-local.tls=true"
|
||||
|
||||
# Dev Router
|
||||
- "traefik.http.routers.adguard-dev.rule=Host(`adguard.gigaforust.local`)"
|
||||
- "traefik.http.routers.adguard-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.adguard-dev.middlewares=security-headers"
|
||||
- "traefik.http.routers.adguard-dev.service=adguard"
|
||||
- "traefik.http.routers.adguard-dev.tls=true"
|
||||
|
||||
- glance.name=adguard
|
||||
# - glance.icon=si:adguard
|
||||
- glance.url=https://adguard.forust.xyz/
|
||||
- glance.description=AdGuard Home is a network-wide software for blocking ads.
|
||||
networks:
|
||||
traefik-proxy:
|
||||
external: true
|
||||
external: true
|
||||
|
||||
+33
-9
@@ -11,20 +11,44 @@ services:
|
||||
- ./data:/app/data
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-k", "-f", "https://localhost:443/health"]
|
||||
test: [ "CMD", "curl", "-k", "-f", "https://localhost:443/health" ]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
networks:
|
||||
- traefik-proxy
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
- glance.name=dockmon
|
||||
# - glance.icon=sh:dockmon
|
||||
- glance.url=https://dockmon.forust.xyz/
|
||||
- glance.description=Dockmon is a lightweight Docker container monitoring and management tool with a user-friendly web interface.
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
|
||||
# Prod Router
|
||||
- "traefik.http.routers.dockmon.rule=Host(`dockmon.forust.xyz`)"
|
||||
- "traefik.http.routers.dockmon.entrypoints=websecure"
|
||||
- "traefik.http.routers.dockmon.middlewares=security-headers,dockmon-auth"
|
||||
- "traefik.http.routers.dockmon.service=dockmon"
|
||||
- "traefik.http.routers.dockmon.tls=true"
|
||||
- "traefik.http.services.dockmon.loadbalancer.server.port=443"
|
||||
- "traefik.http.services.dockmon.loadbalancer.server.scheme=https"
|
||||
- "traefik.http.services.dockmon.loadbalancer.serverstransport=insecureTransport@file"
|
||||
|
||||
# Local Router
|
||||
- "traefik.http.routers.dockmon-local.rule=Host(`dockmon.workstation.local`) || Host(`dockmon.local`)"
|
||||
- "traefik.http.routers.dockmon-local.entrypoints=websecure"
|
||||
- "traefik.http.routers.dockmon-local.middlewares=security-headers"
|
||||
- "traefik.http.routers.dockmon-local.service=dockmon"
|
||||
- "traefik.http.routers.dockmon-local.tls=true"
|
||||
|
||||
# Dev Router
|
||||
- "traefik.http.routers.dockmon-dev.rule=Host(`dockmon.gigaforust.local`)"
|
||||
- "traefik.http.routers.dockmon-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.dockmon-dev.middlewares=security-headers"
|
||||
- "traefik.http.routers.dockmon-dev.service=dockmon"
|
||||
- "traefik.http.routers.dockmon-dev.tls=true"
|
||||
|
||||
- glance.name=dockmon
|
||||
- glance.url=https://dockmon.forust.xyz/
|
||||
- glance.description=Dockmon is a lightweight Docker container monitoring and management tool with a user-friendly web interface.
|
||||
|
||||
networks:
|
||||
traefik-proxy:
|
||||
external: true
|
||||
traefik-proxy:
|
||||
external: true
|
||||
|
||||
+24
-2
@@ -25,11 +25,33 @@ services:
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
|
||||
# Prod Router
|
||||
- "traefik.http.routers.gitea.rule=Host(`gitea.forust.xyz`)"
|
||||
- "traefik.http.routers.gitea.entrypoints=websecure"
|
||||
- "traefik.http.routers.gitea.middlewares=security-headers"
|
||||
- "traefik.http.routers.gitea.service=gitea"
|
||||
- "traefik.http.routers.gitea.tls=true"
|
||||
- "traefik.http.services.gitea.loadbalancer.server.port=3000"
|
||||
|
||||
# Local Router
|
||||
- "traefik.http.routers.gitea-local.rule=Host(`gitea.workstation.local`) || Host(`gitea.local`)"
|
||||
- "traefik.http.routers.gitea-local.entrypoints=websecure"
|
||||
- "traefik.http.routers.gitea-local.middlewares=security-headers"
|
||||
- "traefik.http.routers.gitea-local.service=gitea"
|
||||
- "traefik.http.routers.gitea-local.tls=true"
|
||||
|
||||
# Dev Router
|
||||
- "traefik.http.routers.gitea-dev.rule=Host(`gitea.gigaforust.local`)"
|
||||
- "traefik.http.routers.gitea-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.gitea-dev.middlewares=security-headers"
|
||||
- "traefik.http.routers.gitea-dev.service=gitea"
|
||||
- "traefik.http.routers.gitea-dev.tls=true"
|
||||
ports:
|
||||
- "2221:22"
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
|
||||
db:
|
||||
image: docker.io/library/postgres:14
|
||||
restart: always
|
||||
@@ -41,7 +63,7 @@ services:
|
||||
- gitea-db
|
||||
volumes:
|
||||
- ./gitea-db/:/var/lib/postgresql/data
|
||||
|
||||
|
||||
networks:
|
||||
gitea-db:
|
||||
external: false
|
||||
|
||||
+22
-4
@@ -10,13 +10,31 @@ services:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
env_file: .env
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
|
||||
# Prod Router
|
||||
- "traefik.http.routers.glance.rule=Host(`glance.forust.xyz`)"
|
||||
- "traefik.http.routers.glance.entrypoints=websecure"
|
||||
- "traefik.http.routers.glance.middlewares=security-headers"
|
||||
- "traefik.http.routers.glance.tls=true"
|
||||
|
||||
# Local Router
|
||||
- "traefik.http.routers.glance-local.rule=Host(`glance.workstation.local`) || Host(`glance.local`)"
|
||||
- "traefik.http.routers.glance-local.entrypoints=websecure"
|
||||
- "traefik.http.routers.glance-local.middlewares=security-headers"
|
||||
- "traefik.http.routers.glance-local.tls=true"
|
||||
|
||||
# Dev Router
|
||||
- "traefik.http.routers.glance-dev.rule=Host(`glance.gigaforust.local`)"
|
||||
- "traefik.http.routers.glance-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.glance-dev.middlewares=security-headers"
|
||||
- "traefik.http.routers.glance-dev.tls=true"
|
||||
networks:
|
||||
- traefik-proxy
|
||||
- traefik-proxy
|
||||
dns:
|
||||
- 1.1.1.1
|
||||
- 8.8.8.8
|
||||
networks:
|
||||
traefik-proxy:
|
||||
external: true
|
||||
external: true
|
||||
|
||||
+26
-1
@@ -8,7 +8,32 @@ services:
|
||||
- ./files:/usr/share/nginx/html
|
||||
networks:
|
||||
- traefik-proxy
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
|
||||
# Prod Router
|
||||
- "traefik.http.routers.forust-homepage.rule=Host(`forust.xyz`)"
|
||||
- "traefik.http.routers.forust-homepage.entrypoints=websecure"
|
||||
- "traefik.http.routers.forust-homepage.middlewares=security-headers"
|
||||
- "traefik.http.routers.forust-homepage.service=forust-homepage"
|
||||
- "traefik.http.routers.forust-homepage.tls=true"
|
||||
- "traefik.http.services.forust-homepage.loadbalancer.server.port=80"
|
||||
|
||||
# Local Router
|
||||
- "traefik.http.routers.forust-homepage-local.rule=Host(`landing.workstation.local`) || Host(`landing.local`)"
|
||||
- "traefik.http.routers.forust-homepage-local.entrypoints=websecure"
|
||||
- "traefik.http.routers.forust-homepage-local.middlewares=security-headers"
|
||||
- "traefik.http.routers.forust-homepage-local.service=forust-homepage"
|
||||
- "traefik.http.routers.forust-homepage-local.tls=true"
|
||||
|
||||
# Dev Router
|
||||
- "traefik.http.routers.forust-homepage-dev.rule=Host(`landing.gigaforust.local`)"
|
||||
- "traefik.http.routers.forust-homepage-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.forust-homepage-dev.middlewares=security-headers"
|
||||
- "traefik.http.routers.forust-homepage-dev.service=forust-homepage"
|
||||
- "traefik.http.routers.forust-homepage-dev.tls=true"
|
||||
|
||||
networks:
|
||||
traefik-proxy:
|
||||
external: true
|
||||
external: true
|
||||
|
||||
+24
-2
@@ -4,7 +4,7 @@ services:
|
||||
# container_name: metube
|
||||
restart: unless-stopped
|
||||
# ports:
|
||||
# - "8081:8081"
|
||||
# - "8081:8081"
|
||||
environment:
|
||||
- DOWNLOAD_MODE=limited
|
||||
- MAX_CONCURRENT_DOWNLOADS=3
|
||||
@@ -16,8 +16,30 @@ services:
|
||||
- traefik.enable=true
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
|
||||
# Prod Router
|
||||
- "traefik.http.routers.metube.rule=Host(`metube.forust.xyz`)"
|
||||
- "traefik.http.routers.metube.entrypoints=websecure"
|
||||
- "traefik.http.routers.metube.middlewares=security-headers,metube-auth"
|
||||
- "traefik.http.routers.metube.service=metube"
|
||||
- "traefik.http.routers.metube.tls=true"
|
||||
- "traefik.http.services.metube.loadbalancer.server.port=8081"
|
||||
|
||||
# Local Router
|
||||
- "traefik.http.routers.metube-local.rule=Host(`metube.workstation.local`) || Host(`metube.local`)"
|
||||
- "traefik.http.routers.metube-local.entrypoints=websecure"
|
||||
- "traefik.http.routers.metube-local.middlewares=security-headers,metube-auth"
|
||||
- "traefik.http.routers.metube-local.service=metube"
|
||||
- "traefik.http.routers.metube-local.tls=true"
|
||||
|
||||
# Dev Router
|
||||
- "traefik.http.routers.metube-dev.rule=Host(`metube.gigaforust.local`)"
|
||||
- "traefik.http.routers.metube-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.metube-dev.middlewares=security-headers,metube-auth"
|
||||
- "traefik.http.routers.metube-dev.service=metube"
|
||||
- "traefik.http.routers.metube-dev.tls=true"
|
||||
|
||||
networks:
|
||||
- traefik-proxy
|
||||
networks:
|
||||
traefik-proxy:
|
||||
external: true
|
||||
external: true
|
||||
|
||||
+31
-8
@@ -23,17 +23,40 @@ services:
|
||||
- 1.1.1.1
|
||||
- 8.8.8.8
|
||||
networks:
|
||||
- traefik-proxy
|
||||
- traefik-proxy
|
||||
- n8n
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
- glance.name=n8n
|
||||
- glance.icon=si:n8n
|
||||
- glance.url=https://n8n.forust.xyz/
|
||||
- glance.description=n8n is a workflow automation tool that enables you to connect various apps and services to automate tasks and processes.
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
|
||||
# Prod Router
|
||||
- "traefik.http.routers.n8n.rule=Host(`n8n.forust.xyz`)"
|
||||
- "traefik.http.routers.n8n.entrypoints=websecure"
|
||||
- "traefik.http.routers.n8n.middlewares=security-headers"
|
||||
- "traefik.http.routers.n8n.service=n8n"
|
||||
- "traefik.http.routers.n8n.tls=true"
|
||||
- "traefik.http.services.n8n.loadbalancer.server.port=5678"
|
||||
|
||||
# Local Router
|
||||
- "traefik.http.routers.n8n-local.rule=Host(`n8n.workstation.local`) || Host(`n8n.local`)"
|
||||
- "traefik.http.routers.n8n-local.entrypoints=websecure"
|
||||
- "traefik.http.routers.n8n-local.middlewares=security-headers"
|
||||
- "traefik.http.routers.n8n-local.service=n8n"
|
||||
- "traefik.http.routers.n8n-local.tls=true"
|
||||
|
||||
# Dev Router
|
||||
- "traefik.http.routers.n8n-dev.rule=Host(`n8n.gigaforust.local`)"
|
||||
- "traefik.http.routers.n8n-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.n8n-dev.middlewares=security-headers"
|
||||
- "traefik.http.routers.n8n-dev.service=n8n"
|
||||
- "traefik.http.routers.n8n-dev.tls=true"
|
||||
|
||||
- glance.name=n8n
|
||||
- glance.icon=si:n8n
|
||||
- glance.url=https://n8n.forust.xyz/
|
||||
- glance.description=n8n is a workflow automation tool that enables you to connect various apps and services to automate tasks and processes.
|
||||
networks:
|
||||
n8n:
|
||||
external: false
|
||||
traefik-proxy:
|
||||
external: true
|
||||
external: true
|
||||
|
||||
+37
-11
@@ -8,23 +8,48 @@ services:
|
||||
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed as otherwise the built-in backup solution will not work
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro # May be changed on macOS, Windows or docker rootless. See the applicable documentation. If adjusting, don't forget to also set 'WATCHTOWER_DOCKER_SOCKET_PATH'!
|
||||
# network_mode: bridge # This adds the container to the same network as docker run would do. Comment this line and uncomment the line below and the networks section at the end of the file if you want to define a custom MTU size for the docker network
|
||||
networks:
|
||||
networks:
|
||||
- nextcloud-aio
|
||||
- traefik-proxy # Optional: Connects the mastercontainer to the traefik-proxy network in order to make the built-in reverse proxy detection work.
|
||||
# ports:
|
||||
# ports:
|
||||
# - 8081:80 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
|
||||
# - 8888:8080 # This is the AIO interface, served via https and self-signed certificate. See https://github.com/nextcloud/all-in-one#explanation-of-used-ports
|
||||
# - 8443:8443 # Can be removed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
- glance.name=Nextcloud
|
||||
# - glance.icon=si:nextcloud
|
||||
- glance.url=https://nextcloud.forust.xyz/
|
||||
- glance.description=Nextcloud is a suite of client-server software for creating and using file hosting services.
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
|
||||
# Prod Router - DISABLED per user request
|
||||
# - "traefik.http.routers.nextcloud-aio.rule=Host(`nextcloud-aio.forust.xyz`)"
|
||||
# - "traefik.http.routers.nextcloud-aio.entrypoints=websecure"
|
||||
# - "traefik.http.routers.nextcloud-aio.middlewares=security-headers"
|
||||
# - "traefik.http.routers.nextcloud-aio.service=nextcloud-aio"
|
||||
# - "traefik.http.routers.nextcloud-aio.tls=true"
|
||||
# - "traefik.http.services.nextcloud-aio.loadbalancer.server.port=8080"
|
||||
# - "traefik.http.services.nextcloud-aio.loadbalancer.server.scheme=https"
|
||||
# - "traefik.http.services.nextcloud-aio.loadbalancer.serverstransport=insecureTransport@file"
|
||||
|
||||
environment: # Is needed when using any of the options below
|
||||
# Local Router
|
||||
- "traefik.http.routers.nextcloud-aio-local.rule=Host(`nextcloud-aio.workstation.local`) || Host(`nextcloud-aio.local`)"
|
||||
- "traefik.http.routers.nextcloud-aio-local.entrypoints=websecure"
|
||||
- "traefik.http.routers.nextcloud-aio-local.middlewares=security-headers"
|
||||
- "traefik.http.routers.nextcloud-aio-local.service=nextcloud-aio"
|
||||
- "traefik.http.routers.nextcloud-aio-local.tls=true"
|
||||
|
||||
# Dev Router
|
||||
- "traefik.http.routers.nextcloud-aio-dev.rule=Host(`nextcloud-aio.gigaforust.local`)"
|
||||
- "traefik.http.routers.nextcloud-aio-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.nextcloud-aio-dev.middlewares=security-headers"
|
||||
- "traefik.http.routers.nextcloud-aio-dev.service=nextcloud-aio"
|
||||
- "traefik.http.routers.nextcloud-aio-dev.tls=true"
|
||||
|
||||
- glance.name=Nextcloud
|
||||
# - glance.icon=si:nextcloud
|
||||
- glance.url=https://nextcloud.forust.xyz/
|
||||
- glance.description=Nextcloud is a suite of client-server software for creating and using file hosting services.
|
||||
|
||||
environment:
|
||||
# Is needed when using any of the options below
|
||||
AIO_DISABLE_BACKUP_SECTION: false # Setting this to true allows to hide the backup section in the AIO interface. See https://github.com/nextcloud/all-in-one#how-to-disable-the-backup-section
|
||||
APACHE_PORT: 11000 # Is needed when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else). See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
|
||||
APACHE_IP_BINDING: 0.0.0.0 # Should be set when running behind a web server or reverse proxy (like Apache, Nginx, Caddy, Cloudflare Tunnel and else) that is running on the same host. See https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md
|
||||
@@ -53,6 +78,7 @@ networks:
|
||||
nextcloud-aio:
|
||||
driver: bridge
|
||||
external: false
|
||||
volumes: # If you want to store the data on a different drive, see https://github.com/nextcloud/all-in-one#how-to-store-the-filesinstallation-on-a-separate-drive
|
||||
volumes:
|
||||
# If you want to store the data on a different drive, see https://github.com/nextcloud/all-in-one#how-to-store-the-filesinstallation-on-a-separate-drive
|
||||
nextcloud_aio_mastercontainer:
|
||||
name: nextcloud_aio_mastercontainer # This line is not allowed to be changed as otherwise the built-in backup solution will not work
|
||||
name: nextcloud_aio_mastercontainer # This line is not allowed to be changed as otherwise the built-in backup solution will not work
|
||||
|
||||
+32
-18
@@ -26,12 +26,13 @@
|
||||
x-flags: &penpot-flags
|
||||
PENPOT_FLAGS: disable-email-verification enable-prepl-server disable-secure-session-cookies login-with-github
|
||||
|
||||
x-uri: &penpot-public-uri
|
||||
x-uri: &penpot-public-urш
|
||||
PENPOT_PUBLIC_URI: http://localhost:9001
|
||||
|
||||
x-body-size: &penpot-http-body-size
|
||||
x-body-size:
|
||||
# Max body size (30MiB); Used for plain requests, should never be
|
||||
# greater than multi-part size
|
||||
&penpot-http-body-size
|
||||
PENPOT_HTTP_SERVER_MAX_BODY_SIZE: 31457280
|
||||
|
||||
# Max multipart body size (350MiB)
|
||||
@@ -56,7 +57,7 @@ volumes:
|
||||
penpot_postgres_v15:
|
||||
penpot_assets:
|
||||
penpot_traefik:
|
||||
# penpot_minio:
|
||||
# penpot_minio:
|
||||
|
||||
services:
|
||||
## Traefik service declaration example. Consider using it if you are going to expose
|
||||
@@ -99,19 +100,34 @@ services:
|
||||
- penpot
|
||||
- traefik-proxy
|
||||
|
||||
# labels:
|
||||
# - "traefik.enable=true"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
|
||||
# ## HTTPS: example of labels for the case where penpot will be exposed to the
|
||||
# ## internet with HTTPS using traefik.
|
||||
# Prod Router
|
||||
- "traefik.http.routers.penpot.rule=Host(`penpot.forust.xyz`)"
|
||||
- "traefik.http.routers.penpot.entrypoints=websecure"
|
||||
- "traefik.http.routers.penpot.middlewares=security-headers"
|
||||
- "traefik.http.routers.penpot.service=penpot"
|
||||
- "traefik.http.routers.penpot.tls=true"
|
||||
- "traefik.http.services.penpot.loadbalancer.server.port=8080"
|
||||
|
||||
# - "traefik.http.routers.penpot-https.rule=Host(`<DOMAIN_NAME>`)"
|
||||
# - "traefik.http.routers.penpot-https.entrypoints=websecure"
|
||||
# - "traefik.http.routers.penpot-https.tls.certresolver=letsencrypt"
|
||||
# - "traefik.http.routers.penpot-https.tls=true"
|
||||
# Local Router
|
||||
- "traefik.http.routers.penpot-local.rule=Host(`penpot.workstation.local`) || Host(`penpot.local`)"
|
||||
- "traefik.http.routers.penpot-local.entrypoints=websecure"
|
||||
- "traefik.http.routers.penpot-local.middlewares=security-headers"
|
||||
- "traefik.http.routers.penpot-local.service=penpot"
|
||||
- "traefik.http.routers.penpot-local.tls=true"
|
||||
|
||||
# Dev Router
|
||||
- "traefik.http.routers.penpot-dev.rule=Host(`penpot.gigaforust.local`)"
|
||||
- "traefik.http.routers.penpot-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.penpot-dev.middlewares=security-headers"
|
||||
- "traefik.http.routers.penpot-dev.service=penpot"
|
||||
- "traefik.http.routers.penpot-dev.tls=true"
|
||||
|
||||
environment:
|
||||
<< : [*penpot-flags, *penpot-http-body-size]
|
||||
<<: [ *penpot-flags, *penpot-http-body-size ]
|
||||
|
||||
penpot-backend:
|
||||
image: "penpotapp/backend:${PENPOT_VERSION:-latest}"
|
||||
@@ -132,7 +148,7 @@ services:
|
||||
## Configuration envronment variables for the backend container.
|
||||
|
||||
environment:
|
||||
<< : [*penpot-flags, *penpot-public-uri, *penpot-http-body-size, *penpot-secret-key]
|
||||
<<: [ *penpot-flags, *penpot-public-uri, *penpot-http-body-size, *penpot-secret-key ]
|
||||
|
||||
## The PREPL host. Mainly used for external programatic access to penpot backend
|
||||
## (example: admin). By default it will listen on `localhost` but if you are going to use
|
||||
@@ -174,7 +190,6 @@ services:
|
||||
|
||||
PENPOT_TELEMETRY_ENABLED: true
|
||||
PENPOT_TELEMETRY_REFERER: compose
|
||||
|
||||
# PENPOT_SMTP_DEFAULT_FROM: no-reply@example.com
|
||||
# PENPOT_SMTP_DEFAULT_REPLY_TO: no-reply@example.com
|
||||
# PENPOT_SMTP_HOST: penpot-mailcatch
|
||||
@@ -196,7 +211,7 @@ services:
|
||||
- penpot
|
||||
|
||||
environment:
|
||||
<< : [*penpot-secret-key]
|
||||
<<: [ *penpot-secret-key ]
|
||||
# Don't touch it; this uses an internal docker network to
|
||||
# communicate with the frontend.
|
||||
PENPOT_PUBLIC_URI: http://penpot-frontend:8080
|
||||
@@ -210,7 +225,7 @@ services:
|
||||
stop_signal: SIGINT
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U penpot"]
|
||||
test: [ "CMD-SHELL", "pg_isready -U penpot" ]
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
@@ -233,7 +248,7 @@ services:
|
||||
restart: always
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "valkey-cli ping | grep PONG"]
|
||||
test: [ "CMD-SHELL", "valkey-cli ping | grep PONG" ]
|
||||
interval: 1s
|
||||
timeout: 3s
|
||||
retries: 5
|
||||
@@ -246,7 +261,6 @@ services:
|
||||
# You can increase the max memory size if you have sufficient resources,
|
||||
# although this should not be necessary.
|
||||
- VALKEY_EXTRA_FLAGS=--maxmemory 128mb --maxmemory-policy volatile-lfu
|
||||
|
||||
## A mailcatch service, used as temporal SMTP server. You can access via HTTP to the
|
||||
## port 1080 for read all emails the penpot platform has sent. Should be only used as a
|
||||
## temporal solution while no real SMTP provider is configured.
|
||||
|
||||
+25
-1
@@ -14,8 +14,32 @@ services:
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
|
||||
# Prod Router
|
||||
- "traefik.http.routers.portainer.rule=Host(`portainer.forust.xyz`)"
|
||||
- "traefik.http.routers.portainer.entrypoints=websecure"
|
||||
- "traefik.http.routers.portainer.middlewares=security-headers"
|
||||
- "traefik.http.routers.portainer.service=portainer"
|
||||
- "traefik.http.routers.portainer.tls=true"
|
||||
- "traefik.http.services.portainer.loadbalancer.server.port=9443"
|
||||
- "traefik.http.services.portainer.loadbalancer.server.scheme=https"
|
||||
- "traefik.http.services.portainer.loadbalancer.serverstransport=insecureTransport@file"
|
||||
|
||||
# Local Router
|
||||
- "traefik.http.routers.portainer-local.rule=Host(`portainer.workstation.local`) || Host(`portainer.local`)"
|
||||
- "traefik.http.routers.portainer-local.entrypoints=websecure"
|
||||
- "traefik.http.routers.portainer-local.middlewares=security-headers"
|
||||
- "traefik.http.routers.portainer-local.service=portainer"
|
||||
- "traefik.http.routers.portainer-local.tls=true"
|
||||
|
||||
# Dev Router
|
||||
- "traefik.http.routers.portainer-dev.rule=Host(`portainer.gigaforust.local`)"
|
||||
- "traefik.http.routers.portainer-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.portainer-dev.middlewares=security-headers"
|
||||
- "traefik.http.routers.portainer-dev.service=portainer"
|
||||
- "traefik.http.routers.portainer-dev.tls=true"
|
||||
|
||||
- glance.name=Portainer
|
||||
# - glance.icon=si:portainer
|
||||
- glance.url=https://portainer.forust.xyz/
|
||||
- glance.description=Portainer is a lightweight management UI which allows you to easily manage your Docker environments.
|
||||
|
||||
|
||||
+26
-1
@@ -9,6 +9,31 @@ services:
|
||||
- ./termix-data:/app/data
|
||||
environment:
|
||||
PORT: "8080"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
|
||||
# Prod Router
|
||||
- "traefik.http.routers.termix.rule=Host(`termix.forust.xyz`)"
|
||||
- "traefik.http.routers.termix.entrypoints=websecure"
|
||||
- "traefik.http.routers.termix.middlewares=security-headers"
|
||||
- "traefik.http.routers.termix.service=termix"
|
||||
- "traefik.http.routers.termix.tls=true"
|
||||
- "traefik.http.services.termix.loadbalancer.server.port=8080"
|
||||
|
||||
# Local Router
|
||||
- "traefik.http.routers.termix-local.rule=Host(`termix.workstation.local`) || Host(`termix.local`)"
|
||||
- "traefik.http.routers.termix-local.entrypoints=websecure"
|
||||
- "traefik.http.routers.termix-local.middlewares=security-headers"
|
||||
- "traefik.http.routers.termix-local.service=termix"
|
||||
- "traefik.http.routers.termix-local.tls=true"
|
||||
|
||||
# Dev Router
|
||||
- "traefik.http.routers.termix-dev.rule=Host(`termix.gigaforust.local`)"
|
||||
- "traefik.http.routers.termix-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.termix-dev.middlewares=security-headers"
|
||||
- "traefik.http.routers.termix-dev.service=termix"
|
||||
- "traefik.http.routers.termix-dev.tls=true"
|
||||
networks:
|
||||
- traefik-proxy
|
||||
|
||||
@@ -18,4 +43,4 @@ networks:
|
||||
|
||||
volumes:
|
||||
termix-data:
|
||||
driver: local
|
||||
driver: local
|
||||
|
||||
+33
-12
@@ -7,14 +7,14 @@ services:
|
||||
# API
|
||||
- "--api.insecure=false"
|
||||
- "--api.dashboard=true"
|
||||
|
||||
|
||||
# Providers
|
||||
- "--providers.docker=true"
|
||||
- "--providers.docker.exposedbydefault=false"
|
||||
- "--providers.docker.network=traefik-proxy"
|
||||
- "--providers.file.directory=/etc/traefik/dynamic"
|
||||
- "--providers.file.watch=true"
|
||||
|
||||
|
||||
# EntryPoints
|
||||
- "--entryPoints.web.address=:80"
|
||||
- "--entryPoints.websecure.address=:443"
|
||||
@@ -22,48 +22,69 @@ services:
|
||||
- "--entryPoints.web.http.redirections.entryPoint.to=websecure"
|
||||
- "--entryPoints.web.http.redirections.entryPoint.scheme=https"
|
||||
- "--entryPoints.ssh.address=:2221"
|
||||
|
||||
|
||||
# Let's Encrypt STAGING. CURRENTLY USING CF ORIGIN CA INSTEAD
|
||||
# - "--certificatesresolvers.letsencrypt.acme.email=${EMAIL}"
|
||||
# - "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
|
||||
# - "--certificatesresolvers.letsencrypt.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||
# - "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
|
||||
# - "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
|
||||
|
||||
|
||||
# Cloudflare
|
||||
- "--entryPoints.web.forwardedHeaders.trustedIPs=173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/13,104.24.0.0/14,172.64.0.0/13,131.0.72.0/22"
|
||||
- "--entryPoints.websecure.forwardedHeaders.trustedIPs=173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/13,104.24.0.0/14,172.64.0.0/13,131.0.72.0/22"
|
||||
|
||||
|
||||
# Logging
|
||||
- "--log.level=INFO"
|
||||
- "--log.filePath=/var/log/traefik/traefik.log"
|
||||
- "--accesslog=true"
|
||||
- "--accesslog.filepath=/var/log/traefik/access.log"
|
||||
|
||||
labels:
|
||||
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
|
||||
# Prod Router (Dashboard) - DISABLED per user request
|
||||
# - "traefik.http.routers.traefik-dashboard.rule=Host(`traefik.forust.xyz`)"
|
||||
# - "traefik.http.routers.traefik-dashboard.entrypoints=websecure"
|
||||
# - "traefik.http.routers.traefik-dashboard.middlewares=auth,security-headers"
|
||||
# - "traefik.http.routers.traefik-dashboard.service=api@internal"
|
||||
# - "traefik.http.routers.traefik-dashboard.tls=true"
|
||||
|
||||
# Local Router
|
||||
- "traefik.http.routers.traefik-dashboard-local.rule=Host(`traefik.workstation.local`) || Host(`traefik.local`)"
|
||||
- "traefik.http.routers.traefik-dashboard-local.entrypoints=websecure"
|
||||
- "traefik.http.routers.traefik-dashboard-local.middlewares=auth,security-headers"
|
||||
- "traefik.http.routers.traefik-dashboard-local.service=api@internal"
|
||||
- "traefik.http.routers.traefik-dashboard-local.tls=true"
|
||||
|
||||
# Dev Router
|
||||
- "traefik.http.routers.traefik-dashboard-dev.rule=Host(`traefik.gigaforust.local`)"
|
||||
- "traefik.http.routers.traefik-dashboard-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.traefik-dashboard-dev.middlewares=security-headers"
|
||||
- "traefik.http.routers.traefik-dashboard-dev.service=api@internal"
|
||||
- "traefik.http.routers.traefik-dashboard-dev.tls=true"
|
||||
|
||||
- glance.name=Traefik
|
||||
- glance.url=https://traefik.forust.xyz/
|
||||
- glance.description=Traefik is a modern reverse proxy and load balancer
|
||||
|
||||
|
||||
ports:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
|
||||
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- ./dynamic:/etc/traefik/dynamic:ro
|
||||
- ./certs:/certs:ro
|
||||
- ./logs:/var/log/traefik
|
||||
# - ./traefik/letsencrypt:/letsencrypt
|
||||
|
||||
|
||||
networks:
|
||||
- traefik-proxy
|
||||
|
||||
|
||||
environment:
|
||||
- TZ=Europe/Bratislava
|
||||
|
||||
networks:
|
||||
traefik-proxy:
|
||||
external: true
|
||||
external: true
|
||||
|
||||
@@ -9,10 +9,26 @@ services:
|
||||
# <Host Port>:<Container Port>
|
||||
- "3001:3001"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik-proxy"
|
||||
|
||||
# Prod Router
|
||||
- "traefik.http.routers.uptime-kuma.rule=Host(`uptime.forust.xyz`)"
|
||||
- "traefik.http.routers.uptime-kuma.entrypoints=websecure"
|
||||
- "traefik.http.routers.uptime-kuma.tls=true"
|
||||
- "traefik.http.services.uptime-kuma.loadbalancer.server.port=3001"
|
||||
|
||||
# Local Router
|
||||
- "traefik.http.routers.uptime-kuma-local.rule=Host(`uptime.workstation.local`) || Host(`uptime.local`)"
|
||||
- "traefik.http.routers.uptime-kuma-local.entrypoints=websecure"
|
||||
- "traefik.http.routers.uptime-kuma-local.tls=true"
|
||||
|
||||
# Dev Router
|
||||
- "traefik.http.routers.uptime-kuma-dev.rule=Host(`uptime.gigaforust.local`)"
|
||||
- "traefik.http.routers.uptime-kuma-dev.entrypoints=websecure"
|
||||
- "traefik.http.routers.uptime-kuma-dev.tls=true"
|
||||
networks:
|
||||
- traefik-proxy
|
||||
networks:
|
||||
traefik-proxy:
|
||||
external: true
|
||||
|
||||
external: true
|
||||
|
||||
Reference in New Issue
Block a user