diff --git a/freefilesync/DOCS.md b/freefilesync/DOCS.md new file mode 100644 index 000000000..20f7eec14 --- /dev/null +++ b/freefilesync/DOCS.md @@ -0,0 +1,127 @@ +# Transmission addon for Hass.io + +The torrent client for Hass.io with OpenVPN support. + +## Installation + +The installation of this add-on is pretty straightforward and not different in +comparison to installing any other Hass.io add-on. + +1. Add https://github.com/pierrickrouxel/hassio-addon-transmission.git to your Hass.io instance as a repository. +1. Install the "Transmission" add-on. +1. Start the "Transmission" add-on. +1. Check the logs of the "Tranmission" to see if everything went well. +1. Open the web-ui + +## Configuration + +**Note**: _Remember to restart the add-on when the configuration is changed._ + +Transmission add-on configuration: + +```json +{ + "log_level": "info", + "authentication_required": false, + "username": "", + "password": "", + "openvpn_enabled": false, + "openvpn_config": "", + "openvpn_username": "", + "openvpn_password": "" +} +``` + +### Option: `log_level` + +The `log_level` option controls the level of log output by the addon and can +be changed to be more or less verbose, which might be useful when you are +dealing with an unknown issue. Possible values are: + +- `trace`: Show every detail, like all called internal functions. +- `debug`: Shows detailed debug information. +- `info`: Normal (usually) interesting events. +- `warning`: Exceptional occurrences that are not errors. +- `error`: Runtime errors that do not require immediate action. +- `fatal`: Something went terribly wrong. Add-on becomes unusable. + +Please note that each level automatically includes log messages from a +more severe level, e.g., `debug` also shows `info` messages. By default, +the `log_level` is set to `info`, which is the recommended setting unless +you are troubleshooting. + +### Option: `authentication_required` + +This option can be used to password protect the web-ui. + +### Option: `username` + +The username for authentication. + +### Option: `password` + +The password for authentication. + +### Option: `openvpn_enabled` + +Enable OpenVPN to anonymize your torrent activity. + +### Option: `openvpn_config` + +The name of .ovpn file. You should put it in `/config/openvpn`. + +### Option: `openvpn_username` + +Your OpenVPN username. + +### Option: `openvpn_password` + +Your OpenVPN password. + +## Embedding into Home Assistant + +This addon supports ingress, thus it can simply be integrated into Home Assistant without having to forward any additional ports. Here is an example configuration: + +```yaml +transmission: + host: f6fddefc-transmission +``` + +If you want, you can add an icon to the sidebar by toggling *Show in Sidebar* as well. + +## Changelog & Releases + +The format of the log is based on +[Keep a Changelog](http://keepachangelog.com/en/1.0.0/). + +Releases are based on [Semantic Versioning](http://semver.org/spec/v2.0.0.html), and use the format +of ``MAJOR.MINOR.PATCH``. In a nutshell, the version will be incremented +based on the following: + +- ``MAJOR``: Incompatible or major changes. +- ``MINOR``: Backwards-compatible new features and enhancements. +- ``PATCH``: Backwards-compatible bugfixes and package updates. + +## License + +MIT License + +Copyright (c) 2018 Pierrick Rouxel + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/freefilesync/Dockerfile b/freefilesync/Dockerfile new file mode 100644 index 000000000..20f96b668 --- /dev/null +++ b/freefilesync/Dockerfile @@ -0,0 +1,38 @@ +ARG BUILD_FROM=hassioaddons/base:latest +# hadolint ignore=DL3006 +FROM ${BUILD_FROM} + +# Setup base +RUN mkdir /freefilesync \ + && curl -J -L -o /tmp/FreeFileSync_11.4_Linux.tar.gz \ + "https://freefilesync.org/download/FreeFileSync_11.4_Linux.tar.gz" \ + && mkdir /freefilesync \ + && tar zxvf \ + /FreeFileSync_11.4_Linux.tar.gz \ + --strip 1 -C /freefilesync + +RUN sed -i "s|/config|/FreeFileSync|g" /freefilesync/FreeFileSync + +# Build arugments +ARG BUILD_ARCH +ARG BUILD_DATE +ARG BUILD_REF +ARG BUILD_VERSION + +# Labels +LABEL \ + io.hass.name="Transmission" \ + io.hass.description="The torrent client for Hass.io with OpenVPN support" \ + io.hass.arch="${BUILD_ARCH}" \ + io.hass.type="addon" \ + io.hass.version=${BUILD_VERSION} \ + maintainer="Pierrick Rouxel " \ + org.label-schema.description="The torrent client for Hass.io" \ + org.label-schema.build-date=${BUILD_DATE} \ + org.label-schema.name="Transmission" \ + org.label-schema.schema-version="1.0" \ + org.label-schema.url="https://github.com/pierrickrouxel" \ + org.label-schema.usage="https://github.com/pierrickrouxel/hassio-addon-transmission/tree/master/README.md" \ + org.label-schema.vcs-ref=${BUILD_REF} \ + org.label-schema.vcs-url="https://github.com/pierrickrouxel" \ + org.label-schema.vendor="Community Hass.io Addons" diff --git a/freefilesync/build.json b/freefilesync/build.json new file mode 100644 index 000000000..f72e9866d --- /dev/null +++ b/freefilesync/build.json @@ -0,0 +1,11 @@ +{ + "squash": false, + "build_from": { + "aarch64": "hassioaddons/base-aarch64:latest", + "amd64": "hassioaddons/base-amd64:latest", + "armhf": "hassioaddons/base-armhf:latest", + "armv7": "hassioaddons/base-armv7:latest", + "i386": "hassioaddons/base-i386:latest" + }, + "args": {} +} diff --git a/freefilesync/config.json b/freefilesync/config.json new file mode 100644 index 000000000..063a4947c --- /dev/null +++ b/freefilesync/config.json @@ -0,0 +1,66 @@ +{ + "name": "Transmission NAS", + "version": "1.0", + "slug": "transmission", + "description": "The torrent client for Hass.io with OpenVPN support", + "url": "https://github.com/pierrickrouxel/hassio-addon-transmission", + "webui": "http://[HOST]:[PORT:9091]/transmission/web/", + "startup": "services", + "ingress": "true", + "ingress_port": 8099, + "panel_icon": "mdi:progress-download", + "panel_title": "Transmission", + "arch": ["armhf", "armv7", "aarch64", "amd64", "i386"], + "map": [ + "config:rw", + "share:rw", + "ssl" + ], + "boot": "auto", + "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)" + }, + "privileged": [ + "NET_ADMIN" + ], + "devices": [ + "/dev/net/tun:/dev/net/tun:rwm" + ], + "privileged": ["SYS_ADMIN", "DAC_READ_SEARCH"], + "full_access": true, + "hassio_api": true, + "homeassistant_api": false, + "host_network": false, + "options": { + "log_level": "info", + "authentication_required": false, + "username": "", + "password": "", + "localdisks": ["sda1"], + "openvpn_enabled": false, + "openvpn_config": "", + "openvpn_username": "", + "openvpn_password": "" + }, + "schema": { + "log_level": "match(^(trace|debug|info|notice|warning|error|fatal)$)", + "authentication_required": "bool", + "username": "str", + "password": "str", + "localdisks": ["str"], + "openvpn_enabled": "bool", + "openvpn_config": "str", + "openvpn_username": "str", + "openvpn_password": "str" + }, + "environment": { + "LOG_FORMAT": "{LEVEL}: {MESSAGE}" + } + } diff --git a/freefilesync/icon.png b/freefilesync/icon.png new file mode 100644 index 000000000..29a6a3cdc Binary files /dev/null and b/freefilesync/icon.png differ diff --git a/freefilesync/logo.png b/freefilesync/logo.png new file mode 100644 index 000000000..524beb6b2 Binary files /dev/null and b/freefilesync/logo.png differ