diff --git a/transmission/rootfs/etc/cont-init.d/20-transmission-configuration.sh b/transmission/rootfs/etc/cont-init.d/20-transmission-configuration.sh index e8ed42d5a..e84e9b66d 100644 --- a/transmission/rootfs/etc/cont-init.d/20-transmission-configuration.sh +++ b/transmission/rootfs/etc/cont-init.d/20-transmission-configuration.sh @@ -21,12 +21,12 @@ CONFIG=$(:8443`. + + +[repository]: https://github.com/alexbelgium/hassio-addons diff --git a/transmission_ls/build.json b/transmission_ls/build.json new file mode 100644 index 000000000..5acd1d1f1 --- /dev/null +++ b/transmission_ls/build.json @@ -0,0 +1,11 @@ +{ + "build_from": { + "armv7": "linuxserver/code-server:arm32v7-3.00-r0-ls69", + "armhf": "linuxserver/code-server:arm32v7-3.00-r0-ls69", + "aarch64": "linuxserver/code-server:arm64v8-3.00-r0-ls69", + "amd64": "linuxserver/code-server:amd64-3.00-r0-ls69" + }, + "squash": false, + "args": {} +} + diff --git a/transmission_ls/config.json b/transmission_ls/config.json new file mode 100644 index 000000000..7d7cf520b --- /dev/null +++ b/transmission_ls/config.json @@ -0,0 +1,51 @@ +{ + "name": "Transmission", + "version": "1.0", + "slug": "transmission_ls", + "description": "Bittorrent client.", + "url": "https://github.com/alexbelgium/transmission_ls", + "startup": "services", + "arch": [ + "aarch64", + "amd64", + "armv7", + "armhf" + ], + "ports": { + "9091/tcp": null, + "51413/tcp": 51413, + "51413/udp": 51413 + }, + "ports_description": { + "9091/tcp": "Web UI port (Not required for Hass.io Ingress)", + "51413/tcp": "Peer port (setup port forwarding to this port)", + "51413/udp": "Peer port (setup port forwarding to this port)" + }, + "map": [ + "config:rw", + "share:rw", + "media:rw", + "ssl" + ], + "privileged": ["SYS_ADMIN", "DAC_READ_SEARCH"], + "full_access": true, + "webui": "http://[HOST]:[PORT:8443]", + "boot": "auto", + "environment": { + "PUID": 0, + "PGID": 0 + }, + "options": { + "PUID": 0, + "PGID": 0, + "download_dir": "/share/downloads", + "incomplete_dir": "/share/incomplete" + }, + "schema": { + "PUID": "int", + "PGID": "int", + "TZ": "str?", + "download_dir": "str", + "incomplete_dir": "str" + } +} diff --git a/transmission_ls/icon.png b/transmission_ls/icon.png new file mode 100644 index 000000000..29a6a3cdc Binary files /dev/null and b/transmission_ls/icon.png differ diff --git a/transmission_ls/logo.png b/transmission_ls/logo.png new file mode 100644 index 000000000..524beb6b2 Binary files /dev/null and b/transmission_ls/logo.png differ diff --git a/transmission_ls/rootfs/etc/cont-init.d/10-requirements.sh b/transmission_ls/rootfs/etc/cont-init.d/10-requirements.sh new file mode 100644 index 000000000..21a075b1b --- /dev/null +++ b/transmission_ls/rootfs/etc/cont-init.d/10-requirements.sh @@ -0,0 +1,15 @@ +#!/usr/bin/with-contenv bashio +# ============================================================================== +# This files check if all user configuration requirements are met +# ============================================================================== + +# Check authentication requirements, if enabled +if bashio::config.true 'authentication_required'; then + if ! bashio::config.has_value 'username'; then + bashio::exit.nok 'Transmission authentication is enabled, but no username was specified' + fi + + if ! bashio::config.has_value 'password'; then + bashio::exit.nok 'Transmission authentication is enabled, but no password was specified' + fi +fi diff --git a/transmission_ls/rootfs/etc/cont-init.d/20-transmission-configuration.sh b/transmission_ls/rootfs/etc/cont-init.d/20-transmission-configuration.sh new file mode 100644 index 000000000..e84e9b66d --- /dev/null +++ b/transmission_ls/rootfs/etc/cont-init.d/20-transmission-configuration.sh @@ -0,0 +1,48 @@ +#!/usr/bin/with-contenv bashio +# ============================================================================== + +declare CONFIG +declare authentication_required +declare username +declare password +declare incomplete_bool +declare download_dir +declare incomplete_dir + +if ! bashio::fs.directory_exists '/share/transmission'; then + mkdir '/share/transmission' +fi + +if ! bashio::fs.file_exists '/share/transmission/settings.json'; then + echo "{}" > /share/transmission/settings.json +fi + +CONFIG=$( /share/transmission/settings.json diff --git a/transmission_ls/rootfs/etc/cont-init.d/50-mounts.sh b/transmission_ls/rootfs/etc/cont-init.d/50-mounts.sh new file mode 100644 index 000000000..0bb2a5c57 --- /dev/null +++ b/transmission_ls/rootfs/etc/cont-init.d/50-mounts.sh @@ -0,0 +1,21 @@ +#!/usr/bin/with-contenv bashio +bashio::log.info 'Mounting external hdd...' + +# Mount local Share if configured and if Protection Mode is active +if bashio::config.has_value 'localdisks'; then + MOREDISKS=$(bashio::config 'localdisks') + bashio::log.info "Local Disks mounting.. ${MOREDISKS}" && \ + for disk in $MOREDISKS + do + bashio::log.info "Mount ${disk}" + mkdir -p /share/$disk && \ + if [ ! -d /share/$disk ]; then + echo "Creating /share/$disk" + mkdir -p /share/$disk + chown -R abc:abc /share/$disk + fi + mount /dev/$disk /share/$disk && \ + bashio::log.info "Success!" + done || \ + bashio::log.warning "Protection mode is ON. Unable to mount local drives!" +fi \ No newline at end of file diff --git a/transmission_ls/rootfs/etc/services.d/transmission/finish b/transmission_ls/rootfs/etc/services.d/transmission/finish new file mode 100644 index 000000000..71a44d571 --- /dev/null +++ b/transmission_ls/rootfs/etc/services.d/transmission/finish @@ -0,0 +1,8 @@ +#!/usr/bin/execlineb -S0 +# ============================================================================== +# Take down the S6 supervision tree when the server fails +# ============================================================================== +if -n { s6-test $# -ne 0 } +if -n { s6-test ${1} -eq 256 } + +s6-svscanctl -t /var/run/s6/services diff --git a/transmission_ls/rootfs/etc/services.d/transmission/run b/transmission_ls/rootfs/etc/services.d/transmission/run new file mode 100644 index 000000000..6fd9f2ce2 --- /dev/null +++ b/transmission_ls/rootfs/etc/services.d/transmission/run @@ -0,0 +1,7 @@ +#!/usr/bin/with-contenv bashio +# ============================================================================== +# Runs Transmission +# ============================================================================== +bashio::log.info "Starting Transmission..." + +exec /usr/bin/transmission-daemon --foreground --config-dir /share/transmission \ No newline at end of file