1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
class profiles::transmission (
Optional[String] $nginx_server = undef,
Enum['None', 'Error', 'Info', 'Debug'] $msg_level = 'Error',
) {
$transmission_url = '/transmission'
$transmission_port = 9091
if ($nginx_server) {
require ::nginx
nginx::resource::location { $transmission_url:
proxy => "http://localhost:${transmission_port}${transmission_url}",
proxy_set_header => [],
server => $nginx_server,
ssl => true,
ssl_only => true,
}
}
ensure_packages(['transmission-cli'],
{ ensure => installed })
systemd::dropin_file { 'transmission-after.conf':
unit => 'transmission.service',
content => @(EOF)
[Unit]
After=network-online.target
| EOF
}
systemd::dropin_file { 'transmission-flags.conf':
unit => 'transmission.service',
content => @(EOF)
[Service]
ExecStart=
ExecStart=/usr/bin/transmission-daemon -f
| EOF
}
# TODO whitelists are currently disabled, since they don't seem to
# work. Possibly turn them on again some day.
file { [
'/var/lib/transmission',
'/var/lib/transmission/.config',
'/var/lib/transmission/.config/transmission-daemon',
]:
ensure => directory,
}
augeas { 'Transmission configuration':
lens => 'json.lns',
incl => '/var/lib/transmission/.config/transmission-daemon/settings.json',
changes => [
"set dict/entry['download-dir']/string /usr/net/",
"set dict/entry['rpc-username']/string hugo",
"set dict/entry['rpc-password']/string {eb43101d3b9aa02223466d7f98c5329c841c7967/Zr2tFpn",
"set dict/entry['rpc-whitelist']/string 127.0.0.1,::1",
"set dict/entry['rpc-port']/number ${transmission_port}",
"set dict/entry['rpc-url']/string ${transmission_url}/",
],
notify => Service['transmission'],
}
# https://github.com/transmission/transmission/wiki/Editing-Configuration-File
service { 'transmission':
ensure => 'running',
enable => true,
}
}
|