1
0
Fork 0
Install Transmission Docker Compose project
Find a file
2025-11-25 23:17:08 +01:00
defaults Make download directory path in container configurable 2025-11-24 20:02:14 +01:00
handlers Init transmission_docker role 2024-11-10 00:14:30 +01:00
meta Init transmission_docker role 2024-11-10 00:14:30 +01:00
tasks Add Flood integration 2025-11-25 23:17:08 +01:00
templates Make download directory path in container configurable 2025-11-24 20:02:14 +01:00
vars Make download directory path in container configurable 2025-11-24 20:02:14 +01:00
.ansible-lint Init transmission_docker role 2024-11-10 00:14:30 +01:00
LICENSE Init transmission_docker role 2024-11-10 00:14:30 +01:00
README.md Add Flood integration 2025-11-25 23:17:08 +01:00

Ansible Role: Transmission-docker

Install Transmission Docker Compose project.

Based on LinuxServer.io image: https://docs.linuxserver.io/images/docker-transmission/

Requirements

Requires the following to be installed:

  • docker
  • docker compose

Role Variables

Common system variables:

timezone: UTC

Common Docker projects variables:

# Base directory for Docker projects
docker_projects_path: # /var/apps

Available role variables are listed below, along with default values (see defaults/main.yml):

# Docker project variables

transmission_project_name: transmission

# Docker project dynamic vars (uses `docker_project_name` prefix, adapt if overridden)

# Port targeted by Traefik router
transmission_traefik_loadbalancer_server_port: 9091

# Main service additional docker-compose options (ex: cpu_shares, deploy, ...)
transmission_service_additional_options: |
  ports:
    - "9091:9091/tcp"   # rpc-port
    - "51413:51413/tcp" # peer-port
    - "51413:51413/udp" # peer-port
# Transmission project variables

transmission_version: latest

transmission_user:     "transmission"
transmission_password: "CH4NGE ME!"

## Local directories
transmission_download_dir: "{{ docker_project_path }}/downloads"
transmission_watch_dir:    "{{ docker_project_path }}/watch"
## Directories in container
transmission_download_dir_target: /downloads
transmission_watch_dir_target: /watch

# UID container is running as
transmission_puid: "{{ ansible_user_uid }}"
# GID container is running as
transmission_pgid: "{{ ansible_user_gid }}"

# Transmission custom settings (see `transmission_default_settings` in vars/main.yml)
transmission_custom_settings:
  blocklist-enabled: true
  blocklist-url:     "https://mirror.codebucket.de/transmission/blocklist.p2p.gz"

# Alternative web UI (optional)
# Examples: download into your config/ directory and use:
#   /config/transmissionic
#   /config/Shift
#   /config/combustion-release
transmission_web_home:

Dependencies

This role depends on :

Some variables allow integration with:

Example Playbook

- hosts: example
  gather_facts: true
  gather_subset:
    - "!all"
    - "!min"
    - user_id

  roles:
    - djuuu.transmission_docker

Using Flood

See djuuu.flood_docker

- hosts: example
  gather_facts: true
  gather_subset:
    - "!all"
    - "!min"
    - user_id

  pre_tasks:
    - name: Template Flood service yaml
      vars:
        flood_backend_service: transmission
      ansible.builtin.include_role:
        name: djuuu.flood_docker
        tasks_from: template_service

  roles:
    - djuuu.transmission_docker

Using Gluetun

See djuuu.gluetun_docker

- hosts: example
  gather_facts: true
  gather_subset:
    - "!all"
    - "!min"
    - user_id

  pre_tasks:
    - name: Template Gluetun service yaml
      ansible.builtin.include_role:
        name: djuuu.gluetun_docker
        tasks_from: template_service

  roles:
    - djuuu.transmission_docker

License

Beerware License