From c7ae392bd7165860f50ed95b3cb4a56bc80f8f6b Mon Sep 17 00:00:00 2001 From: hctancredi Date: Fri, 25 Dec 2020 20:29:16 -0300 Subject: [PATCH 01/51] Update and rename 98-vpn-config to 99-nzbgetessentials-config --- root/etc/cont-init.d/98-vpn-config | 27 ----------- .../cont-init.d/99-nzbgetessentials-config | 45 +++++++++++++++++++ 2 files changed, 45 insertions(+), 27 deletions(-) delete mode 100644 root/etc/cont-init.d/98-vpn-config create mode 100644 root/etc/cont-init.d/99-nzbgetessentials-config diff --git a/root/etc/cont-init.d/98-vpn-config b/root/etc/cont-init.d/98-vpn-config deleted file mode 100644 index a5f91276e..000000000 --- a/root/etc/cont-init.d/98-vpn-config +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/with-contenv bash - -# Determine if setup is needed -if [ ! -f /usr/local/lib/python***/dist-packages/sshuttle ] && \ -[ -f /usr/bin/apt ]; then - ## Ubuntu - apt-get update - apt-get install --no-install-recommends -y \ - iptables \ - openssh-client \ - python3 \ - python3-pip - pip3 install sshuttle -fi -if [ ! -f /usr/lib/python***/site-packages/sshuttle ] && \ -[ -f /sbin/apk ]; then - # Alpine - apk add --no-cache \ - iptables \ - openssh \ - py3-pip \ - python3 - pip3 install sshuttle -fi - -chown -R root:root /root -chmod -R 600 /root/.ssh diff --git a/root/etc/cont-init.d/99-nzbgetessentials-config b/root/etc/cont-init.d/99-nzbgetessentials-config new file mode 100644 index 000000000..dfcdd9895 --- /dev/null +++ b/root/etc/cont-init.d/99-nzbgetessentials-config @@ -0,0 +1,45 @@ +#!/usr/bin/with-contenv bash + +PAR2_VERSION="0.8.1" +PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v0.8.1/par2cmdline-$PAR2_VERSION.tar.gz" +echo "NZBGet Essentials - Installation Started" +apk --update upgrade +echo "Dependencies are being installed...." +apk add --no-cache --virtual=build-dependencies \ + make \ + g++ \ + ca-certificates \ + wget \ + autoconf \ + automake \ + openmp \ + git \ + build-base +update-ca-certificates +apk --update upgrade +apk add --no-cache \ +echo "Binaries are being installed..." + --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + ffmpeg \ + openssl \ + p7zip \ + unzip \ + unrar \ + python2 +if [ -f /usr/local/bin/par2 ]; then + echo "`par2 -V` is already installed" + echo "NZBGet Essentials - Installation Ended" +else + echo "PAR2 Installation Started" + mkdir -p /tmp/par2 + curl -kL ${PAR2_URL} | tar -xz -C /tmp/par2 --strip-components=1 + cd /tmp/par2 + aclocal + automake --add-missing + autoconf + ./configure + make + make install + rm -rf /tmp/* +fi +echo "NZBGet Essentials - Installation Ended" From d24983fbcd71344441dde2a05dd60b8cc634b7b8 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Fri, 25 Dec 2020 20:31:17 -0300 Subject: [PATCH 02/51] Rename 99-nzbgetessentials-config to 98-essentials --- .../etc/cont-init.d/{99-nzbgetessentials-config => 98-essentials} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename root/etc/cont-init.d/{99-nzbgetessentials-config => 98-essentials} (100%) diff --git a/root/etc/cont-init.d/99-nzbgetessentials-config b/root/etc/cont-init.d/98-essentials similarity index 100% rename from root/etc/cont-init.d/99-nzbgetessentials-config rename to root/etc/cont-init.d/98-essentials From 8e03e529c4570f4ec9bd8acdf60574398d342c42 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Fri, 25 Dec 2020 20:36:23 -0300 Subject: [PATCH 03/51] Update README.md --- README.md | 195 +++--------------------------------------------------- 1 file changed, 11 insertions(+), 184 deletions(-) diff --git a/README.md b/README.md index 91cc95cc7..f896ca2de 100644 --- a/README.md +++ b/README.md @@ -1,188 +1,15 @@ -# Intro +# NZBGet Essentials -The purpose of the repository is to provide examples and guidance in creating and storing a user consumable modification layer for the Library of Linuxserver.io Containers. -At it's core a Docker Mod is a tarball of files stored on Dockerhub and/or GitHub Container Registry that is downloaded and extracted on container boot before any init logic is run. -This allows: +This mod adds a few esssential binaries to NZBGet container. -* Developers and community users to modify base containers to suit their needs without the need to maintain a fork of the main docker repository -* Mods to be shared with the Linuxserver.io userbase as individual independent projects with their own support channels and development ideologies -* Zero cost hosting and build pipelines for these modifications leveraging GitHub Container Registry and Dockerhub -* Full custom configuration management layers for hooking containers into each other using environment variables contained in a compose file +ffmpeg +openssl +p7zip +unzip +unrar +python2 +par2 -It is important to note to end users of this system that there are not only extreme security implications to consuming files from souces outside of our control, but by leveraging community Mods you essentially lose direct support from the core LinuxServer team. Our first and foremost troubleshooting step will be to remove the `DOCKER_MODS` environment variable when running into issues and replace the container with a clean LSIO one. +In NZBGet docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:nzbget-essentials` -Again, when pulling in logic from external sources practice caution and trust the sources/community you get them from. - -## LinuxServer.io Hosted Mods - -We host and publish official Mods at the [linuxserver/mods](https://github.com/orgs/linuxserver/packages/container/mods/versions) endpoint as separate tags. Each tag is in the format of `-` for the latest versions, and `--` for the specific versions. - -Here's a list of the official Mods we host: - -## Using a Docker Mod - -Before consuming a Docker Mod ensure that the source code for it is publicly posted along with it's build pipeline pushing to Dockerhub. - -Consumption of a Docker Mod is intended to be as user friendly as possible and can be achieved with the following environment variables being passed to the container: - -* DOCKER_MODS- This can be a single endpoint `user/endpoint:tag` or an array of endpoints separated by `|` `user/endpoint:tag|user2/endpoint2:tag` -* RUN_BANNED_MODS- If this is set to any value you will bypass our centralized filter of banned Dockerhub users and run Mods regardless of a ban - -Full example: - -```bash -docker create \ - --name=nzbget \ - -e DOCKER_MODS=taisun/nzbget-mod:latest \ - -e PUID=1000 \ - -e PGID=1000 \ - -e TZ=Europe/London \ - -p 6789:6789 \ - -v :/config \ - -v :/downloads \ - --restart unless-stopped \ - linuxserver/nzbget -``` - -This will spinup an nzbget container and apply the custom logic found in the following repository: - - - -This basic demo installs Pip and a couple dependencies for plugins some users leverage with nzbget. - -## Creating and maintaining a Docker Mod - -We will always recommend to our users consuming Mods that they leverage ones from active community members or projects so transparency is key here. We understand that image layers can be pushed on the back end behind these pipelines, but every little bit helps. -In this repository we will be going over two basic methods of making a Mod along with an example of the GitHub Actions build logic to get this into a Dockerhub and/or GitHub Container Registry endpoint. Though we are not officially endorsing GitHub Actions here it is built in to GitHub repositories and forks making it very easy to get started. If you prefer others feel free to use them as long as build jobs are transparent. - -One of the core ideas to remember when creating a Mod is that it can only contain a single image layer, the examples below will show you how to add files standardly and how to run complex logic to assemble the files in a build layer to copy them over into this single layer. - -### Docker Mod Simple - just add scripts - -In this repository you will find the `Dockerfile` containing: - -```Dockerfile -FROM scratch - -# copy local files -COPY root/ / -``` - -For most users this will suffice and anything in the root/ folder of the repository will be added to the end users Docker container / path. - -The most common paths to leverage for Linuxserver images will be: - -* root/etc/cont-init.d/<98-script-name> - Contains init logic scripts that run before the services in the container start these should exit 0 and are ordered by filename -* root/etc/services.d/`yourservice`/run - Contains scripts that run in the foreground for persistent services IE NGINX -* root/defaults - Contains base config files that are copied/modified on first spinup - -The example files in this repo contain a script to install sshutil and a service file to run the installed utility. - -### Docker Mod Complex - Sky is the limit - -In this repository you will find the `Dockerfile.complex` containing: - -```Dockerfile -## Buildstage ## -FROM ghcr.io/linuxserver/baseimage-alpine:3.12 as buildstage - -RUN \ - echo "**** install packages ****" && \ - apk add --no-cache \ - curl && \ - echo "**** grab rclone ****" && \ - mkdir -p /root-layer && \ - curl -o \ - /root-layer/rclone.deb -L \ - "https://downloads.rclone.org/v1.47.0/rclone-v1.47.0-linux-amd64.deb" - -# copy local files -COPY root/ /root-layer/ - -## Single layer deployed image ## -FROM scratch - -# Add files from buildstage -COPY --from=buildstage /root-layer/ / -``` - -Here we are leveraging a multi stage DockerFile to run custom logic and pull down an Rclone deb from the Internet to include in our image layer for distribution. Any amount of logic can be run in this build stage or even multiple build stages as long as the files in the end are combined into a single folder for the COPY command in the final output. - -## Getting a Mod to Dockerhub - -To publish a Mod to DocherHub you will need the following accounts: - -* Github- -* DockerHub- - -We recommend using this repository as a template for your first Mod, so in this section we assume the code is finished and we will only concentrate on plugging into GitHub Actions/Dockerhub. - -The only code change you need to make to the build logic file `.github/workflows/BuildImage.yml` will be to modify the ENDPOINT to your own image: - -```yaml - ENDPOINT: "user/endpoint" - BRANCH: "master" -``` - -User is your Dockerhub user and endpoint is your own custom name (typically the name of the repository where your mod is). You do not need to create this endpoint beforehand, the build logic will push it and create it on first run. - -Head over to `https://github.com/user/endpoint/settings/secrets` and click on `New secret` - -Add `DOCKERUSER` (your DockerHub username) and `DOCKERPASS` (your DockerHub password or token). - -You can create a token by visiting - -GitHub Actions will trigger a build off of your repo when you commit. The image will be pushed to Dockerhub on success. This Dockerhub endpoint is the Mod variable you can use to customize your container now. - -## Getting a Mod to GitHub Container Registry - -To publish a Mod to GitHub Container Registry you will need the following accounts: - -* Github- - -We recommend using this repository as a template for your first Mod, so in this section we assume the code is finished and we will only concentrate on plugging into GitHub Actions/GitHub Container Registry. - -The only code change you need to make to the build logic file `.github/workflows/BuildImage.yml` will be to modify the ENDPOINT to your own image: - -```yaml - ENDPOINT: "user/endpoint" - BRANCH: "master" -``` - -User is your GutHub user and endpoint is your own custom name (typically the name of the repository where your mod is). You do not need to create this endpoint beforehand, the build logic will push it and create it on first run. - -Head over to `https://github.com/user/endpoint/settings/secrets` and click on `New secret` - -Add `CR_USER` (your GitHub username) and `CR_PAT` (a personal access token with `read:packages` and `write:packages` scopes). - -You can create a personal access token by visiting - -GitHub Actions will trigger a build off of your repo when you commit. The image will be pushed to GitHub Container Registry on success. This GitHub Container Registry endpoint is the Mod variable you can use to customize your container now. - -## Submitting a PR for a Mod to be added to the official LinuxServer.io repo - -* Fork this repo, checkout the `template` branch. -* Edit the `Dockerfile` for the mod. `Dockerfile.complex` is only an example and included for reference; it should be deleted when done. -* Inspect the `root` folder contents. Edit, add and remove as necessary. -* Edit the readme with pertinent info. -* Finally edit the `.github/workflows/BuildImage.yml`. Customize the vars for `BASEIMAGE` and `MODNAME`. -* Ask the team to create a new branch named `-` in this repo. Baseimage should be the name of the image the mod will be applied to. The new branch will be based on the [template branch](https://github.com/linuxserver/docker-mods/tree/template). -* Submit PR against the branch created by the team. -* Make sure that the commits in the PR are squashed. -* Also make sure that the commit and PR titles are in the format of `: `. Detailed description and further info should be provided in the body (ie. `code-server: python2 add python-pip`). - -## Appendix - -### Inspecting mods - -To inspect the file contents of external Mods dive is a great CLI tool: - - - -Basic usage: - -```bash -docker run --rm -it \ - -v /var/run/docker.sock:/var/run/docker.sock \ - wagoodman/dive:latest -``` +If adding multiple mods, enter them in an array separated by |, such as `DOCKER_MODS=linuxserver/mods:nzbget-essentials|linuxserver/mods:nzbget-mod2` From 3c29b90ea47a6cfdb2c70594895235151959b55d Mon Sep 17 00:00:00 2001 From: hctancredi Date: Fri, 25 Dec 2020 20:38:16 -0300 Subject: [PATCH 04/51] Delete run --- root/etc/services.d/sshvpn/run | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 root/etc/services.d/sshvpn/run diff --git a/root/etc/services.d/sshvpn/run b/root/etc/services.d/sshvpn/run deleted file mode 100644 index 7d49e7969..000000000 --- a/root/etc/services.d/sshvpn/run +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/with-contenv bash - -sshuttle --dns --remote root@${HOST}:${PORT} 0/0 -x 172.17.0.0/16 From 49369a66c3cf3c562ee52263eb9915c4452edd84 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Fri, 25 Dec 2020 20:39:14 -0300 Subject: [PATCH 05/51] Update Dockerfile --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 2f24b2092..031027ae5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,6 @@ FROM scratch +LABEL maintainer="hctancredi" + # copy local files COPY root/ / From 824971701f8b7725f49e6e963d59551efd51df2a Mon Sep 17 00:00:00 2001 From: hctancredi Date: Fri, 25 Dec 2020 20:40:15 -0300 Subject: [PATCH 06/51] Delete Dockerfile.complex --- Dockerfile.complex | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 Dockerfile.complex diff --git a/Dockerfile.complex b/Dockerfile.complex deleted file mode 100644 index 3196da574..000000000 --- a/Dockerfile.complex +++ /dev/null @@ -1,21 +0,0 @@ -## Buildstage ## -FROM ghcr.io/linuxserver/baseimage-alpine:3.12 as buildstage - -RUN \ - echo "**** install packages ****" && \ - apk add --no-cache \ - curl && \ - echo "**** grab rclone ****" && \ - mkdir -p /root-layer && \ - curl -o \ - /root-layer/rclone.deb -L \ - "https://downloads.rclone.org/v1.47.0/rclone-v1.47.0-linux-amd64.deb" - -# copy local files -COPY root/ /root-layer/ - -## Single layer deployed image ## -FROM scratch - -# Add files from buildstage -COPY --from=buildstage /root-layer/ / From d1eee14fa467363c810fc780ce32c555c528ab6a Mon Sep 17 00:00:00 2001 From: hctancredi Date: Fri, 25 Dec 2020 20:42:20 -0300 Subject: [PATCH 07/51] Delete blacklist.txt --- blacklist.txt | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 blacklist.txt diff --git a/blacklist.txt b/blacklist.txt deleted file mode 100644 index 9cce7e51a..000000000 --- a/blacklist.txt +++ /dev/null @@ -1,2 +0,0 @@ -evilbitcoinminer -rootkitinc From 629a363acf35892639f349f88d68c011dbdcaeca Mon Sep 17 00:00:00 2001 From: hctancredi Date: Fri, 25 Dec 2020 20:44:22 -0300 Subject: [PATCH 08/51] Update mod-list.yml --- mod-list.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mod-list.yml b/mod-list.yml index 7cffe3f7c..dd6d179c6 100644 --- a/mod-list.yml +++ b/mod-list.yml @@ -47,6 +47,10 @@ mods: container_mods: - imagemagick: https://github.com/linuxserver/docker-mods/tree/letsencrypt-imagemagick - proxy-confs: https://github.com/linuxserver/docker-mods/tree/nginx-proxy-confs + nzbget: + mod_count: 1 + container_mods: + - essentials: https://github.com/linuxserver/docker-mods/tree/nzbget-essentials openssh-server: mod_count: 4 container_mods: From 45cff467a877a27b29afad3a1f8af305e63ddefd Mon Sep 17 00:00:00 2001 From: hctancredi Date: Fri, 25 Dec 2020 20:53:30 -0300 Subject: [PATCH 09/51] Update BuildImage.yml --- .github/workflows/BuildImage.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml index 43c1e1135..a9d35ea73 100644 --- a/.github/workflows/BuildImage.yml +++ b/.github/workflows/BuildImage.yml @@ -3,8 +3,9 @@ name: Build Image on: [push, pull_request, workflow_dispatch] env: - ENDPOINT: "user/endpoint" - BRANCH: "master" + ENDPOINT: "linuxserver/mods" #don't modify + BASEIMAGE: "nzbget" #replace + MODNAME: "essentials" #replace jobs: build: From aba4f065158fa25fc75e14e505d0489264e46e87 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Fri, 25 Dec 2020 21:14:45 -0300 Subject: [PATCH 10/51] Update README.md From 93981219dd57b28090620ca82db61c96fb882be9 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Fri, 25 Dec 2020 22:45:10 -0300 Subject: [PATCH 11/51] Update 98-essentials --- root/etc/cont-init.d/98-essentials | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index dfcdd9895..695f022cf 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -17,8 +17,8 @@ apk add --no-cache --virtual=build-dependencies \ build-base update-ca-certificates apk --update upgrade -apk add --no-cache \ echo "Binaries are being installed..." +apk add --no-cache \ --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \ ffmpeg \ openssl \ From 3b144b1fc23358af9c26e51cbb39a9da6a851170 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Sat, 26 Dec 2020 13:17:26 -0300 Subject: [PATCH 12/51] Update BuildImage.yml --- .github/workflows/BuildImage.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml index a9d35ea73..973c6746d 100644 --- a/.github/workflows/BuildImage.yml +++ b/.github/workflows/BuildImage.yml @@ -3,9 +3,8 @@ name: Build Image on: [push, pull_request, workflow_dispatch] env: - ENDPOINT: "linuxserver/mods" #don't modify - BASEIMAGE: "nzbget" #replace - MODNAME: "essentials" #replace + ENDPOINT: "hctancredi/docker-mods" + BRANCH: "nzbget" jobs: build: From cf3bfe1df9ff86c24437d55011593cfb39c84444 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Sat, 26 Dec 2020 13:24:03 -0300 Subject: [PATCH 13/51] Update README.md From 3f856f2fec924be7dbbd5720e1b4dd09006925de Mon Sep 17 00:00:00 2001 From: hctancredi Date: Sat, 26 Dec 2020 13:37:58 -0300 Subject: [PATCH 14/51] Create .travis.yml --- .travis.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..280a3c333 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,25 @@ + +sudo: true + +language: bash + +services: + - docker + +env: + global: + - DOCKERHUB="hctancredi/docker-mods" + +jobs: + include: + - stage: BuildImage + if: (NOT (type IN (pull_request))) + script: + # Build Dev image + - docker build --no-cache -t ${DOCKERHUB}:${TRAVIS_COMMIT} . + - docker tag ${DOCKERHUB}:${TRAVIS_COMMIT} ${DOCKERHUB}:latest + # Login to DockerHub + - echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin + # Push all of the tags + - docker push ${DOCKERHUB}:${TRAVIS_COMMIT} + - docker push ${DOCKERHUB}:latest From b061b6c5c51f39a00e0fe622db060e03fc8305a7 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Sat, 26 Dec 2020 14:36:11 -0300 Subject: [PATCH 15/51] Delete mod-list.yml --- mod-list.yml | 92 ---------------------------------------------------- 1 file changed, 92 deletions(-) delete mode 100644 mod-list.yml diff --git a/mod-list.yml b/mod-list.yml deleted file mode 100644 index dd6d179c6..000000000 --- a/mod-list.yml +++ /dev/null @@ -1,92 +0,0 @@ -mods: - calibre-web: - mod_count: 1 - container_mods: - - calibre: https://github.com/linuxserver/docker-calibre-web/tree/calibre - code-server: - mod_count: 14 - container_mods: - - docker: https://github.com/linuxserver/docker-mods/tree/code-server-docker - - dotnet: https://github.com/linuxserver/docker-mods/tree/code-server-dotnet - - flutter: https://github.com/linuxserver/docker-mods/tree/code-server-flutter - - golang: https://github.com/linuxserver/docker-mods/tree/code-server-golang - - nodejs: https://github.com/linuxserver/docker-mods/tree/code-server-nodejs - - npmglobal: https://github.com/linuxserver/docker-mods/tree/code-server-npmglobal - - php: https://github.com/linuxserver/docker-mods/tree/code-server-php - - powershell: https://github.com/linuxserver/docker-mods/tree/code-server-powershell - - prolog: https://github.com/linuxserver/docker-mods/tree/code-server-prolog - - python2: https://github.com/linuxserver/docker-mods/tree/code-server-python2 - - python3: https://github.com/linuxserver/docker-mods/tree/code-server-python3 - - scikit-learn: https://github.com/linuxserver/docker-mods/tree/code-server-scikit-learn - - shellcheck: https://github.com/linuxserver/docker-mods/tree/code-server-shellcheck - - zsh: https://github.com/linuxserver/docker-mods/tree/code-server-zsh - healthchecks: - mod_count: 1 - container_mods: - - apprise: https://github.com/linuxserver/docker-mods/tree/healthchecks-apprise - jellyfin: - mod_count: 1 - container_mods: - - opencl-intel: https://github.com/linuxserver/docker-mods/tree/jellyfin-opencl-intel - lazylibrarian: - mod_count: 1 - container_mods: - - ffmpeg: https://github.com/linuxserver/docker-mods/tree/lazylibrarian-ffmpeg - letsencrypt: - mod_count: 3 - container_mods: - - f2bdiscord: https://github.com/linuxserver/docker-mods/tree/letsencrypt-f2bdiscord - - ffmpeg: https://github.com/linuxserver/docker-mods/tree/swag-ffmpeg - - imagemagick: https://github.com/linuxserver/docker-mods/tree/letsencrypt-imagemagick - lidarr: - mod_count: 1 - container_mods: - - flac2mp3: https://github.com/linuxserver/docker-mods/tree/lidarr-flac2mp3 - nginx: - mod_count: 2 - container_mods: - - imagemagick: https://github.com/linuxserver/docker-mods/tree/letsencrypt-imagemagick - - proxy-confs: https://github.com/linuxserver/docker-mods/tree/nginx-proxy-confs - nzbget: - mod_count: 1 - container_mods: - - essentials: https://github.com/linuxserver/docker-mods/tree/nzbget-essentials - openssh-server: - mod_count: 4 - container_mods: - - git: https://github.com/linuxserver/docker-mods/tree/openssh-server-git - - rsync: https://github.com/linuxserver/docker-mods/tree/openssh-server-rsync - - openssh-client: https://github.com/linuxserver/docker-mods/tree/openssh-server-openssh-client - - ssh-tunnel: https://github.com/linuxserver/docker-mods/tree/openssh-server-ssh-tunnel - papermerge: - mod_count: 1 - container_mods: - - multilangocr: https://github.com/linuxserver/docker-mods/tree/papermerge-multilangocr - plex: - mod_count: 1 - container_mods: - - absolute-hama: https://github.com/linuxserver/docker-mods/tree/plex-absolute-hama - radarr: - mod_count: 1 - container_mods: - - striptracks: https://github.com/linuxserver/docker-mods/tree/radarr-striptracks - sonarr: - mod_count: 1 - container_mods: - - striptracks: https://github.com/linuxserver/docker-mods/tree/radarr-striptracks - swag: - mod_count: 5 - container_mods: - - cloudflare-real-ip: https://github.com/linuxserver/docker-mods/tree/swag-cloudflare-real-ip - - f2bdiscord: https://github.com/linuxserver/docker-mods/tree/swag-f2bdiscord - - ffmpeg: https://github.com/linuxserver/docker-mods/tree/swag-ffmpeg - - geoip2influx: https://github.com/linuxserver/docker-mods/tree/swag-geoip2influx - - imagemagick: https://github.com/linuxserver/docker-mods/tree/swag-imagemagick - universal: - mod_count: 5 - container_mods: - - apprise: https://github.com/linuxserver/docker-mods/tree/universal-apprise - - cron: https://github.com/linuxserver/docker-mods/tree/universal-cron - - docker: https://github.com/linuxserver/docker-mods/tree/universal-docker - - git: https://github.com/linuxserver/docker-mods/tree/universal-git - - tshoot: https://github.com/linuxserver/docker-mods/tree/universal-tshoot From 951441583ec1af5370d1bae634a8382cf2fd53f8 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Sat, 26 Dec 2020 14:36:26 -0300 Subject: [PATCH 16/51] Delete BuildImage.yml --- .github/workflows/BuildImage.yml | 61 -------------------------------- 1 file changed, 61 deletions(-) delete mode 100644 .github/workflows/BuildImage.yml diff --git a/.github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml deleted file mode 100644 index 973c6746d..000000000 --- a/.github/workflows/BuildImage.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: Build Image - -on: [push, pull_request, workflow_dispatch] - -env: - ENDPOINT: "hctancredi/docker-mods" - BRANCH: "nzbget" - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2.3.3 - - - name: Build image - run: | - docker build --no-cache -t ${{ github.sha }} . - - - name: Tag image - if: ${{ github.ref == env.BRANCH }} - run: | - docker tag ${{ github.sha }} ${ENDPOINT}: - docker tag ${{ github.sha }} ${ENDPOINT}:${{ github.sha }} - docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}: - docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${{ github.sha }} - - - name: Credential check - if: ${{ github.ref == env.BRANCH }} - run: | - echo "CR_USER=${{ secrets.CR_USER }}" >> $GITHUB_ENV - echo "CR_PAT=${{ secrets.CR_PAT }}" >> $GITHUB_ENV - echo "DOCKERUSER=${{ secrets.DOCKERUSER }}" >> $GITHUB_ENV - echo "DOCKERPASS=${{ secrets.DOCKERPASS }}" >> $GITHUB_ENV - if [[ "${{ secrets.CR_USER }}" == "" && "${{ secrets.CR_PAT }}" == "" && "${{ secrets.DOCKERUSER }}" == "" && "${{ secrets.DOCKERPASS }}" == "" ]]; then - echo "::error::Push credential secrets missing." - echo "::error::You must set either CR_USER & CR_PAT or DOCKERUSER & DOCKERPASS as secrets in your repo settings." - echo "::error::See https://github.com/linuxserver/docker-mods/blob/master/README.md for more information/instructions." - exit 1 - fi - - - name: Login to GitHub Container Registry - if: ${{ github.ref == env.BRANCH && env.CR_USER && env.CR_PAT }} - run: | - echo "${{ secrets.CR_PAT }}" | docker login ghcr.io -u ${{ secrets.CR_USER }} --password-stdin - - - name: Push tags to GitHub Container Registry - if: ${{ github.ref == env.BRANCH && env.CR_USER && env.CR_PAT }} - run: | - docker push ghcr.io/${ENDPOINT}:${{ github.sha }} - docker push ghcr.io/${ENDPOINT}: - - - name: Login to DockerHub - if: ${{ github.ref == env.BRANCH && env.DOCKERUSER && env.DOCKERPASS }} - run: | - echo ${{ secrets.DOCKERPASS }} | docker login -u ${{ secrets.DOCKERUSER }} --password-stdin - - - name: Push tags to DockerHub - if: ${{ github.ref == env.BRANCH && env.DOCKERUSER && env.DOCKERPASS }} - run: | - docker push ${ENDPOINT}:${{ github.sha }} - docker push ${ENDPOINT}: From af6b657b75a39ae33c08545ec35d7b63b3af5856 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Sat, 26 Dec 2020 14:45:43 -0300 Subject: [PATCH 17/51] Update 98-essentials From a2a0e2fe5cc8ba65f0164887a958b78eb05bb18f Mon Sep 17 00:00:00 2001 From: hctancredi Date: Sat, 26 Dec 2020 14:46:05 -0300 Subject: [PATCH 18/51] Update 98-essentials --- root/etc/cont-init.d/98-essentials | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index 695f022cf..eb026e839 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -42,4 +42,4 @@ else make install rm -rf /tmp/* fi -echo "NZBGet Essentials - Installation Ended" +echo "NZBGet Essentials - Installation Ended!" From ec3865e9f29e70ab4954b75b27dcef34acc32827 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Sat, 26 Dec 2020 15:05:03 -0300 Subject: [PATCH 19/51] Update .travis.yml --- .travis.yml | 72 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 20 deletions(-) diff --git a/.travis.yml b/.travis.yml index 280a3c333..3f63b64af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,25 +1,57 @@ + +name: Build Image -sudo: true - -language: bash - -services: - - docker +on: [push, pull_request, workflow_dispatch] env: - global: - - DOCKERHUB="hctancredi/docker-mods" + ENDPOINT: "hctancredi/docker-mods" #don't modify + BASEIMAGE: "lazylibrarian" #replace + MODNAME: "lazylibrarian" #replace jobs: - include: - - stage: BuildImage - if: (NOT (type IN (pull_request))) - script: - # Build Dev image - - docker build --no-cache -t ${DOCKERHUB}:${TRAVIS_COMMIT} . - - docker tag ${DOCKERHUB}:${TRAVIS_COMMIT} ${DOCKERHUB}:latest - # Login to DockerHub - - echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin - # Push all of the tags - - docker push ${DOCKERHUB}:${TRAVIS_COMMIT} - - docker push ${DOCKERHUB}:latest + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2.3.3 + + - name: Build image + run: | + docker build --no-cache -t ${{ github.sha }} . + - name: Tag image + if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) }} + run: | + docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME} + docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }} + docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME} + docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }} + - name: Credential check + if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) }} + run: | + echo "CR_USER=${{ secrets.CR_USER }}" >> $GITHUB_ENV + echo "CR_PAT=${{ secrets.CR_PAT }}" >> $GITHUB_ENV + echo "DOCKERUSER=${{ secrets.DOCKERUSER }}" >> $GITHUB_ENV + echo "DOCKERPASS=${{ secrets.DOCKERPASS }}" >> $GITHUB_ENV + if [[ "${{ secrets.CR_USER }}" == "" && "${{ secrets.CR_PAT }}" == "" && "${{ secrets.DOCKERUSER }}" == "" && "${{ secrets.DOCKERPASS }}" == "" ]]; then + echo "::error::Push credential secrets missing." + echo "::error::You must set either CR_USER & CR_PAT or DOCKERUSER & DOCKERPASS as secrets in your repo settings." + echo "::error::See https://github.com/linuxserver/docker-mods/blob/master/README.md for more information/instructions." + exit 1 + fi + - name: Login to GitHub Container Registry + if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.CR_USER && env.CR_PAT }} + run: | + echo "${{ secrets.CR_PAT }}" | docker login ghcr.io -u ${{ secrets.CR_USER }} --password-stdin + - name: Push tags to GitHub Container Registry + if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.CR_USER && env.CR_PAT }} + run: | + docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }} + docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME} + - name: Login to DockerHub + if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.DOCKERUSER && env.DOCKERPASS }} + run: | + echo ${{ secrets.DOCKERPASS }} | docker login -u ${{ secrets.DOCKERUSER }} --password-stdin + - name: Push tags to DockerHub + if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.DOCKERUSER && env.DOCKERPASS }} + run: | + docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }} + docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME} From 1d2ccde83814e2e6b626f371d8e578c52e1e0cdf Mon Sep 17 00:00:00 2001 From: hctancredi Date: Sat, 26 Dec 2020 15:06:28 -0300 Subject: [PATCH 20/51] Update .travis.yml --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3f63b64af..d45e8d5a1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,8 +5,8 @@ on: [push, pull_request, workflow_dispatch] env: ENDPOINT: "hctancredi/docker-mods" #don't modify - BASEIMAGE: "lazylibrarian" #replace - MODNAME: "lazylibrarian" #replace + BASEIMAGE: "nzbget" #replace + MODNAME: "essentials" #replace jobs: build: From 661ef034cafca8dd8b1fec34f1a803d962b848aa Mon Sep 17 00:00:00 2001 From: hctancredi Date: Sat, 26 Dec 2020 15:15:23 -0300 Subject: [PATCH 21/51] Update .travis.yml --- .travis.yml | 71 ++++++++++++++--------------------------------------- 1 file changed, 19 insertions(+), 52 deletions(-) diff --git a/.travis.yml b/.travis.yml index d45e8d5a1..bd3d8b625 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,57 +1,24 @@ - -name: Build Image +sudo: true -on: [push, pull_request, workflow_dispatch] +language: bash + +services: + - docker env: - ENDPOINT: "hctancredi/docker-mods" #don't modify - BASEIMAGE: "nzbget" #replace - MODNAME: "essentials" #replace + global: + - DOCKERHUB="hctancredi/docker-mods" jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2.3.3 - - - name: Build image - run: | - docker build --no-cache -t ${{ github.sha }} . - - name: Tag image - if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) }} - run: | - docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME} - docker tag ${{ github.sha }} ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }} - docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME} - docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }} - - name: Credential check - if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) }} - run: | - echo "CR_USER=${{ secrets.CR_USER }}" >> $GITHUB_ENV - echo "CR_PAT=${{ secrets.CR_PAT }}" >> $GITHUB_ENV - echo "DOCKERUSER=${{ secrets.DOCKERUSER }}" >> $GITHUB_ENV - echo "DOCKERPASS=${{ secrets.DOCKERPASS }}" >> $GITHUB_ENV - if [[ "${{ secrets.CR_USER }}" == "" && "${{ secrets.CR_PAT }}" == "" && "${{ secrets.DOCKERUSER }}" == "" && "${{ secrets.DOCKERPASS }}" == "" ]]; then - echo "::error::Push credential secrets missing." - echo "::error::You must set either CR_USER & CR_PAT or DOCKERUSER & DOCKERPASS as secrets in your repo settings." - echo "::error::See https://github.com/linuxserver/docker-mods/blob/master/README.md for more information/instructions." - exit 1 - fi - - name: Login to GitHub Container Registry - if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.CR_USER && env.CR_PAT }} - run: | - echo "${{ secrets.CR_PAT }}" | docker login ghcr.io -u ${{ secrets.CR_USER }} --password-stdin - - name: Push tags to GitHub Container Registry - if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.CR_USER && env.CR_PAT }} - run: | - docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }} - docker push ghcr.io/${ENDPOINT}:${BASEIMAGE}-${MODNAME} - - name: Login to DockerHub - if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.DOCKERUSER && env.DOCKERPASS }} - run: | - echo ${{ secrets.DOCKERPASS }} | docker login -u ${{ secrets.DOCKERUSER }} --password-stdin - - name: Push tags to DockerHub - if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) && env.DOCKERUSER && env.DOCKERPASS }} - run: | - docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME}-${{ github.sha }} - docker push ${ENDPOINT}:${BASEIMAGE}-${MODNAME} + include: + - stage: BuildImage + if: (NOT (type IN (pull_request))) + script: + # Build Dev image + - docker build --no-cache -t ${DOCKERHUB}:${TRAVIS_COMMIT} . + - docker tag ${DOCKERHUB}:${TRAVIS_COMMIT} ${DOCKERHUB}:nzbget + # Login to DockerHub + - echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin + # Push all of the tags + - docker push ${DOCKERHUB}:${TRAVIS_COMMIT} + - docker push ${DOCKERHUB}:nzbget From 1d7110804f643754e324d7721bfe33ba6883fdb4 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Sat, 26 Dec 2020 15:30:55 -0300 Subject: [PATCH 22/51] Update 98-essentials --- root/etc/cont-init.d/98-essentials | 1 - 1 file changed, 1 deletion(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index eb026e839..8ce6bcd3b 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -12,7 +12,6 @@ apk add --no-cache --virtual=build-dependencies \ wget \ autoconf \ automake \ - openmp \ git \ build-base update-ca-certificates From 5a72c830ff548b012ba8701354023d55e2754992 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Mon, 4 Jan 2021 19:10:00 -0300 Subject: [PATCH 23/51] Update 98-essentials --- root/etc/cont-init.d/98-essentials | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index 8ce6bcd3b..6729ebe95 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -4,7 +4,7 @@ PAR2_VERSION="0.8.1" PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v0.8.1/par2cmdline-$PAR2_VERSION.tar.gz" echo "NZBGet Essentials - Installation Started" apk --update upgrade -echo "Dependencies are being installed...." +echo "Dependencies are being installed..." apk add --no-cache --virtual=build-dependencies \ make \ g++ \ @@ -40,5 +40,5 @@ else make make install rm -rf /tmp/* + echo "NZBGet Essentials - Installation Ended" fi -echo "NZBGet Essentials - Installation Ended!" From 1791f1ca59c22601610521f0555e68282709baaa Mon Sep 17 00:00:00 2001 From: hctancredi Date: Wed, 19 May 2021 15:21:14 -0300 Subject: [PATCH 24/51] Update 98-essentials Added tar --- root/etc/cont-init.d/98-essentials | 1 + 1 file changed, 1 insertion(+) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index 6729ebe95..1cebea2cf 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -6,6 +6,7 @@ echo "NZBGet Essentials - Installation Started" apk --update upgrade echo "Dependencies are being installed..." apk add --no-cache --virtual=build-dependencies \ + tar \ make \ g++ \ ca-certificates \ From 06de4da8f02aae9c17d351f12ee3adcae50cf53d Mon Sep 17 00:00:00 2001 From: hctancredi Date: Wed, 7 Jul 2021 17:10:17 -0300 Subject: [PATCH 25/51] Update 98-essentials Enhancements --- root/etc/cont-init.d/98-essentials | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index 1cebea2cf..1d8c87ada 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -3,9 +3,12 @@ PAR2_VERSION="0.8.1" PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v0.8.1/par2cmdline-$PAR2_VERSION.tar.gz" echo "NZBGet Essentials - Installation Started" +echo http://dl-cdn.alpinelinux.org/alpine/edge/main > /etc/apk/repositories +echo http://dl-cdn.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositories apk --update upgrade -echo "Dependencies are being installed..." +echo "Phase 1 - Dependencies are being installed...." apk add --no-cache --virtual=build-dependencies \ + --repository http://dl-cdn.alpinelinux.org/alpine/edge/main \ tar \ make \ g++ \ @@ -13,19 +16,23 @@ apk add --no-cache --virtual=build-dependencies \ wget \ autoconf \ automake \ + openmp \ git \ build-base update-ca-certificates -apk --update upgrade -echo "Binaries are being installed..." +echo "Phase 1 - DONE" +echo " " +echo "Phase 2 - Binaries are being installed..." apk add --no-cache \ - --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + --repository http://dl-cdn.alpinelinux.org/alpine/edge/main \ ffmpeg \ openssl \ p7zip \ unzip \ unrar \ python2 +echo "Phase 2 - DONE" +echo " " if [ -f /usr/local/bin/par2 ]; then echo "`par2 -V` is already installed" echo "NZBGet Essentials - Installation Ended" @@ -41,5 +48,5 @@ else make make install rm -rf /tmp/* - echo "NZBGet Essentials - Installation Ended" fi +echo "NZBGet Essentials - Installation Ended" From 3240d53890abc8bc69b94e1fce8a07befdff3eb7 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Wed, 7 Jul 2021 17:21:21 -0300 Subject: [PATCH 26/51] Update 98-essentials --- root/etc/cont-init.d/98-essentials | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index 1d8c87ada..0b31a887c 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -8,7 +8,7 @@ echo http://dl-cdn.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositori apk --update upgrade echo "Phase 1 - Dependencies are being installed...." apk add --no-cache --virtual=build-dependencies \ - --repository http://dl-cdn.alpinelinux.org/alpine/edge/main \ + --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \ tar \ make \ g++ \ @@ -24,7 +24,7 @@ echo "Phase 1 - DONE" echo " " echo "Phase 2 - Binaries are being installed..." apk add --no-cache \ - --repository http://dl-cdn.alpinelinux.org/alpine/edge/main \ + --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \ ffmpeg \ openssl \ p7zip \ From 95aa9aaff72c90b38947597e083877f1d8f9cab6 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Wed, 7 Jul 2021 17:29:54 -0300 Subject: [PATCH 27/51] Update 98-essentials --- root/etc/cont-init.d/98-essentials | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index 0b31a887c..f74ad5ff1 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -3,8 +3,7 @@ PAR2_VERSION="0.8.1" PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v0.8.1/par2cmdline-$PAR2_VERSION.tar.gz" echo "NZBGet Essentials - Installation Started" -echo http://dl-cdn.alpinelinux.org/alpine/edge/main > /etc/apk/repositories -echo http://dl-cdn.alpinelinux.org/alpine/edge/community/ >> /etc/apk/repositories +echo http://dl-cdn.alpinelinux.org/alpine/edge/testing > /etc/apk/repositories apk --update upgrade echo "Phase 1 - Dependencies are being installed...." apk add --no-cache --virtual=build-dependencies \ From cd86547bf3444eba9ab3b9ac3b16e369e438a92c Mon Sep 17 00:00:00 2001 From: hctancredi Date: Thu, 8 Jul 2021 09:32:05 -0300 Subject: [PATCH 28/51] Update 98-essentials more fixes --- root/etc/cont-init.d/98-essentials | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index f74ad5ff1..043835f41 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -1,9 +1,8 @@ #!/usr/bin/with-contenv bash PAR2_VERSION="0.8.1" -PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v0.8.1/par2cmdline-$PAR2_VERSION.tar.gz" +PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v$PAR2_VERSION/par2cmdline-$PAR2_VERSION.tar.gz" echo "NZBGet Essentials - Installation Started" -echo http://dl-cdn.alpinelinux.org/alpine/edge/testing > /etc/apk/repositories apk --update upgrade echo "Phase 1 - Dependencies are being installed...." apk add --no-cache --virtual=build-dependencies \ @@ -31,7 +30,6 @@ apk add --no-cache \ unrar \ python2 echo "Phase 2 - DONE" -echo " " if [ -f /usr/local/bin/par2 ]; then echo "`par2 -V` is already installed" echo "NZBGet Essentials - Installation Ended" @@ -48,4 +46,5 @@ else make install rm -rf /tmp/* fi +echo " " echo "NZBGet Essentials - Installation Ended" From 68e23dac063aee5c29a2e8bf21598c68d7e0ea52 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Thu, 8 Jul 2021 15:05:48 -0300 Subject: [PATCH 29/51] Update 98-essentials fixes and enhancements --- root/etc/cont-init.d/98-essentials | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index 043835f41..e8c6172d7 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -41,8 +41,8 @@ else aclocal automake --add-missing autoconf - ./configure - make + ./configure -q + make -s make install rm -rf /tmp/* fi From 6f3ecc87260a6787b88445fe5dd5f4555f6eb5d2 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Wed, 14 Dec 2022 15:44:44 -0300 Subject: [PATCH 30/51] Update 98-essentials rolling back to https://dl-cdn.alpinelinux.org/alpine/v3.12/main/ repo --- root/etc/cont-init.d/98-essentials | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index e8c6172d7..7554dd89f 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -6,7 +6,7 @@ echo "NZBGet Essentials - Installation Started" apk --update upgrade echo "Phase 1 - Dependencies are being installed...." apk add --no-cache --virtual=build-dependencies \ - --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + --repository https://dl-cdn.alpinelinux.org/alpine/v3.12/main \ tar \ make \ g++ \ @@ -22,7 +22,7 @@ echo "Phase 1 - DONE" echo " " echo "Phase 2 - Binaries are being installed..." apk add --no-cache \ - --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing \ + --repository https://dl-cdn.alpinelinux.org/alpine/v3.12/main \ ffmpeg \ openssl \ p7zip \ From 318d209c92c88d3653182173f2ad49fc03519c4d Mon Sep 17 00:00:00 2001 From: hctancredi Date: Wed, 14 Dec 2022 15:49:29 -0300 Subject: [PATCH 31/51] Update 98-essentials --- root/etc/cont-init.d/98-essentials | 2 ++ 1 file changed, 2 insertions(+) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index 7554dd89f..ae762ac42 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -3,6 +3,8 @@ PAR2_VERSION="0.8.1" PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v$PAR2_VERSION/par2cmdline-$PAR2_VERSION.tar.gz" echo "NZBGet Essentials - Installation Started" +http://dl-cdn.alpinelinux.org/alpine/v3.12/main +http://dl-cdn.alpinelinux.org/alpine/v3.12/community apk --update upgrade echo "Phase 1 - Dependencies are being installed...." apk add --no-cache --virtual=build-dependencies \ From 6eda07e0dca7fd012ae1bca75c03666745fb6296 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Wed, 14 Dec 2022 15:52:27 -0300 Subject: [PATCH 32/51] Update 98-essentials --- root/etc/cont-init.d/98-essentials | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index ae762ac42..4c06a72ca 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -2,9 +2,9 @@ PAR2_VERSION="0.8.1" PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v$PAR2_VERSION/par2cmdline-$PAR2_VERSION.tar.gz" -echo "NZBGet Essentials - Installation Started" -http://dl-cdn.alpinelinux.org/alpine/v3.12/main -http://dl-cdn.alpinelinux.org/alpine/v3.12/community +echo "NZBGet Essentials FIXED - Installation Started" +echo http://dl-cdn.alpinelinux.org/alpine/v3.12/main > /etc/apk/repositories +echo http://dl-cdn.alpinelinux.org/alpine/v3.12/community >> /etc/apk/repositories apk --update upgrade echo "Phase 1 - Dependencies are being installed...." apk add --no-cache --virtual=build-dependencies \ From 2d0dac328ace288dc0f275978491d40b127f95a4 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Thu, 22 Dec 2022 15:00:19 -0300 Subject: [PATCH 33/51] Update 98-essentials --- root/etc/cont-init.d/98-essentials | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index 4c06a72ca..c784a0897 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -5,10 +5,9 @@ PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v$PAR2_VERSI echo "NZBGet Essentials FIXED - Installation Started" echo http://dl-cdn.alpinelinux.org/alpine/v3.12/main > /etc/apk/repositories echo http://dl-cdn.alpinelinux.org/alpine/v3.12/community >> /etc/apk/repositories -apk --update upgrade +apk --update echo "Phase 1 - Dependencies are being installed...." -apk add --no-cache --virtual=build-dependencies \ - --repository https://dl-cdn.alpinelinux.org/alpine/v3.12/main \ +apk add --no-cache \ tar \ make \ g++ \ @@ -16,7 +15,6 @@ apk add --no-cache --virtual=build-dependencies \ wget \ autoconf \ automake \ - openmp \ git \ build-base update-ca-certificates @@ -24,13 +22,11 @@ echo "Phase 1 - DONE" echo " " echo "Phase 2 - Binaries are being installed..." apk add --no-cache \ - --repository https://dl-cdn.alpinelinux.org/alpine/v3.12/main \ ffmpeg \ openssl \ p7zip \ unzip \ - unrar \ - python2 + unrar echo "Phase 2 - DONE" if [ -f /usr/local/bin/par2 ]; then echo "`par2 -V` is already installed" From b3885bdd525425734960dda9f6d468d45013efda Mon Sep 17 00:00:00 2001 From: hctancredi Date: Thu, 22 Dec 2022 15:08:58 -0300 Subject: [PATCH 34/51] Update 98-essentials --- root/etc/cont-init.d/98-essentials | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index c784a0897..2afd223a9 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -3,9 +3,7 @@ PAR2_VERSION="0.8.1" PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v$PAR2_VERSION/par2cmdline-$PAR2_VERSION.tar.gz" echo "NZBGet Essentials FIXED - Installation Started" -echo http://dl-cdn.alpinelinux.org/alpine/v3.12/main > /etc/apk/repositories -echo http://dl-cdn.alpinelinux.org/alpine/v3.12/community >> /etc/apk/repositories -apk --update +apk --update upgrade echo "Phase 1 - Dependencies are being installed...." apk add --no-cache \ tar \ From 44acf335331c2c340a0036aa13d081c771a4a9db Mon Sep 17 00:00:00 2001 From: hctancredi Date: Thu, 22 Dec 2022 15:12:21 -0300 Subject: [PATCH 35/51] Update 98-essentials --- root/etc/cont-init.d/98-essentials | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index 2afd223a9..7149aac0e 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -2,6 +2,10 @@ PAR2_VERSION="0.8.1" PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v$PAR2_VERSION/par2cmdline-$PAR2_VERSION.tar.gz" +echo "UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE" +echo "UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE" +echo "UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE" +echo "UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE" echo "NZBGet Essentials FIXED - Installation Started" apk --update upgrade echo "Phase 1 - Dependencies are being installed...." From 1899b17ce4a88e2fb1f44d851abd3ae34f6a5d07 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Thu, 22 Dec 2022 15:24:53 -0300 Subject: [PATCH 36/51] Update 98-essentials --- root/etc/cont-init.d/98-essentials | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index 7149aac0e..fd71bd6a7 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -2,10 +2,6 @@ PAR2_VERSION="0.8.1" PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v$PAR2_VERSION/par2cmdline-$PAR2_VERSION.tar.gz" -echo "UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE" -echo "UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE" -echo "UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE" -echo "UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE" echo "NZBGet Essentials FIXED - Installation Started" apk --update upgrade echo "Phase 1 - Dependencies are being installed...." @@ -24,11 +20,13 @@ echo "Phase 1 - DONE" echo " " echo "Phase 2 - Binaries are being installed..." apk add --no-cache \ - ffmpeg \ openssl \ p7zip \ - unzip \ - unrar + unzip +apk add --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/v3.12/main/ \ + unrar \ + python2 \ + ffmpeg echo "Phase 2 - DONE" if [ -f /usr/local/bin/par2 ]; then echo "`par2 -V` is already installed" From bbe7a1c1c27da48daf70a0a83844c4db0bac2559 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Thu, 22 Dec 2022 15:28:17 -0300 Subject: [PATCH 37/51] Update 98-essentials fixes --- root/etc/cont-init.d/98-essentials | 1 + 1 file changed, 1 insertion(+) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index fd71bd6a7..6c78981e3 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -2,6 +2,7 @@ PAR2_VERSION="0.8.1" PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v$PAR2_VERSION/par2cmdline-$PAR2_VERSION.tar.gz" +echo "UPDATED 12/22/22" echo "NZBGet Essentials FIXED - Installation Started" apk --update upgrade echo "Phase 1 - Dependencies are being installed...." From 2af6f087b0acdc3b779c7d2624c4cbef53806344 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 12:18:11 -0300 Subject: [PATCH 38/51] Update 98-essentials PAR2 version updated Migrated to python3 --- root/etc/cont-init.d/98-essentials | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/root/etc/cont-init.d/98-essentials b/root/etc/cont-init.d/98-essentials index 6c78981e3..5465f28a7 100644 --- a/root/etc/cont-init.d/98-essentials +++ b/root/etc/cont-init.d/98-essentials @@ -1,8 +1,8 @@ #!/usr/bin/with-contenv bash -PAR2_VERSION="0.8.1" +PAR2_VERSION="1.0.0" PAR2_URL="https://github.com/Parchive/par2cmdline/releases/download/v$PAR2_VERSION/par2cmdline-$PAR2_VERSION.tar.gz" -echo "UPDATED 12/22/22" +echo "UPDATED 8/12/25" echo "NZBGet Essentials FIXED - Installation Started" apk --update upgrade echo "Phase 1 - Dependencies are being installed...." @@ -26,7 +26,7 @@ apk add --no-cache \ unzip apk add --no-cache --repository https://dl-cdn.alpinelinux.org/alpine/v3.12/main/ \ unrar \ - python2 \ + python3 \ ffmpeg echo "Phase 2 - DONE" if [ -f /usr/local/bin/par2 ]; then From e5c8688b4a9ee42286406f61be4dbf03cb7bc163 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 12:19:28 -0300 Subject: [PATCH 39/51] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f896ca2de..3f922bd0b 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ openssl p7zip unzip unrar -python2 +python3 par2 In NZBGet docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:nzbget-essentials` From 7514d1ab9b9a57336a8665ab3774804f2622856b Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 12:42:13 -0300 Subject: [PATCH 40/51] Add files via upload --- github/workflows/BuildImage.yml | 2120 +++++++++++++++++++++++++++++++ 1 file changed, 2120 insertions(+) create mode 100644 github/workflows/BuildImage.yml diff --git a/github/workflows/BuildImage.yml b/github/workflows/BuildImage.yml new file mode 100644 index 000000000..06c194727 --- /dev/null +++ b/github/workflows/BuildImage.yml @@ -0,0 +1,2120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + docker-mods/.github/workflows/BuildImage.yml at master · hctancredi/docker-mods + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ Skip to content + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + + + + +
+ + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + +
+ Open in github.dev + Open in a new github.dev tab + Open in codespace + + + + + + + + + + + + + + + + + + +

