summaryrefslogblamecommitdiffstats
path: root/docker-compose.yml
blob: f71186357955982d9a3f26b2939e47d6d2919956 (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: brettinternet/cgit:latest
    container_name: cgit
    volumes:
      - $SYNCDIR/src:/srv/git
      - $SYNCDIR/src/dockerfiles/configs/cgit.css:/usr/share/webapps/cgit/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:
      - LC_ALL=en_US.UTF-8
      - 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

  docker-rss:
    image: theconnman/docker-hub-rss
    container_name: docker-rss
    restart: unless-stopped
    depends_on:
      - caddy
    networks:
      - proxy
    labels:
      caddy: dock.$DOMAIN
      caddy.reverse_proxy: "{{upstreams 3000}}"

  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 --disableLiveReload --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:
      - 5432: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:
      - $TANKDIR/complete:/data/completed
      - $TANKDIR/incomplete:/data/incomplete
      - $DOCKDIR/transmission:/data/transmission-home
      - $SYNCDIR:/data/watch
    environment:
      - LOCAL_NETWORK=10.0.0.0/24
      - LOG_TO_STDOUT=true
      - NORDVPN_CATEGORY=p2p
      - NORDVPN_COUNTRY=GB
      - OPENVPN_PASSWORD=$VPNPASS
      - OPENVPN_PROVIDER=NORDVPN
      - OPENVPN_USERNAME=$VPNUSER
      - PGID=$PGID
      - PUID=$PUID
    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=5432
      - 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}}"

  vikunja:
    image: vikunja/vikunja
    container_name: vikunja
    environment:
      - PGID=$PGID
      - PUID=$PUID
      - VIKUNJA_DATABASE_PATH=/db/vikunja.db
      - VIKUNJA_SERVICE_ENABLEREGISTRATION=false
      - VIKUNJA_SERVICE_ENABLETASKCOMMENTS=false
      - VIKUNJA_SERVICE_JWTSECRET=$TODOSECRET
      - VIKUNJA_SERVICE_PUBLICURL=https://todo.$DOMAIN/
      - VIKUNJA_SERVICE_TIMEZONE=$TZ
    volumes:
      - $DOCKDIR/vikunja/database:/db
      - $DOCKDIR/vikunja/files:/app/vikunja/files
    restart: unless-stopped
    depends_on:
      - caddy
    networks:
      - proxy
    labels:
      caddy: todo.$DOMAIN
      caddy.reverse_proxy: "{{upstreams 3456}}"