From 0d3753b945738b3a3946ae6dc08b44f7b3f9d067 Mon Sep 17 00:00:00 2001 From: gyurix Date: Tue, 22 Apr 2025 22:03:16 +0200 Subject: [PATCH] Add Transmission service configuration and templates --- applications-tree.json | 4 ++ transmission/domain-transmission.json | 60 ++++++++++++++++ transmission/firewall-transmission.json | 75 ++++++++++++++++++++ transmission/service-transmission.json | 91 +++++++++++++++++++++++++ transmission/template.json | 25 +++++++ transmission/transmission-secret.json | 9 +++ 6 files changed, 264 insertions(+) create mode 100644 transmission/domain-transmission.json create mode 100644 transmission/firewall-transmission.json create mode 100644 transmission/service-transmission.json create mode 100644 transmission/template.json create mode 100644 transmission/transmission-secret.json diff --git a/applications-tree.json b/applications-tree.json index 417e26e..f570c76 100644 --- a/applications-tree.json +++ b/applications-tree.json @@ -16,6 +16,10 @@ "name": "VaultWarden", "version": "latest" }, + { + "name": "TransMission", + "version": "latest" + }, { "name": "Smtp", "version": "latest" diff --git a/transmission/domain-transmission.json b/transmission/domain-transmission.json new file mode 100644 index 0000000..0c2def1 --- /dev/null +++ b/transmission/domain-transmission.json @@ -0,0 +1,60 @@ +{ + "main": { + "SERVICE_NAME": "transmission", + "DOMAIN": "#TRANSMISSION_DOMAIN" + }, + "containers": [ + { + "IMAGE": "safebox/domain-check", + "UPDATE": "true", + "MEMORY": "64M", + "NAME": "domain_checker", + "ROLES": "domain_checker", + "NETWORK": "host", + "SELECTOR": "", + "SCALE": "0", + "EXTRA": "--rm --privileged", + "PRE_START": [], + "DEPEND": [], + "POST_START": [], + "CMD": "", + "ENVS": [ + { + "PROXY": "smarthostloadbalancer" + }, + { + "TARGET": "transmission" + }, + { + "PORT": "9091" + }, + { + "DOMAIN": "#TRANSMISSION_DOMAIN" + }, + { + "SMARTHOST_PROXY_PATH": "/smarthost-domains" + }, + { + "OPERATION": "CREATE" + } + ], + "VOLUMES": [ + { + "SOURCE": "/etc/user/config/smarthost-domains", + "DEST": "/smarthost-domains", + "TYPE": "rw" + }, + { + "SOURCE": "/etc/system/data/dns/hosts.local", + "DEST": "/etc/dns/hosts.local", + "TYPE": "ro" + }, + { + "SOURCE": "/var/run/docker.sock", + "DEST": "/var/run/docker.sock", + "TYPE": "rw" + } + ] + } + ] +} \ No newline at end of file diff --git a/transmission/firewall-transmission.json b/transmission/firewall-transmission.json new file mode 100644 index 0000000..93af9fc --- /dev/null +++ b/transmission/firewall-transmission.json @@ -0,0 +1,75 @@ +{ + "main": { + "SERVICE_NAME": "firewalls", + "DOMAIN": "null" + }, + "containers": [ + { + "IMAGE": "safebox/firewall", + "NAME": "firewall", + "MEMORY": "64M", + "NETWORK": "host", + "SCALE": "0", + "VOLUMES": [ + { + "SOURCE": "/run/", + "DEST": "/run/", + "TYPE": "rw" + }, + { + "SOURCE": "/etc/user/config/services", + "DEST": "/services", + "TYPE": "ro" + }, + { + "SOURCE": "/etc/system/data/dns/hosts.local", + "DEST": "/etc/dns/hosts.local", + "TYPE": "ro" + }, + { + "SOURCE": "/var/run/docker.sock", + "DEST": "/var/run/docker.sock", + "TYPE": "rw" + } + ], + "PORTS": [], + "READYNESS": [ + { + "tcp": "" + }, + { + "HTTP": "" + }, + { + "EXEC": "/ready.sh" + } + ], + "ENVS": [ + { + "CHAIN": "DOCKER-USER" + }, + { + "SOURCE": "smarthostbackend" + }, + { + "TARGET": "transmission" + }, + { + "TYPE": "tcp" + }, + { + "TARGET_PORT": "9091" + }, + { + "COMMENT": "proxy for transmission" + } + ], + "EXTRA": "--privileged --rm", + "DEPEND": "null", + "START_ON_BOOT": "false", + "CMD": "null", + "PRE_START": "null", + "POST_START": "null" + } + ] +} \ No newline at end of file diff --git a/transmission/service-transmission.json b/transmission/service-transmission.json new file mode 100644 index 0000000..ef9e775 --- /dev/null +++ b/transmission/service-transmission.json @@ -0,0 +1,91 @@ +{ + "main": { + "SERVICE_NAME": "transmission", + "DOMAIN": "#TRANSMISSION_DOMAIN" + }, + "containers": [ + { + "IMAGE": "alpine:latest", + "UPDATE": "true", + "NAME": "nextcloud", + "NETWORK": "host", + "MEMORY": "64M", + "VOLUMES": [ + { + "SOURCE": "USER_DATA", + "DEST": "/etc/user/data", + "TYPE": "rw" + } + ], + "EXTRA": "--rm", + "DEPEND": "null", + "START_ON_BOOT": "false", + "ENTRYPOINT": "sh -c", + "CMD": "mkdir -p /etc/user/data/transmission/config && mkdir -p /etc/user/data/transmission/downloads && mkdir -p /etc/user/data/transmission/watch", + "PRE_START": "null", + "POST_START": "null" + }, + { + "IMAGE": "lscr.io/linuxserver/transmission:latest", + "UPDATE": "true", + "NAME": "transmission", + "VOLUMES": [ + { + "SOURCE": "/etc/user/data/transmission/config", + "DEST": "/config", + "TYPE": "rw" + }, + { + "SOURCE": "/etc/user/data/transmission/downloads", + "DEST": "/downloads", + "TYPE": "rw" + }, + { + "SOURCE": "/etc/user/data/transmission/watch", + "DEST": "/watch", + "TYPE": "rw" + } + ], + "PORTS": [ + { + "SOURCE": "null", + "DEST": "9091", + "TYPE": "tcp" + }, + { + "SOURCE": "51413", + "DEST": "51413", + "TYPE": "tcp" + }, + { + "SOURCE": "51413", + "DEST": "51413", + "TYPE": "udp" + } + ], + "ENVS": [ + { + "TZ": "#TRANSMISSION_TZ" + }, + { + "PUID": "1000" + }, + { + "PGID": "1000" + } + ], + "ENV_FILES": [ + "/etc/user/secret/transmission/transmission.json" + ], + "EXTRA": "--restart unless-stopped", + "DEPEND": [], + "START_ON_BOOT": "false", + "CMD": "null", + "PRE_START": "null", + "POST_START": [ + "firewall-transmission", + "domain-transmission" + ] + } + ] +} \ No newline at end of file diff --git a/transmission/template.json b/transmission/template.json new file mode 100644 index 0000000..459ebca --- /dev/null +++ b/transmission/template.json @@ -0,0 +1,25 @@ +{ + "name": "transmission", + "fields": [ + { + "description": "Please add a username: (not required but recommended)", + "key": "TRANSMISSION_USER", + "value": "" + }, + { + "description": "Please add a password for user: (not required but recommended)", + "key": "TRANSMISSION_PASS", + "value": "" + }, + { + "description": "Please add your transmission domain: (not required but recommended)", + "key": "TRANSMISSION_DOMAIN", + "value": "" + }, + { + "description": "Please add your transmission timezone: (optional", + "key": "TRANSMISSION_TZ", + "value": "Europe/Budapest" + } + ] +} \ No newline at end of file diff --git a/transmission/transmission-secret.json b/transmission/transmission-secret.json new file mode 100644 index 0000000..f5482a1 --- /dev/null +++ b/transmission/transmission-secret.json @@ -0,0 +1,9 @@ +{ + "transmission": { + "USER": "#VAULTWARDEN_USER", + "PASS": "#VAULTWARDEN_PASS", + "WHITELIST": "#VAULTWARDEN_WHITELIST", + "PEERPORT": "#VAULTWARDEN_PEERPORT", + "HOST_WHITELIST": "#VAULTWARDEN_HOST_WHITELIST" + } +} \ No newline at end of file