Files

Latest commit

 

History

History
62 lines (52 loc) · 2.46 KB

BuildImage.yml

File metadata and controls

62 lines (52 loc) · 2.46 KB
+
+ + + + +
+ +
+ +
+
+ +
+ +
+

Footer

+ + + + +
+
+ + + + + © 2025 GitHub, Inc. + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + +
+
+
+ + + From d466be3085e13556cde4a8ef90db0fc53e76ed20 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 12:49:29 -0300 Subject: [PATCH 41/51] Rename BuildImage.yml to BuildImage.yml --- {github => .github}/workflows/BuildImage.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {github => .github}/workflows/BuildImage.yml (100%) diff --git a/github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml similarity index 100% rename from github/workflows/BuildImage.yml rename to .github/workflows/BuildImage.yml From 5540c2d2f13fe90f369ba2b5c3d35bcaf9c76055 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 12:52:45 -0300 Subject: [PATCH 42/51] Update BuildImage.yml --- .github/workflows/BuildImage.yml | 2182 +----------------------------- 1 file changed, 62 insertions(+), 2120 deletions(-) diff --git a/.github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml index 06c194727..a9d35ea73 100644 --- a/.github/workflows/BuildImage.yml +++ b/.github/workflows/BuildImage.yml @@ -1,2120 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - docker-mods/.github/workflows/BuildImage.yml at master · hctancredi/docker-mods - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- Skip to content - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - -
- -
- - - - - - - - -
- - - - - -
- - - - - - - - - - - -
-
-
- - - - - - - - - - - - - - - -
- Open in github.dev - Open in a new github.dev tab - Open in codespace - - - - - - - - - - - - - - - - - - -

