Skip to main content

Docker - Transmission for Downloaders on Synology

services:
###########################################################################
##  Docker Compose File:  Transmission (haugene)
##  Function:             Torrent Download Client
##  Documentation:        https://github.com/haugene/docker-transmission-openvpn
###########################################################################
  transmission:
    image: haugene/transmission-openvpn
    container_name: transmission-openvpn
    cap_add:
        - NET_ADMIN # Required for VPN functionality if using haugene/transmission-openvpn
    environment:
        - CREATE_TUN_DEVICE=true
        - OPENVPN_PROVIDER=custom
        - OPENVPN_CONFIG=hr-15.protonvpn.udp # Replace with your .ovpn filename
        - OPENVPN_USERNAME=${OPENVPN_USERNAME:?err}
        - OPENVPN_PASSWORD=${OPENVPN_PASSWORD:?err}
        - OPENVPN_OPTS=--inactive 3600 --ping 10 --ping-exit 60
        - WEBPROXY_ENABLED=false
        - LOCAL_NETWORK=${LAN_NETWORK:?err}  # Your local network range
        - PUID=${PUID:?err}    # User ID
        - PGID=${PGID:?err}    # Group ID
        - TZ=${TZ:?err}        # TimeZone
        - UMASK=${UMASK:?err}  # File Umask
        - DEBUG=true
        - TRANSMISSION_SCRAPE_PAUSED_TORRENTS_ENABLED=false
        - TRANSMISSION_UMASK=${UMASK:?err}
    volumes:
        - ${DOCKERFOLDER:?err}/transmission-openvpn/ovpn_files/:/etc/openvpn/custom
        - ${DOCKERFOLDER:?err}/transmission-openvpn/config/:/config
        - ${MEDIAFOLDER:?err}/torrents:/data
        - ${MEDIAFOLDER:?err}/media:/media
    logging:
      driver: json-file
      options:
        max-file: ${DOCKERLOGGING_MAXFILE:?err}  # Max number of log files
        max-size: ${DOCKERLOGGING_MAXSIZE:?err}  # Max file size
    ports:
        - 9091:9091 # Transmission Web UI
        - 51413:51413 # Transmission Peer Port (adjust if using port forwarding)
        - 51413:51413/udp # Transmission Peer Port (adjust if using port forwarding)
    restart: unless-stopped
      
###########################################################################
##  Docker Compose File:  qBittorrent (LinuxServer.io)
##  Function:             Torrent Download Client
##  Documentation:        https://docs.linuxserver.io/images/docker-qbittorrent
###########################################################################
  # qbittorrent:
  #   image: linuxserver/qbittorrent:latest
  #   container_name: qbittorrent
  #   network_mode: service:transmission  # qBittorrent MUST always use a VPN / Secure Internet connection
  #   environment:
  #     - PUID=1031 # Optional: Adjust for your user ID
  #     - PGID=100  # Optional: Adjust for your group ID
  #     - UMASK=002
  #     - TZ=America/Montreal
  #     - WEBUI_PORT=8180
  #     # - DOCKER_MODS=ghcr.io/gilbn/theme.park:qbittorrent
  #     # - TP_THEME=${TP_THEME:?err:?err}
  #   volumes:
  #     - ${DOCKERFOLDER:?err}/qbittorrent/config:/config
  #     - ${MEDIAFOLDER:?err}:/data
  #   ports:
  #     - 6881:6881 # Torrent port (TCP)
  #     - 6881:6881/udp # Torrent port (UDP)
  #     - 8180:8080 # Web UI port
  #   depends_on:
  #     - transmission
  #   restart: unless-stopped

###########################################################################
##  Docker Compose File:  SABnzbd (LinuxServer.io)
##  Function:             Usenet Download Client
##  Documentation:        https://docs.linuxserver.io/images/docker-sabnzbd
###########################################################################
  # sabnzbd:
  #   image: lscr.io/linuxserver/sabnzbd:latest
  #   container_name: sabnzbd
  #   network_mode: service:transmission  # SABnzbd MUST always use a VPN / Secure Internet connection
  #   environment:
  #   - PUID=${PUID:?err}    # User ID
  #   - PGID=${PGID:?err}    # Group ID
  #   - TZ=${TZ:?err}        # TimeZone
  #   - UMASK=${UMASK:?err}  # File Umask
  #   - DOCKER_MODS=ghcr.io/gilbn/theme.park:sabnzbd
  #   - TP_THEME=organizr # Refer to Theme Park for more info / options: https://docs.theme-park.dev/theme-options/aquamarine/
  #   volumes:
  #     - ${DOCKERFOLDER:?err}/sabnzbd/config:/config
  #     - ${MEDIAFOLDER:?err}:/data
  #   ports:
  #     - 8080:8080 # Sabnzbd Web UI
  #     - 9090:9090 # Sabnzbd Web UI HTTPS
  #   depends_on:
  #     - transmission
  #   restart: unless-stopped
      
# Create vlan on Synology
#sudo docker network create -d macvlan --subnet=192.168.253.0/24 --gateway=192.168.253.1 --ip-range=192.168.253.36/30 --aux-address 'host=192.168.253.39' -o parent=eth3 media-network
#sudo ip link add media-network link eth3 type macvlan mode bridge
#sudo ip addr add 192.168.253.39/32 dev media-network
#sudo ip link set media-network up
#sudo ip route add 192.168.253.36/30 dev media-network

This is for the .env file

COMPOSE_PROJECT_NAME=VpnMediaStack
OPENVPN_USERNAME=
OPENVPN_PASSWORD=
PUID=1031
PGID=100
TZ=America/Montreal
UMASK=002
DOCKERLOGGING_MAXFILE=10
DOCKERLOGGING_MAXSIZE=200k
LAN_NETWORK=192.168.253.0/24
HOSTNAME=
DOCKERFOLDER=/volume1/docker
MEDIAFOLDER=/volume1/data
DOMAIN=
SUB_DOMAIN_TRANSMISSION=transmission