summaryrefslogblamecommitdiffstats
path: root/docker-compose.yml
blob: 1e595aa7fd3792e7971a6975dfe4af74797594de (plain) (tree)














































































































































































































































                                                                                                                                   
version: "3.9"

networks:
  proxy:
    external: true

services:
  baikal:
    image: ckulka/baikal:nginx
    container_name: baikal
    volumes:
      - $DOCKDIR/baikal:/var/www/baikal/Specific
    restart: unless-stopped
    depends_on:
      - caddy
    networks:
      - proxy
    labels:
      caddy: dav.$DOMAIN
      caddy.reverse_proxy: "{{upstreams 80}}"
  caddy:
    image: lucaslorentz/caddy-docker-proxy
    container_name: caddy
    ports:
      - 80:80
      - 443:443
    environment:
      - CADDY_INGRESS_NETWORKS=proxy
    networks:
      - proxy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - $DOCKDIR/caddy:/data
    restart: unless-stopped
  cgit:
    image: chruth/alpine-cgit
    container_name: cgit
    environment:
      - PUID=$PUID
      - PGID=$PGID
      - TZ=$TZ
    volumes:
      - $SYNCDIR/src:/git
      - $SYNCDIR/src/dockerfiles/configs/cgitrc:/config/cgitrc
      - $SYNCDIR/src/dockerfiles/configs/cgit.css:/app/cgit.css
    restart: unless-stopped
    depends_on:
      - caddy
    networks:
      - proxy
    labels:
      caddy: git.$DOMAIN
      caddy.reverse_proxy: "{{upstreams 80}}"
  changedetection:
    image: linuxserver/changedetection.io
    container_name: changedetection
    environment:
      - PGID=$PGID
      - PUID=$PUID
    volumes:
      - $DOCKDIR/changedetection:/config
    depends_on:
      - caddy
    networks:
      - proxy
    labels:
      caddy: diff.$DOMAIN
      caddy.reverse_proxy: "{{upstreams 5000}}"
    restart: unless-stopped
  echoip:
    image: mpolden/echoip
    container_name: echoip
    entrypoint: "/opt/echoip/echoip -H X-Forwarded-For"
    restart: unless-stopped
    depends_on:
      - caddy
    networks:
      - proxy
    labels:
      caddy: ip.$DOMAIN
      caddy.reverse_proxy: "{{upstreams 8080}}"
  h5ai:
    image: awesometic/h5ai
    container_name: h5ai
    environment:
      - PUID=$PUID
      - PGID=$PGID
      - TZ=$TZ
    volumes:
      - $SYNCDIR/pub:/h5ai
      - $SYNCDIR/src/dockerfiles/configs/h5ai.css:/config/h5ai/_h5ai/public/css/styles.css
    restart: unless-stopped
    depends_on:
      - caddy
    networks:
      - proxy
    labels:
      caddy: pub.$DOMAIN
      caddy.reverse_proxy: "{{upstreams 80}}"
  hugo:
    image: klakegg/hugo
    container_name: hugo
    command: "server --watch=true --minify --source=/src --baseURL=https://$DOMAIN --bind=0.0.0.0 --appendPort=false --buildFuture"
    volumes:
      - $SYNCDIR/src/blog.$DOMAIN:/src
    restart: unless-stopped
    depends_on:
      - caddy
    networks:
      - proxy
    labels:
      caddy: $DOMAIN, blog.$DOMAIN, www.$DOMAIN
      caddy.reverse_proxy: "{{upstreams 1313}}"
  jackett:
    image: linuxserver/jackett
    container_name: jackett
    environment:
      - PGID=$PGID
      - PUID=$PUID
      - TZ=$TZ
    volumes:
      - $DOCKDIR/jackett:/config
      - $SYNCDIR:/downloads
    restart: unless-stopped
    depends_on:
      - caddy
    networks:
      - proxy
    labels:
      caddy: jack.$DOMAIN
      caddy.reverse_proxy: "{{upstreams 9117}}"
  postgres:
    image: postgres:alpine
    container_name: postgres
    restart: unless-stopped
    ports:
      - 44432:5432
    environment:
      - POSTGRES_PASSWORD=$DBPASSWORD
    volumes:
      - $DOCKDIR/postgres:/var/lib/postgresql/data
  transmission:
    image: haugene/transmission-openvpn
    container_name: transmission
    networks:
      - proxy
    devices:
      - /dev/net/tun
    cap_add:
      - NET_ADMIN
    volumes:
      - /mnt/tank/complete:/data/completed
      - /mnt/tank/incomplete:/data/incomplete
      - $DOCKDIR/transmission:/data/transmission-home
      - $SYNCDIR:/data/watch
    environment:
      - OPENVPN_PROVIDER=NORDVPN
      - NORDVPN_COUNTRY=GB
      - NORDVPN_CATEGORY=p2p
      - OPENVPN_USERNAME=$VPNUSER
      - OPENVPN_PASSWORD=$VPNPASS
      - LOCAL_NETWORK=10.0.0.0/24
    ports:
      - 9091:9091
      - 51413:51413
    dns:
      - 8.8.8.8
      - 9.9.9.9
    logging:
      driver: json-file
      options:
        max-size: 10m
    restart: unless-stopped
  transmission-proxy:
    image: haugene/transmission-openvpn-proxy
    container_name: transmission-proxy
    depends_on:
      - transmission
    links:
      - transmission
    networks:
      - proxy
    labels:
      caddy: tor.$DOMAIN
      caddy.reverse_proxy: "{{upstreams 8080}}"
      caddy.basicauth: "/"
      caddy.basicauth.peter: "$HTPASSWD"
    restart: unless-stopped
  transmission-rss:
    image: haugene/transmission-rss
    container_name: transmission-rss
    depends_on:
      - transmission
    networks:
      - proxy
    links:
      - transmission
    environment:
      - GID=$PGID
      - UID=$PUID
    volumes:
      - $DOCKDIR/transmission-rss/transmission-rss.conf:/etc/transmission-rss.conf
      - $DOCKDIR/transmission-rss/transmission-rss.seen:/etc/transmission-rss.seen
  ttrss:
    image: wangqiru/ttrss
    container_name: ttrss
    restart: unless-stopped
    environment:
      - SELF_URL_PATH=https://rss.$DOMAIN/
      - DB_HOST=$DOMAIN
      - DB_PASS=$DBPASSWORD
      - DB_PORT=44432
      - DB_TYPE=pgsql
      - DB_USER=postgres
    depends_on:
      - postgres
      - caddy
    networks:
      - proxy
    labels:
      caddy: rss.$DOMAIN
      caddy.reverse_proxy: "{{upstreams 80}}"
  vaultwarden:
    image: vaultwarden/server:alpine
    container_name: vaultwarden
    volumes:
      - $DOCKDIR/vaultwarden:/data
    environment:
      - WEBSOCKET_ENABLED=false
      - SIGNUPS_ALLOWED=false
    restart: unless-stopped
    depends_on:
      - caddy
    networks:
      - proxy
    labels:
      caddy: pass.$DOMAIN
      caddy.reverse_proxy: "{{upstreams 80}}"