summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2021-07-14 01:01:42 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2021-07-14 01:01:42 +0200
commit2f0497639c157a58b80a515d0df6612d7bb2c8b6 (patch)
treeefab22321d8fcf1dcc378db6377611ca33d380f9
parentConfigure gandalf root webserver. (diff)
downloadwebdav_server-2f0497639c157a58b80a515d0df6612d7bb2c8b6.tar.gz
webdav_server-2f0497639c157a58b80a515d0df6612d7bb2c8b6.tar.xz
Configure shiori server.
-rw-r--r--manifests/site.pp4
-rw-r--r--modules/profiles/manifests/transmission.pp71
-rw-r--r--modules/profiles/templates/transmission.json.epp77
3 files changed, 152 insertions, 0 deletions
diff --git a/manifests/site.pp b/manifests/site.pp
index 19a431d..ca11ca8 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -6,6 +6,10 @@ node 'gandalf.adrift.space' {
include ::profiles::workstation
include ::profiles::gandalf_web
+
+ class { 'profiles::transmission':
+ nginx_server => 'gandalf',
+ }
}
node 'hornquist.se' {
diff --git a/modules/profiles/manifests/transmission.pp b/modules/profiles/manifests/transmission.pp
new file mode 100644
index 0000000..f79517b
--- /dev/null
+++ b/modules/profiles/manifests/transmission.pp
@@ -0,0 +1,71 @@
+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.
+
+ # https://github.com/transmission/transmission/wiki/Editing-Configuration-File
+ file { '/var/lib/transmission/.config/transmission-daemon/settings.json':
+ content => epp('profiles/transmission.json.epp', {
+ rpc_username => 'hugo',
+ # '{' + sha1(password + salt)
+ # But I don't know how I managed to generate it, since
+ # transmission rolls its own crypto
+ rpc_password => '{eb43101d3b9aa02223466d7f98c5329c841c7967/Zr2tFpn',
+ download_dir => '/usr/net/',
+ rpc_whitelist => ['127.0.0.1', '::1'],
+ rpc_port => $transmission_port,
+ rpc_url => "${transmission_url}/",
+ msg_level => case $msg_level {
+ 'None': { 0 }
+ 'Error': { 1 }
+ 'Info': { 2 }
+ 'Debug': { 3 }
+ },
+ }),
+ } ~> exec { '/bin/systemctl reload transmission':
+ refreshonly => true,
+ }
+
+ service { 'transmission':
+ ensure => 'running',
+ enable => true,
+ }
+}
diff --git a/modules/profiles/templates/transmission.json.epp b/modules/profiles/templates/transmission.json.epp
new file mode 100644
index 0000000..885ad5e
--- /dev/null
+++ b/modules/profiles/templates/transmission.json.epp
@@ -0,0 +1,77 @@
+<%- | String $rpc_username,
+ String $rpc_password,
+ String $download_dir,
+ Integer $rpc_port,
+ String $rpc_url,
+ Integer $msg_level = 1,
+ Optional[String] $incomplete_dir = undef,
+ Optional[Array[String]] $rpc_whitelist = undef,
+| -%>
+{
+ "alt-speed-down": 50,
+ "alt-speed-enabled": false,
+ "alt-speed-time-begin": 540,
+ "alt-speed-time-day": 127,
+ "alt-speed-time-enabled": false,
+ "alt-speed-time-end": 1020,
+ "alt-speed-up": 50,
+ "bind-address-ipv4": "0.0.0.0",
+ "bind-address-ipv6": "::",
+ "blocklist-enabled": false,
+ "blocklist-url": "http://www.example.com/blocklist",
+ "cache-size-mb": 4,
+ "dht-enabled": true,
+ "download-dir": "<%= $download_dir -%>",
+ "download-queue-enabled": true,
+ "download-queue-size": 5,
+ "encryption": 1,
+ "idle-seeding-limit": 30,
+ "idle-seeding-limit-enabled": false,
+ "incomplete-dir": "<%= $incomplete_dir -%>",
+ "incomplete-dir-enabled": <%= if ($incomplete_dir) { 'true' } else { 'false' } -%>,
+ "lpd-enabled": false,
+ "message-level": <%= $msg_level -%>,
+ "peer-congestion-algorithm": "",
+ "peer-id-ttl-hours": 6,
+ "peer-limit-global": 200,
+ "peer-limit-per-torrent": 50,
+ "peer-port": 51413,
+ "peer-port-random-high": 65535,
+ "peer-port-random-low": 49152,
+ "peer-port-random-on-start": false,
+ "peer-socket-tos": "default",
+ "pex-enabled": true,
+ "port-forwarding-enabled": true,
+ "preallocation": 1,
+ "prefetch-enabled": true,
+ "queue-stalled-enabled": true,
+ "queue-stalled-minutes": 30,
+ "ratio-limit": 2,
+ "ratio-limit-enabled": false,
+ "rename-partial-files": true,
+ "rpc-authentication-required": true,
+ "rpc-bind-address": "::",
+ "rpc-enabled": true,
+ "rpc-host-whitelist": "",
+ "rpc-host-whitelist-enabled": false,
+ "rpc-password": "<%= $rpc_password -%>",
+ "rpc-port": <%= $rpc_port -%>,
+ "rpc-url": "<%= $rpc_url -%>",
+ "rpc-username": "<%= $rpc_username -%>",
+ "rpc-whitelist": "<%= $rpc_whitelist.join(',') -%>",
+ "rpc-whitelist-enabled": <%= if ($rpc_whitelist) { 'false' } else { 'false' }-%>,
+ "scrape-paused-torrents-enabled": true,
+ "script-torrent-done-enabled": false,
+ "script-torrent-done-filename": "",
+ "seed-queue-enabled": false,
+ "seed-queue-size": 10,
+ "speed-limit-down": 100,
+ "speed-limit-down-enabled": false,
+ "speed-limit-up": 100,
+ "speed-limit-up-enabled": false,
+ "start-added-torrents": true,
+ "trash-original-torrent-files": false,
+ "umask": 18,
+ "upload-slots-per-torrent": 14,
+ "utp-enabled": true
+}