2024-09-07 15:57:21 +02:00
|
|
|
services:
|
2024-09-08 06:33:58 +01:00
|
|
|
# relay:
|
|
|
|
# container_name: wot-relay
|
|
|
|
# env_file:
|
|
|
|
# - .env
|
|
|
|
# volumes:
|
|
|
|
# - "./db:/app/db" # only change the left side before the colon
|
|
|
|
# # - "./templates/index.html:/app/templates/index.html" # only change the left side before the colon
|
|
|
|
# # - "./templates/static:/app/templates/static" # only change the left side before the colon
|
|
|
|
# ports:
|
|
|
|
# - "3334:3334"
|
|
|
|
|
|
|
|
relay-optimized:
|
|
|
|
container_name: wot-relay-optimized
|
2024-09-07 15:57:21 +02:00
|
|
|
build:
|
|
|
|
context: .
|
2024-09-08 03:25:42 +01:00
|
|
|
dockerfile: Dockerfile-optimized
|
2024-09-08 06:33:58 +01:00
|
|
|
# image: ghcr.io/gbozee/wot-relay:latest
|
2024-09-08 06:36:35 +01:00
|
|
|
restart: always
|
2024-09-07 15:57:21 +02:00
|
|
|
env_file:
|
|
|
|
- .env
|
2024-09-08 06:33:58 +01:00
|
|
|
# build:
|
|
|
|
# context: .
|
|
|
|
# dockerfile: Dockerfile-optimized
|
2024-09-07 15:57:21 +02:00
|
|
|
volumes:
|
|
|
|
- "./db:/app/db" # only change the left side before the colon
|
2024-09-08 06:33:58 +01:00
|
|
|
labels:
|
|
|
|
- "traefik.enable=true"
|
|
|
|
- "traefik.http.routers.relay.rule=Host(`relay.beeola.me`)"
|
|
|
|
- "traefik.http.routers.relay.priority=1"
|
|
|
|
- "traefik.http.routers.relay.entryPoints=web-secure"
|
|
|
|
- "traefik.http.routers.relay.middlewares=csrf"
|
|
|
|
- "traefik.http.services.relay.loadBalancer.sticky.cookie={}"
|
|
|
|
- "traefik.http.services.relay.loadBalancer.server.port=3334"
|
|
|
|
- "traefik.http.routers.relay.tls.certResolver=letsencrypt_web"
|
|
|
|
|
|
|
|
traefik:
|
|
|
|
image: traefik:v2.2
|
|
|
|
volumes:
|
|
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
|
|
- production_traefik:/etc/traefik/acme:z
|
2024-09-08 06:36:35 +01:00
|
|
|
restart: always
|
2024-09-08 06:33:58 +01:00
|
|
|
command:
|
|
|
|
- --providers.docker
|
|
|
|
- --providers.docker.exposedbydefault=false
|
|
|
|
# - --providers.docker.swarmmode
|
|
|
|
# Enable the access log, with HTTP requests
|
|
|
|
- --accesslog
|
|
|
|
- --log
|
|
|
|
- "--api.dashboard=true"
|
|
|
|
- "--api.insecure=true"
|
|
|
|
- "--entrypoints.web.address=:80"
|
|
|
|
- "--entrypoints.web.http.redirections.entryPoint.to=web-secure"
|
|
|
|
- "--entrypoints.web-secure.address=:443"
|
|
|
|
# - "--entrypoints.web.forwardedHeaders.insecure=true"
|
|
|
|
# - "--entrypoints.web-secure.forwardedHeaders.insecure=true"
|
|
|
|
- "--certificatesResolvers.letsencrypt_web.acme.email=jamie@example.com"
|
|
|
|
- "--certificatesResolvers.letsencrypt_web.acme.storage=/etc/traefik/acme/acme.json"
|
|
|
|
- "--certificatesResolvers.letsencrypt_web.acme.httpChallenge.entryPoint=web"
|
|
|
|
- "--certificatesResolvers.letsencrypt.acme.email=jamie@example.com"
|
|
|
|
- "--certificatesResolvers.letsencrypt.acme.storage=/etc/traefik/acme/acme.json"
|
|
|
|
# - "--certificatesResolvers.letsencrypt.acme.dnsChallenge.provider=digitalocean"
|
|
|
|
# - "--certificatesResolvers.letsencrypt.acme.dnsChallenge.provider=route53"
|
|
|
|
# - "--certificatesResolvers.letsencrypt.acme.dnsChallenge.delayBeforeCheck=0"
|
|
|
|
|
|
|
|
labels:
|
|
|
|
# Enable Traefik for this service, to make it available in the public network
|
|
|
|
- traefik.enable=true
|
|
|
|
|
2024-09-07 15:57:21 +02:00
|
|
|
ports:
|
2024-09-08 06:33:58 +01:00
|
|
|
- target: 80
|
|
|
|
published: 80
|
|
|
|
mode: host
|
|
|
|
- target: 443
|
|
|
|
published: 443
|
|
|
|
mode: host
|
|
|
|
- target: 5555
|
|
|
|
published: 5555
|
|
|
|
mode: host
|
|
|
|
# - "0.0.0.0:80:80"
|
|
|
|
# - "0.0.0.0:443:443"
|
|
|
|
# - "0.0.0.0:5555:5555"
|
|
|
|
# - "0.0.0.0:8080:8080"
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
production_traefik: {}
|