diff --git a/Dockerfile b/Dockerfile index 47d1784..855a48f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,60 +13,60 @@ ENV HOME="/config" \ PYTHONIOENCODING=utf-8 RUN \ - echo "***** install gnupg ****" && \ - apt-get update && \ - apt-get install -y \ - gnupg && \ - echo "***** add sabnzbd repositories ****" && \ - apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F && \ - echo "deb http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ - echo "deb-src http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ - echo "deb http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ - echo "deb-src http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ - echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y \ - libffi-dev \ - libssl-dev \ - p7zip-full \ - par2-tbb \ - python3 \ - python3-cryptography \ - python3-distutils \ - python3-pip \ - unrar && \ - if [ -z ${SABNZBD_VERSION+x} ]; then \ - SABNZBD_VERSION=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ - fi && \ - mkdir -p /app/sabnzbd && \ - curl -o \ - /tmp/sabnzbd.tar.gz -L \ - "https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz" && \ - tar xf \ - /tmp/sabnzbd.tar.gz -C \ - /app/sabnzbd --strip-components=1 && \ - cd /app/sabnzbd && \ - pip3 install -U --no-cache-dir pip && \ - pip install -U --no-cache-dir \ - apprise \ - pynzb \ - requests && \ - pip install -U --no-cache-dir -r requirements.txt && \ - echo "**** cleanup ****" && \ - ln -s \ - /usr/bin/python3 \ - /usr/bin/python && \ - apt-get purge --auto-remove -y \ - libffi-dev \ - libssl-dev \ - python3-pip && \ - apt-get clean && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* \ - $HOME/.cache + echo "***** install gnupg ****" && \ + apt-get update && \ + apt-get install -y \ + gnupg && \ + echo "***** add sabnzbd repositories ****" && \ + apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F && \ + echo "deb http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ + echo "deb-src http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ + echo "deb http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ + echo "deb-src http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ + echo "**** install packages ****" && \ + apt-get update && \ + apt-get install -y \ + libffi-dev \ + libssl-dev \ + p7zip-full \ + par2-tbb \ + python3 \ + python3-cryptography \ + python3-distutils \ + python3-pip \ + unrar && \ + if [ -z ${SABNZBD_VERSION+x} ]; then \ + SABNZBD_VERSION=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest \ + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + mkdir -p /app/sabnzbd && \ + curl -o \ + /tmp/sabnzbd.tar.gz -L \ + "https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz" && \ + tar xf \ + /tmp/sabnzbd.tar.gz -C \ + /app/sabnzbd --strip-components=1 && \ + cd /app/sabnzbd && \ + pip3 install -U --no-cache-dir pip && \ + pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ \ + apprise \ + pynzb \ + requests && \ + pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ -r requirements.txt && \ + echo "**** cleanup ****" && \ + ln -s \ + /usr/bin/python3 \ + /usr/bin/python && \ + apt-get purge --auto-remove -y \ + libffi-dev \ + libssl-dev \ + python3-pip && \ + apt-get clean && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + $HOME/.cache # add local files COPY root/ / diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index 9afe47b..c29319d 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -13,60 +13,60 @@ ENV HOME="/config" \ PYTHONIOENCODING=utf-8 RUN \ - echo "***** install gnupg ****" && \ - apt-get update && \ - apt-get install -y \ - gnupg && \ - echo "***** add sabnzbd repositories ****" && \ - apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F && \ - echo "deb http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ - echo "deb-src http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ - echo "deb http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ - echo "deb-src http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ - echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y \ - libffi-dev \ - libssl-dev \ - p7zip-full \ - par2-tbb \ - python3 \ - python3-cryptography \ - python3-distutils \ - python3-pip \ - unrar && \ - if [ -z ${SABNZBD_VERSION+x} ]; then \ - SABNZBD_VERSION=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ - fi && \ - mkdir -p /app/sabnzbd && \ - curl -o \ - /tmp/sabnzbd.tar.gz -L \ - "https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz" && \ - tar xf \ - /tmp/sabnzbd.tar.gz -C \ - /app/sabnzbd --strip-components=1 && \ - cd /app/sabnzbd && \ - pip3 install -U --no-cache-dir pip && \ - pip install -U --no-cache-dir \ - apprise \ - pynzb \ - requests && \ - pip install -U --no-cache-dir -r requirements.txt && \ - echo "**** cleanup ****" && \ - ln -s \ - /usr/bin/python3 \ - /usr/bin/python && \ - apt-get purge --auto-remove -y \ - libffi-dev \ - libssl-dev \ - python3-pip && \ - apt-get clean && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* \ - $HOME/.cache + echo "***** install gnupg ****" && \ + apt-get update && \ + apt-get install -y \ + gnupg && \ + echo "***** add sabnzbd repositories ****" && \ + apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F && \ + echo "deb http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ + echo "deb-src http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ + echo "deb http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ + echo "deb-src http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ + echo "**** install packages ****" && \ + apt-get update && \ + apt-get install -y \ + libffi-dev \ + libssl-dev \ + p7zip-full \ + par2-tbb \ + python3 \ + python3-cryptography \ + python3-distutils \ + python3-pip \ + unrar && \ + if [ -z ${SABNZBD_VERSION+x} ]; then \ + SABNZBD_VERSION=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest \ + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + mkdir -p /app/sabnzbd && \ + curl -o \ + /tmp/sabnzbd.tar.gz -L \ + "https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz" && \ + tar xf \ + /tmp/sabnzbd.tar.gz -C \ + /app/sabnzbd --strip-components=1 && \ + cd /app/sabnzbd && \ + pip3 install -U --no-cache-dir pip && \ + pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ \ + apprise \ + pynzb \ + requests && \ + pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ -r requirements.txt && \ + echo "**** cleanup ****" && \ + ln -s \ + /usr/bin/python3 \ + /usr/bin/python && \ + apt-get purge --auto-remove -y \ + libffi-dev \ + libssl-dev \ + python3-pip && \ + apt-get clean && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + $HOME/.cache # add local files COPY root/ / diff --git a/Dockerfile.armhf b/Dockerfile.armhf index e28d66a..18387f8 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -13,63 +13,63 @@ ENV HOME="/config" \ PYTHONIOENCODING=utf-8 RUN \ - echo "***** install gnupg ****" && \ - apt-get update && \ - apt-get install -y \ - gnupg && \ - echo "***** add sabnzbd repositories ****" && \ - apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F && \ - echo "deb http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ - echo "deb-src http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ - echo "deb http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ - echo "deb-src http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ - echo "**** install packages ****" && \ - apt-get update && \ - apt-get install -y \ - libffi-dev \ - libssl-dev \ - p7zip-full \ - par2-tbb \ - python3 \ - python3-cryptography \ - python3-distutils \ - python3-pip \ - rustc \ - unrar && \ - if [ -z ${SABNZBD_VERSION+x} ]; then \ - SABNZBD_VERSION=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest \ - | awk '/tag_name/{print $4;exit}' FS='[""]'); \ - fi && \ - mkdir -p /app/sabnzbd && \ - curl -o \ - /tmp/sabnzbd.tar.gz -L \ - "https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz" && \ - tar xf \ - /tmp/sabnzbd.tar.gz -C \ - /app/sabnzbd --strip-components=1 && \ - cd /app/sabnzbd && \ - pip3 install -U --no-cache-dir pip && \ - pip install -U --no-cache-dir \ - apprise \ - pynzb \ - requests && \ - pip install -U --no-cache-dir -r requirements.txt && \ - echo "**** cleanup ****" && \ - ln -s \ - /usr/bin/python3 \ - /usr/bin/python && \ - apt-get purge --auto-remove -y \ - libffi-dev \ - libssl-dev \ - python3-pip \ - rustc && \ - apt-get clean && \ - rm -rf \ - /tmp/* \ - /var/lib/apt/lists/* \ - /var/tmp/* \ - $HOME/.cache \ - $HOME/.cargo + echo "***** install gnupg ****" && \ + apt-get update && \ + apt-get install -y \ + gnupg && \ + echo "***** add sabnzbd repositories ****" && \ + apt-key adv --keyserver hkp://keyserver.ubuntu.com:11371 --recv-keys 0x98703123E0F52B2BE16D586EF13930B14BB9F05F && \ + echo "deb http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ + echo "deb-src http://ppa.launchpad.net/jcfp/nobetas/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ + echo "deb http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ + echo "deb-src http://ppa.launchpad.net/jcfp/sab-addons/ubuntu bionic main" >> /etc/apt/sources.list.d/sabnzbd.list && \ + echo "**** install packages ****" && \ + apt-get update && \ + apt-get install -y \ + libffi-dev \ + libssl-dev \ + p7zip-full \ + par2-tbb \ + python3 \ + python3-cryptography \ + python3-distutils \ + python3-pip \ + rustc \ + unrar && \ + if [ -z ${SABNZBD_VERSION+x} ]; then \ + SABNZBD_VERSION=$(curl -s https://api.github.com/repos/sabnzbd/sabnzbd/releases/latest \ + | awk '/tag_name/{print $4;exit}' FS='[""]'); \ + fi && \ + mkdir -p /app/sabnzbd && \ + curl -o \ + /tmp/sabnzbd.tar.gz -L \ + "https://github.com/sabnzbd/sabnzbd/releases/download/${SABNZBD_VERSION}/SABnzbd-${SABNZBD_VERSION}-src.tar.gz" && \ + tar xf \ + /tmp/sabnzbd.tar.gz -C \ + /app/sabnzbd --strip-components=1 && \ + cd /app/sabnzbd && \ + pip3 install -U --no-cache-dir pip && \ + pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ \ + apprise \ + pynzb \ + requests && \ + pip install -U --no-cache-dir --find-links https://wheel-index.linuxserver.io/ubuntu/ -r requirements.txt && \ + echo "**** cleanup ****" && \ + ln -s \ + /usr/bin/python3 \ + /usr/bin/python && \ + apt-get purge --auto-remove -y \ + libffi-dev \ + libssl-dev \ + python3-pip \ + rustc && \ + apt-get clean && \ + rm -rf \ + /tmp/* \ + /var/lib/apt/lists/* \ + /var/tmp/* \ + $HOME/.cache \ + $HOME/.cargo # add local files COPY root/ / diff --git a/README.md b/README.md index 9f30a20..1728db2 100644 --- a/README.md +++ b/README.md @@ -70,12 +70,20 @@ This image provides various versions that are available via tags. `latest` tag u Initial setup is done from the http port. -In Sabnzbd gui settings, under `Folders`, make sure to set the `Completed Download Folder` as `/downloads` and the `Temporary Download Folder` as `/incomplete-downloads` - Https access for sabnzbd needs to be enabled in either the intial setup wizard or in the configure settings of the webui, be sure to use 9090 as port for https. See here for info on some of the switch settings for sabnzbd https://sabnzbd.org/wiki/configuration/2.3/switches . +### Download folders + +In Sabnzbd gui settings, under `Folders`, make sure to set the `Completed Download Folder` as `/downloads` and the `Temporary Download Folder` as `/incomplete-downloads` + +We have set `/incomplete-downloads` and `/downloads` as ***optional paths***, this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. + +Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. + +The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/Docker_Guide#Consistent_and_well_planned_paths) on how to get started with this. + ## Usage Here are some example snippets to help you get started creating a container. @@ -97,7 +105,7 @@ services: - TZ=Europe/London volumes: - /path/to/data:/config - - /path/to/downloads:/downloads + - /path/to/downloads:/downloads #optional - /path/to/incomplete/downloads:/incomplete-downloads #optional ports: - 8080:8080 @@ -116,7 +124,7 @@ docker run -d \ -p 8080:8080 \ -p 9090:9090 \ -v /path/to/data:/config \ - -v /path/to/downloads:/downloads \ + -v /path/to/downloads:/downloads `#optional` \ -v /path/to/incomplete/downloads:/incomplete-downloads `#optional` \ --restart unless-stopped \ ghcr.io/linuxserver/sabnzbd @@ -246,6 +254,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **14.05.21:** - Use linuxserver.io wheel index for pip packages. * **12.02.21:** - Clean up rust/cargo and pip cache. * **17.08.20:** - Run from source with python3 instead of ppa, remove python2 completely, symlink `python` to `python3`. * **02.01.20:** - Add python3 on top of python2 to image during transition. diff --git a/readme-vars.yml b/readme-vars.yml index e0c0484..9368682 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -30,7 +30,6 @@ param_env_vars: param_usage_include_vols: true param_volumes: - { vol_path: "/config", vol_host_path: "/path/to/data", desc: "Local path for sabnzbd config files." } - - { vol_path: "/downloads", vol_host_path: "/path/to/downloads", desc: "Local path for finished downloads." } param_usage_include_ports: true param_ports: - { external_port: "8080", internal_port: "8080", port_desc: "HTTP port for the WebUI." } @@ -42,6 +41,7 @@ cap_add_param: false opt_param_usage_include_env: false opt_param_usage_include_vols: true opt_param_volumes: + - { vol_path: "/downloads", vol_host_path: "/path/to/downloads", desc: "Local path for finished downloads." } - { vol_path: "/incomplete-downloads", vol_host_path: "/path/to/incomplete/downloads", desc: "Local path for incomplete-downloads." } opt_param_usage_include_ports: false opt_param_device_map: false @@ -53,15 +53,23 @@ app_setup_block_enabled: true app_setup_block: | Initial setup is done from the http port. - In Sabnzbd gui settings, under `Folders`, make sure to set the `Completed Download Folder` as `/downloads` and the `Temporary Download Folder` as `/incomplete-downloads` - Https access for sabnzbd needs to be enabled in either the intial setup wizard or in the configure settings of the webui, be sure to use 9090 as port for https. See here for info on some of the switch settings for sabnzbd https://sabnzbd.org/wiki/configuration/2.3/switches . + ### Download folders + + In Sabnzbd gui settings, under `Folders`, make sure to set the `Completed Download Folder` as `/downloads` and the `Temporary Download Folder` as `/incomplete-downloads` + + We have set `/incomplete-downloads` and `/downloads` as ***optional paths***, this is because it is the easiest way to get started. While easy to use, it has some drawbacks. Mainly losing the ability to hardlink (TL;DR a way for a file to exist in multiple places on the same file system while only consuming one file worth of space), or atomic move (TL;DR instant file moves, rather than copy+delete) files while processing content. + + Use the optional paths if you dont understand, or dont want hardlinks/atomic moves. + + The folks over at servarr.com wrote a good [write-up](https://wiki.servarr.com/Docker_Guide#Consistent_and_well_planned_paths) on how to get started with this. # changelog changelogs: + - { date: "14.05.21:", desc: "Use linuxserver.io wheel index for pip packages." } - { date: "12.02.21:", desc: "Clean up rust/cargo and pip cache." } - { date: "17.08.20:", desc: "Run from source with python3 instead of ppa, remove python2 completely, symlink `python` to `python3`." } - { date: "02.01.20:", desc: "Add python3 on top of python2 to image during transition." } diff --git a/root/etc/cont-init.d/20-config b/root/etc/cont-init.d/20-config index 9de439b..0bfeb15 100644 --- a/root/etc/cont-init.d/20-config +++ b/root/etc/cont-init.d/20-config @@ -2,11 +2,11 @@ # make folders mkdir -p \ - /downloads \ - /incomplete-downloads + /downloads \ + /incomplete-downloads # permissions chown abc:abc \ - /downloads \ - /incomplete-downloads + /downloads \ + /incomplete-downloads diff --git a/root/etc/services.d/sabnzbd/run b/root/etc/services.d/sabnzbd/run index 5c18516..cd14fdc 100644 --- a/root/etc/services.d/sabnzbd/run +++ b/root/etc/services.d/sabnzbd/run @@ -1,7 +1,7 @@ #!/usr/bin/with-contenv bash exec \ - s6-setuidgid abc python3 /app/sabnzbd/SABnzbd.py \ - --config-file /config --server 0.0.0.0:8080 + s6-setuidgid abc python3 /app/sabnzbd/SABnzbd.py \ + --config-file /config --server 0.0.0.0:8080