localservices/compose.yml

134 lines
4.0 KiB
YAML

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
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.entrypoints: https
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,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.entrypoints: https
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
networks:
proxy:
external: true
name: urmel_proxy_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"