48 lines
1.9 KiB
YAML
48 lines
1.9 KiB
YAML
version: "3.7"
|
|
|
|
services:
|
|
syncthing:
|
|
container_name: syncthing
|
|
image: syncthing/syncthing:1.27
|
|
stop_grace_period: 1m
|
|
hostname: tipi
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data:/var/syncthing
|
|
- ${ROOT_FOLDER_HOST}/media/data/syncthing:/media/data/syncthing
|
|
ports:
|
|
- ${APP_PORT}:8384
|
|
- 22000:22000/tcp # TCP file transfers
|
|
- 22000:22000/udp # QUIC file transfers
|
|
- 21027:21027/udp # Receive local discovery broadcasts
|
|
restart: unless-stopped
|
|
networks:
|
|
- tipi_main_network
|
|
labels:
|
|
# Main
|
|
traefik.enable: true
|
|
traefik.http.middlewares.syncthing-web-redirect.redirectscheme.scheme: https
|
|
traefik.http.services.syncthing.loadbalancer.server.port: 8384
|
|
# Web
|
|
traefik.http.routers.syncthing-insecure.rule: Host(`${APP_DOMAIN}`)
|
|
traefik.http.routers.syncthing-insecure.entrypoints: web
|
|
traefik.http.routers.syncthing-insecure.service: syncthing
|
|
traefik.http.routers.syncthing-insecure.middlewares: syncthing-web-redirect
|
|
# Websecure
|
|
traefik.http.routers.syncthing.rule: Host(`${APP_DOMAIN}`)
|
|
traefik.http.routers.syncthing.entrypoints: websecure
|
|
traefik.http.routers.syncthing.service: syncthing
|
|
traefik.http.routers.syncthing.tls.certresolver: myresolver
|
|
# Local domain
|
|
traefik.http.routers.syncthing-local-insecure.rule: Host(`syncthing.${LOCAL_DOMAIN}`)
|
|
traefik.http.routers.syncthing-local-insecure.entrypoints: web
|
|
traefik.http.routers.syncthing-local-insecure.service: syncthing
|
|
traefik.http.routers.syncthing-local-insecure.middlewares: syncthing-web-redirect
|
|
# Local domain secure
|
|
traefik.http.routers.syncthing-local.rule: Host(`syncthing.${LOCAL_DOMAIN}`)
|
|
traefik.http.routers.syncthing-local.entrypoints: websecure
|
|
traefik.http.routers.syncthing-local.service: syncthing
|
|
traefik.http.routers.syncthing-local.tls: true
|