version: "3.8" configs: wg0_conf: file: ./aniworld/wg0.conf services: wireguard: image: linuxserver/wireguard cap_add: - NET_ADMIN # Required for networking changes - SYS_MODULE # Optional for WireGuard modules environment: - PUID=1000 - PGID=1000 - TZ=Europe/Berlin restart: unless-stopped sysctls: - net.ipv4.conf.all.src_valid_mark=1 configs: - source: wg0_conf target: /config/wg0.conf networks: - proxy labels: traefik.enable: true traefik.http.routers.aniworld.service: aniworld traefik.http.routers.aniworld.rule: Host(`aniworld.arpa.urmel.de`) traefik.http.routers.aniworld.tls: "true" traefik.http.routers.aniworld.tls.certresolver: hetzner traefik.http.services.aniworld.loadbalancer.server.port: 3000 traefik.http.routers.aniworld.middlewares: traefik-auth@file aniworld: build: context: ./aniworld dockerfile: Dockerfile target: base image: katzenkralle/aniworld_served:latest user: "0:0" network_mode: "service:wireguard" restart: unless-stopped volumes: - data_aniworld:/var/aniworld/downloads bittorrent: image: linuxserver/qbittorrent:5.1.4 networks: - proxy volumes: - config_qbittorrent:/config - data_qbittorrent:/downloads ports: - 6881:6881 - 6881:6881/udp environment: - PUID=0 - PGID=0 - TZ=Europe/Berlin labels: traefik.enable: true traefik.http.routers.qb.rule: "Host(`qbittorrent.arpa.urmel.de`)" traefik.http.routers.qb.tls: "true" traefik.http.routers.qb.tls.certresolver: hetzner traefik.http.services.qb.loadbalancer.server.port: "8080" traefik.http.middlewares.qb-headers.headers.customRequestHeaders.X-Frame-Options: SAMEORIGIN traefik.http.middlewares.qb-headers.headers.customRequestHeaders.Referer: "" traefik.http.middlewares.qb-headers.headers.customRequestHeaders.Origin: "" traefik.http.routers.qb.middlewares: traefik-auth@file,qb-headers traefik.http.services.qb.loadbalancer.passhostheader: "false" i2psnark: image: ypopovych/i2psnark:latest volumes: - config_i2psnark:/snark/config - data_i2psnark:/snark/downloads networks: - proxy environment: HOSTNAMES: "i2psnark.arpa.urmel.de" I2CP_HOST: "i2pendpoint.arpa" restart: "on-failure" labels: traefik.enable: true traefik.http.routers.i2psnark.rule: "Host(`i2psnark.arpa.urmel.de`) && (PathPrefix(`/i2psnark/`) || Path(`/`))" traefik.http.routers.i2psnark.tls: "true" traefik.http.routers.i2psnark.tls.certresolver: hetzner traefik.http.routers.i2psnark.service: i2psnark traefik.http.services.i2psnark.loadbalancer.server.port: "8002" traefik.http.middlewares.i2psnark-redirect.redirectregex.regex: "^/$" traefik.http.middlewares.i2psnark-redirect.redirectregex.replacement: "/i2psnark/" traefik.http.middlewares.i2psnark-redirect.redirectregex.permanent: "true" traefik.http.middlewares.i2psnark-headers.headers.customRequestHeaders.Host: i2psnark.arpa.urmel.de traefik.http.middlewares.i2psnark-headers.headers.customRequestHeaders.X-Forwarded-Proto: https traefik.http.routers.i2psnark.middlewares: i2psnark-redirect,i2psnark-headers,traefik-auth@file networks: proxy: external: true name: traefik_exposed volumes: data_i2psnark: driver_opts: type: nfs4 o: addr=217.100.0.2,rw,noatime,tcp device: ":/mnt/Main/servicesData/i2psnark" config_i2psnark: data_aniworld: driver_opts: type: nfs4 o: addr=217.100.0.2,rw,noatime,tcp device: ":/mnt/Main/servicesData/aniworld" config_qbittorrent: data_qbittorrent: driver_opts: type: nfs4 o: addr=217.100.0.2,rw,noatime,tcp device: ":/mnt/Main/servicesData/qbittorrent"