Files

Latest commit

 

History

History
62 lines (52 loc) · 2.46 KB

BuildImage.yml

File metadata and controls

62 lines (52 loc) · 2.46 KB
-
- - - - -
- -
- -
-
- -
- -
-

Footer

- - - - -
-
- - - - - © 2025 GitHub, Inc. - -
- - -
-
- - - - - - - - - - - - - - - - - - - - -
-
-
- - - +name: Build Image + +on: [push, pull_request, workflow_dispatch] + +env: + ENDPOINT: "linuxserver/mods" #don't modify + BASEIMAGE: "nzbget" #replace + MODNAME: "essentials" #replace + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2.3.3 + + - name: Build image + run: | + docker build --no-cache -t ${{ github.sha }} . + + - name: Tag image + if: ${{ github.ref == env.BRANCH }} + run: | + docker tag ${{ github.sha }} ${ENDPOINT}: + docker tag ${{ github.sha }} ${ENDPOINT}:${{ github.sha }} + docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}: + docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${{ github.sha }} + + - name: Credential check + if: ${{ github.ref == env.BRANCH }} + run: | + echo "CR_USER=${{ secrets.CR_USER }}" >> $GITHUB_ENV + echo "CR_PAT=${{ secrets.CR_PAT }}" >> $GITHUB_ENV + echo "DOCKERUSER=${{ secrets.DOCKERUSER }}" >> $GITHUB_ENV + echo "DOCKERPASS=${{ secrets.DOCKERPASS }}" >> $GITHUB_ENV + if [[ "${{ secrets.CR_USER }}" == "" && "${{ secrets.CR_PAT }}" == "" && "${{ secrets.DOCKERUSER }}" == "" && "${{ secrets.DOCKERPASS }}" == "" ]]; then + echo "::error::Push credential secrets missing." + echo "::error::You must set either CR_USER & CR_PAT or DOCKERUSER & DOCKERPASS as secrets in your repo settings." + echo "::error::See https://github.com/linuxserver/docker-mods/blob/master/README.md for more information/instructions." + exit 1 + fi + + - name: Login to GitHub Container Registry + if: ${{ github.ref == env.BRANCH && env.CR_USER && env.CR_PAT }} + run: | + echo "${{ secrets.CR_PAT }}" | docker login ghcr.io -u ${{ secrets.CR_USER }} --password-stdin + + - name: Push tags to GitHub Container Registry + if: ${{ github.ref == env.BRANCH && env.CR_USER && env.CR_PAT }} + run: | + docker push ghcr.io/${ENDPOINT}:${{ github.sha }} + docker push ghcr.io/${ENDPOINT}: + + - name: Login to DockerHub + if: ${{ github.ref == env.BRANCH && env.DOCKERUSER && env.DOCKERPASS }} + run: | + echo ${{ secrets.DOCKERPASS }} | docker login -u ${{ secrets.DOCKERUSER }} --password-stdin + + - name: Push tags to DockerHub + if: ${{ github.ref == env.BRANCH && env.DOCKERUSER && env.DOCKERPASS }} + run: | + docker push ${ENDPOINT}:${{ github.sha }} + docker push ${ENDPOINT}: From 162ffff760c795b75a9db9dd93e5a7a5dec94fe8 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 19:15:15 -0300 Subject: [PATCH 43/51] Add files via upload --- .github/workflows/BuildImage.yml | 102 ++++++++++---------- .github/workflows/call_issue_pr_tracker.yml | 16 +++ .github/workflows/permissions.yml | 10 ++ 3 files changed, 78 insertions(+), 50 deletions(-) create mode 100644 .github/workflows/call_issue_pr_tracker.yml create mode 100644 .github/workflows/permissions.yml diff --git a/.github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml index a9d35ea73..4715e563b 100644 --- a/.github/workflows/BuildImage.yml +++ b/.github/workflows/BuildImage.yml @@ -1,62 +1,64 @@ name: Build Image -on: [push, pull_request, workflow_dispatch] +on: + push: + pull_request_target: + workflow_dispatch: + inputs: + mod_version: + type: string + required: false env: + GITHUB_REPO: "linuxserver/docker-mods" #don't modify ENDPOINT: "linuxserver/mods" #don't modify - BASEIMAGE: "nzbget" #replace - MODNAME: "essentials" #replace + BASEIMAGE: "replace_baseimage" #replace + MODNAME: "replace_modname" #replace + MOD_VERSION: ${{ inputs.mod_version }} #don't modify + MULTI_ARCH: "true" #set to false if not needed jobs: - build: + set-vars: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2.3.3 - - - name: Build image - run: | - docker build --no-cache -t ${{ github.sha }} . - - - name: Tag image - if: ${{ github.ref == env.BRANCH }} + - name: Set Vars + id: outputs run: | - docker tag ${{ github.sha }} ${ENDPOINT}: - docker tag ${{ github.sha }} ${ENDPOINT}:${{ github.sha }} - docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}: - docker tag ${{ github.sha }} ghcr.io/${ENDPOINT}:${{ github.sha }} - - - name: Credential check - if: ${{ github.ref == env.BRANCH }} - run: | - echo "CR_USER=${{ secrets.CR_USER }}" >> $GITHUB_ENV - echo "CR_PAT=${{ secrets.CR_PAT }}" >> $GITHUB_ENV - echo "DOCKERUSER=${{ secrets.DOCKERUSER }}" >> $GITHUB_ENV - echo "DOCKERPASS=${{ secrets.DOCKERPASS }}" >> $GITHUB_ENV - if [[ "${{ secrets.CR_USER }}" == "" && "${{ secrets.CR_PAT }}" == "" && "${{ secrets.DOCKERUSER }}" == "" && "${{ secrets.DOCKERPASS }}" == "" ]]; then - echo "::error::Push credential secrets missing." - echo "::error::You must set either CR_USER & CR_PAT or DOCKERUSER & DOCKERPASS as secrets in your repo settings." - echo "::error::See https://github.com/linuxserver/docker-mods/blob/master/README.md for more information/instructions." - exit 1 + echo "GITHUB_REPO=${{ env.GITHUB_REPO }}" >> $GITHUB_OUTPUT + echo "ENDPOINT=${{ env.ENDPOINT }}" >> $GITHUB_OUTPUT + echo "BASEIMAGE=${{ env.BASEIMAGE }}" >> $GITHUB_OUTPUT + echo "MODNAME=${{ env.MODNAME }}" >> $GITHUB_OUTPUT + echo "MULTI_ARCH=${{ env.MULTI_ARCH }}" >> $GITHUB_OUTPUT + if [[ -z "${{ env.MOD_VERSION }}" ]]; then + # **** If the mod needs to be versioned, set the versioning logic below. Otherwise leave as is. **** + MOD_VERSION="" + else + MOD_VERSION=${{ env.MOD_VERSION }} + echo "MOD_VERSION_OVERRIDE=true" >> $GITHUB_OUTPUT fi + echo "MOD_VERSION=${MOD_VERSION}" >> $GITHUB_OUTPUT + outputs: + GITHUB_REPO: ${{ steps.outputs.outputs.GITHUB_REPO }} + ENDPOINT: ${{ steps.outputs.outputs.ENDPOINT }} + BASEIMAGE: ${{ steps.outputs.outputs.BASEIMAGE }} + MODNAME: ${{ steps.outputs.outputs.MODNAME }} + MULTI_ARCH: ${{ steps.outputs.outputs.MULTI_ARCH }} + MOD_VERSION: ${{ steps.outputs.outputs.MOD_VERSION }} + MOD_VERSION_OVERRIDE: ${{ steps.outputs.outputs.MOD_VERSION_OVERRIDE }} - - name: Login to GitHub Container Registry - if: ${{ github.ref == env.BRANCH && env.CR_USER && env.CR_PAT }} - run: | - echo "${{ secrets.CR_PAT }}" | docker login ghcr.io -u ${{ secrets.CR_USER }} --password-stdin - - - name: Push tags to GitHub Container Registry - if: ${{ github.ref == env.BRANCH && env.CR_USER && env.CR_PAT }} - run: | - docker push ghcr.io/${ENDPOINT}:${{ github.sha }} - docker push ghcr.io/${ENDPOINT}: - - - name: Login to DockerHub - if: ${{ github.ref == env.BRANCH && env.DOCKERUSER && env.DOCKERPASS }} - run: | - echo ${{ secrets.DOCKERPASS }} | docker login -u ${{ secrets.DOCKERUSER }} --password-stdin - - - name: Push tags to DockerHub - if: ${{ github.ref == env.BRANCH && env.DOCKERUSER && env.DOCKERPASS }} - run: | - docker push ${ENDPOINT}:${{ github.sha }} - docker push ${ENDPOINT}: + build: + uses: linuxserver/github-workflows/.github/workflows/docker-mod-builder.yml@v1 + needs: set-vars + secrets: + CR_USER: ${{ secrets.CR_USER }} + CR_PAT: ${{ secrets.CR_PAT }} + DOCKERUSER: ${{ secrets.DOCKERUSER }} + DOCKERPASS: ${{ secrets.DOCKERPASS }} + with: + GITHUB_REPO: ${{ needs.set-vars.outputs.GITHUB_REPO }} + ENDPOINT: ${{ needs.set-vars.outputs.ENDPOINT }} + BASEIMAGE: ${{ needs.set-vars.outputs.BASEIMAGE }} + MODNAME: ${{ needs.set-vars.outputs.MODNAME }} + MULTI_ARCH: ${{ needs.set-vars.outputs.MULTI_ARCH }} + MOD_VERSION: ${{ needs.set-vars.outputs.MOD_VERSION }} + MOD_VERSION_OVERRIDE: ${{ needs.set-vars.outputs.MOD_VERSION_OVERRIDE }} diff --git a/.github/workflows/call_issue_pr_tracker.yml b/.github/workflows/call_issue_pr_tracker.yml new file mode 100644 index 000000000..2c3078434 --- /dev/null +++ b/.github/workflows/call_issue_pr_tracker.yml @@ -0,0 +1,16 @@ +name: Issue & PR Tracker + +on: + issues: + types: [opened,reopened,labeled,unlabeled,closed] + pull_request_target: + types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed] + pull_request_review: + types: [submitted,edited,dismissed] + +jobs: + manage-project: + permissions: + issues: write + uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1 + secrets: inherit diff --git a/.github/workflows/permissions.yml b/.github/workflows/permissions.yml new file mode 100644 index 000000000..1447bc55a --- /dev/null +++ b/.github/workflows/permissions.yml @@ -0,0 +1,10 @@ +name: Permission check +on: + pull_request_target: + paths: + - '**/run' + - '**/finish' + - '**/check' +jobs: + permission_check: + uses: linuxserver/github-workflows/.github/workflows/init-svc-executable-permissions.yml@v1 From 4b362236fca4f741733a42288e23f9cbaf6ffb66 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 19:15:59 -0300 Subject: [PATCH 44/51] Update BuildImage.yml --- .github/workflows/BuildImage.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml index 4715e563b..d2c41bca9 100644 --- a/.github/workflows/BuildImage.yml +++ b/.github/workflows/BuildImage.yml @@ -12,8 +12,8 @@ on: env: GITHUB_REPO: "linuxserver/docker-mods" #don't modify ENDPOINT: "linuxserver/mods" #don't modify - BASEIMAGE: "replace_baseimage" #replace - MODNAME: "replace_modname" #replace + BASEIMAGE: "nzbget" #replace + MODNAME: "essentials" #replace MOD_VERSION: ${{ inputs.mod_version }} #don't modify MULTI_ARCH: "true" #set to false if not needed From 9ee6edf2957ed641587eec59dba3b1576573004c Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 19:19:16 -0300 Subject: [PATCH 45/51] Update .travis.yml --- .travis.yml | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/.travis.yml b/.travis.yml index bd3d8b625..8b1378917 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,24 +1 @@ -sudo: true -language: bash - -services: - - docker - -env: - global: - - DOCKERHUB="hctancredi/docker-mods" - -jobs: - include: - - stage: BuildImage - if: (NOT (type IN (pull_request))) - script: - # Build Dev image - - docker build --no-cache -t ${DOCKERHUB}:${TRAVIS_COMMIT} . - - docker tag ${DOCKERHUB}:${TRAVIS_COMMIT} ${DOCKERHUB}:nzbget - # Login to DockerHub - - echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin - # Push all of the tags - - docker push ${DOCKERHUB}:${TRAVIS_COMMIT} - - docker push ${DOCKERHUB}:nzbget From e79d924ddc6c2437f3951294770364202dc84bfb Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 19:19:32 -0300 Subject: [PATCH 46/51] Rename .travis.yml to exclude.txt --- .travis.yml => exclude.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .travis.yml => exclude.txt (100%) diff --git a/.travis.yml b/exclude.txt similarity index 100% rename from .travis.yml rename to exclude.txt From 4f5795d9d419e04a47e6d8d76e16ac84e3def8cd Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 19:29:28 -0300 Subject: [PATCH 47/51] Update BuildImage.yml --- .github/workflows/BuildImage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml index d2c41bca9..5708e5612 100644 --- a/.github/workflows/BuildImage.yml +++ b/.github/workflows/BuildImage.yml @@ -15,7 +15,7 @@ env: BASEIMAGE: "nzbget" #replace MODNAME: "essentials" #replace MOD_VERSION: ${{ inputs.mod_version }} #don't modify - MULTI_ARCH: "true" #set to false if not needed + MULTI_ARCH: "false" #set to false if not needed jobs: set-vars: From c1d6a7e341127f0bb1d0454b567af8aad1b5124c Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 19:34:04 -0300 Subject: [PATCH 48/51] Add files via upload --- Dockerfile.complex | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Dockerfile.complex diff --git a/Dockerfile.complex b/Dockerfile.complex new file mode 100644 index 000000000..3ed07b0dc --- /dev/null +++ b/Dockerfile.complex @@ -0,0 +1,33 @@ +# syntax=docker/dockerfile:1 + +## Buildstage ## +FROM ghcr.io/linuxserver/baseimage-alpine:3.20 AS buildstage + +RUN \ + echo "**** install packages ****" && \ + apk add --no-cache \ + curl && \ + echo "**** grab rclone ****" && \ + mkdir -p /root-layer && \ + if [ $(uname -m) = "x86_64" ]; then \ + echo "Downloading x86_64 tarball" && \ + curl -o \ + /root-layer/rclone.deb -L \ + "https://downloads.rclone.org/v1.47.0/rclone-v1.47.0-linux-amd64.deb"; \ + elif [ $(uname -m) = "aarch64" ]; then \ + echo "Downloading aarch64 tarball" && \ + curl -o \ + /root-layer/rclone.deb -L \ + "https://downloads.rclone.org/v1.47.0/rclone-v1.47.0-linux-arm64.deb"; \ + fi && \ + +# copy local files +COPY root/ /root-layer/ + +## Single layer deployed image ## +FROM scratch + +LABEL maintainer="username" + +# Add files from buildstage +COPY --from=buildstage /root-layer/ / From d15fd7039769f6e452d79099852b781d510a6ee4 Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 19:46:34 -0300 Subject: [PATCH 49/51] Update BuildImage.yml --- .github/workflows/BuildImage.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml index 5708e5612..22b36b155 100644 --- a/.github/workflows/BuildImage.yml +++ b/.github/workflows/BuildImage.yml @@ -10,8 +10,8 @@ on: required: false env: - GITHUB_REPO: "linuxserver/docker-mods" #don't modify - ENDPOINT: "linuxserver/mods" #don't modify + GITHUB_REPO: "hctancredi/docker-mods" #don't modify + ENDPOINT: "hctancredi/mods" #don't modify BASEIMAGE: "nzbget" #replace MODNAME: "essentials" #replace MOD_VERSION: ${{ inputs.mod_version }} #don't modify From 5081aa0c1e181456f3da97fe9fe07662a2935bbd Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 19:51:19 -0300 Subject: [PATCH 50/51] Update BuildImage.yml --- .github/workflows/BuildImage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml index 22b36b155..08badc7ca 100644 --- a/.github/workflows/BuildImage.yml +++ b/.github/workflows/BuildImage.yml @@ -47,7 +47,7 @@ jobs: MOD_VERSION_OVERRIDE: ${{ steps.outputs.outputs.MOD_VERSION_OVERRIDE }} build: - uses: linuxserver/github-workflows/.github/workflows/docker-mod-builder.yml@v1 + uses: hctancredi/github-workflows/.github/workflows/docker-mod-builder.yml@v1 needs: set-vars secrets: CR_USER: ${{ secrets.CR_USER }} From d6510a9c1beedd117c0e0f52954578dea0fb7a6d Mon Sep 17 00:00:00 2001 From: hctancredi Date: Tue, 12 Aug 2025 19:52:07 -0300 Subject: [PATCH 51/51] Update BuildImage.yml --- .github/workflows/BuildImage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml index 08badc7ca..908ba93fd 100644 --- a/.github/workflows/BuildImage.yml +++ b/.github/workflows/BuildImage.yml @@ -47,7 +47,7 @@ jobs: MOD_VERSION_OVERRIDE: ${{ steps.outputs.outputs.MOD_VERSION_OVERRIDE }} build: - uses: hctancredi/github-workflows/.github/workflows/docker-mod-builder.yml@v1 + uses: linuxservers/github-workflows/.github/workflows/docker-mod-builder.yml@v1 needs: set-vars secrets: CR_USER: ${{ secrets.CR_USER }}