mirror of
https://github.com/linuxserver/docker-transmission.git
synced 2025-10-25 23:36:04 +02:00
156 lines
8.7 KiB
YAML
156 lines
8.7 KiB
YAML
---
|
|
|
|
# project information
|
|
project_name: transmission
|
|
project_url: "https://www.transmissionbt.com/"
|
|
project_logo: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/transmission.png"
|
|
project_blurb: "[{{ project_name|capitalize }}]({{ project_url }}) is designed for easy, powerful use. Transmission has the features you want from a BitTorrent client: encryption, a web interface, peer exchange, magnet links, DHT, µTP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more."
|
|
project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
|
|
project_categories: "Downloaders"
|
|
# supported architectures
|
|
available_architectures:
|
|
- {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
|
|
- {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
|
|
# container parameters
|
|
common_param_env_vars_enabled: true
|
|
param_container_name: "{{ project_name }}"
|
|
param_usage_include_vols: true
|
|
param_volumes:
|
|
- {vol_path: "/config", vol_host_path: "/path/to/{{ project_name }}/data", desc: "Where transmission should store config files and logs."}
|
|
opt_param_usage_include_vols: true
|
|
opt_param_volumes:
|
|
- {vol_path: "/downloads", vol_host_path: "/path/to/downloads", desc: "Local path for downloads."}
|
|
- {vol_path: "/watch", vol_host_path: "/path/to/watch/folder", desc: "Watch folder for torrent files."}
|
|
param_usage_include_ports: true
|
|
param_ports:
|
|
- {external_port: "9091", internal_port: "9091", port_desc: "WebUI"}
|
|
- {external_port: "51413", internal_port: "51413", port_desc: "Torrent Port TCP"}
|
|
- {external_port: "51413", internal_port: "51413/udp", port_desc: "Torrent Port UDP"}
|
|
# optional container parameters
|
|
opt_param_usage_include_env: true
|
|
opt_param_env_vars:
|
|
- {env_var: "TRANSMISSION_WEB_HOME", env_value: "", desc: "Specify the path to an alternative UI folder."}
|
|
- {env_var: "USER", env_value: "", desc: "Specify an optional username for the interface"}
|
|
- {env_var: "PASS", env_value: "", desc: "Specify an optional password for the interface"}
|
|
- {env_var: "WHITELIST", env_value: "", desc: "Specify an optional list of comma separated ip whitelist. Fills rpc-whitelist setting."}
|
|
- {env_var: "PEERPORT", env_value: "", desc: "Specify an optional port for torrent TCP/UDP connections. Fills peer-port setting."}
|
|
- {env_var: "HOST_WHITELIST", env_value: "", desc: "Specify an optional list of comma separated dns name whitelist. Fills rpc-host-whitelist setting."}
|
|
readonly_supported: true
|
|
nonroot_supported: true
|
|
# application setup block
|
|
app_setup_block_enabled: true
|
|
app_setup_block: |
|
|
Webui is on port 9091, the settings.json file in /config has extra settings not available in the webui. Stop the container before editing it or any changes won't be saved.
|
|
|
|
## Securing the webui with a username/password.
|
|
|
|
Use the `USER` and `PASS` variables in docker run/create/compose to set authentication. Do not manually edit the `settings.json` to input user/pass, otherwise transmission cannot be stopped cleanly by the s6 supervisor.
|
|
|
|
## Updating Blocklists Automatically
|
|
|
|
This requires `"blocklist-enabled": true,` to be set. By setting this to true, it is assumed you have also populated `blocklist-url` with a valid block list.
|
|
|
|
The automatic update is a shell script that downloads a blocklist from the url stored in the settings.json, gunzips it, and restarts the transmission daemon.
|
|
|
|
The automatic update will run once a day at 3am local server time.
|
|
|
|
## Using whitelist
|
|
|
|
Use `WHITELIST` to enable a list of ip as whitelist. This enable support for `rpc-whitelist`. When `WHITELIST` is empty support for whitelist is disabled.
|
|
|
|
Use `HOST_WHITELIST` to enable an list of dns names as host-whitelist. This enable support for `rpc-host-whitelist`. When `HOST_WHITELIST` is empty support for host-whitelist is disabled.
|
|
|
|
## Use alternative Transmission torrent ports
|
|
|
|
Use `PEERPORT` to specify the port(s) Transmission should listen on. This disables random port selection. This should be the same as the port mapped in your docker configuration.
|
|
# init diagram
|
|
init_diagram: |
|
|
"transmission:latest": {
|
|
docker-mods
|
|
base {
|
|
fix-attr +\nlegacy cont-init
|
|
}
|
|
docker-mods -> base
|
|
legacy-services
|
|
custom services
|
|
init-services -> legacy-services
|
|
init-services -> custom services
|
|
custom services -> legacy-services
|
|
legacy-services -> ci-service-check
|
|
init-migrations -> init-adduser
|
|
init-os-end -> init-config
|
|
init-config -> init-config-end
|
|
init-crontab-config -> init-config-end
|
|
init-transmission-config -> init-config-end
|
|
init-config -> init-crontab-config
|
|
init-mods-end -> init-custom-files
|
|
init-adduser -> init-device-perms
|
|
base -> init-envfile
|
|
base -> init-migrations
|
|
init-config-end -> init-mods
|
|
init-mods-package-install -> init-mods-end
|
|
init-mods -> init-mods-package-install
|
|
init-adduser -> init-os-end
|
|
init-device-perms -> init-os-end
|
|
init-envfile -> init-os-end
|
|
init-custom-files -> init-services
|
|
init-config -> init-transmission-config
|
|
init-services -> svc-cron
|
|
svc-cron -> legacy-services
|
|
init-services -> svc-transmission
|
|
svc-transmission -> legacy-services
|
|
}
|
|
Base Images: {
|
|
"baseimage-alpine:edge"
|
|
}
|
|
"transmission:latest" <- Base Images
|
|
# changelog
|
|
changelogs:
|
|
- {date: "29.11.24:", desc: "Fix PEERPORT setting."}
|
|
- {date: "07.10.23:", desc: "Install unrar from [linuxserver repo](https://github.com/linuxserver/docker-unrar)."}
|
|
- {date: "10.08.23:", desc: "Bump unrar to 6.2.10."}
|
|
- {date: "10.06.23:", desc: "Bump unrar to 6.2.8, install transmission-extra."}
|
|
- {date: "25.05.23:", desc: "Deprecate armhf."}
|
|
- {date: "14.05.23:", desc: "Explicitly install transmission-remote."}
|
|
- {date: "02.03.23:", desc: "Add cron init to allow user customizable crontabs."}
|
|
- {date: "08.02.23:", desc: "Rebase to Alpine Edge to get access to most up to date builds of Transmission. Remove bundled 3rd party UI packages."}
|
|
- {date: "05.01.23:", desc: "Rebase to Alpine 3.17, restore GNU findutils package."}
|
|
- {date: "02.11.22:", desc: "Rebase to Alpine 3.16, migrate to s6v3."}
|
|
- {date: "12.08.22:", desc: "Bump unrar to 6.1.7."}
|
|
- {date: "03.04.22:", desc: "Add Transmissionic as a UI option."}
|
|
- {date: "21.02.22:", desc: "Build unrar from source, rebase to Alpine 3.15, add symlinks neeeded for TWC. Credit @alexbelgium"}
|
|
- {date: "09.07.21:", desc: "Wait for the transmission-daemon termination after a caught sigterm."}
|
|
- {date: "06.03.21:", desc: "Add Flood for Transmission as a UI option."}
|
|
- {date: "23.01.21:", desc: "Rebasing to alpine 3.13."}
|
|
- {date: "02.11.20:", desc: "Add ca-certificates package to allow connecting to https trackers."}
|
|
- {date: "02.06.20:", desc: "Rebase to alpine 3.12, update to transmission 3.0, remove python2, add python3."}
|
|
- {date: "11.05.20:", desc: "Remove unnecessary chmod (remnant of previous change)."}
|
|
- {date: "28.04.20:", desc: "Use transmission-remote to update blocklist."}
|
|
- {date: "30.03.20:", desc: "Internalize blocklist-update.sh."}
|
|
- {date: "29.03.20:", desc: "Update auth info in readme."}
|
|
- {date: "19.12.19:", desc: "Rebasing to alpine 3.11."}
|
|
- {date: "04.10.19:", desc: "Update package label."}
|
|
- {date: "21.08.19:", desc: "Add optional user/pass environment variables, fix transmission shut down if user/pass are set."}
|
|
- {date: "19.07.19:", desc: "Send SIGTERM in blocklist update to properly close pid."}
|
|
- {date: "28.06.19:", desc: "Rebasing to alpine 3.10."}
|
|
- {date: "23.03.19:", desc: "Switching to new Base images, shift to arm32v7 tag."}
|
|
- {date: "22.02.19:", desc: "Rebase to Alpine 3.9, add themes to baseimage, add python and findutils."}
|
|
- {date: "22.02.19:", desc: "Catch term and clean exit."}
|
|
- {date: "07.02.19:", desc: "Add pipeline logic and multi arch."}
|
|
- {date: "15.08.18:", desc: "Rebase to alpine linux 3.8."}
|
|
- {date: "12.02.18:", desc: "Pull transmission from edge repo."}
|
|
- {date: "10.01.18:", desc: "Rebase to alpine linux 3.7."}
|
|
- {date: "25.07.17:", desc: "Add rsync package."}
|
|
- {date: "27.05.17:", desc: "Rebase to alpine linux 3.6."}
|
|
- {date: "06.02.17:", desc: "Rebase to alpine linux 3.5."}
|
|
- {date: "15.01.17:", desc: "Add p7zip, tar, unrar, and unzip packages."}
|
|
- {date: "16.10.16:", desc: "Blocklist autoupdate with optional authentication."}
|
|
- {date: "14.10.16:", desc: "Add version layer informationE."}
|
|
- {date: "23.09.16:", desc: "Add information about securing the webui to README."}
|
|
- {date: "21.09.16:", desc: "Add curl package."}
|
|
- {date: "09.09.16:", desc: "Add layer badges to README."}
|
|
- {date: "28.08.16:", desc: "Add badges to README."}
|
|
- {date: "09.08.16:", desc: "Rebase to alpine linux."}
|
|
- {date: "06.12.15:", desc: "Separate mapping for watch folder."}
|
|
- {date: "16.11.15:", desc: "Initial Release."}
|