diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index bdb0cabc87cf50106df6e15097dff816c8c3eb34..0000000000000000000000000000000000000000
--- a/.gitattributes
+++ /dev/null
@@ -1,17 +0,0 @@
-# Auto detect text files and perform LF normalization
-* text=auto
-
-# Custom for Visual Studio
-*.cs     diff=csharp
-
-# Standard to msysgit
-*.doc	 diff=astextplain
-*.DOC	 diff=astextplain
-*.docx diff=astextplain
-*.DOCX diff=astextplain
-*.dot  diff=astextplain
-*.DOT  diff=astextplain
-*.pdf  diff=astextplain
-*.PDF	 diff=astextplain
-*.rtf	 diff=astextplain
-*.RTF	 diff=astextplain
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
deleted file mode 100755
index 75fd3e3a4201e4f6ac2ecb26d3678b5f7a8601f2..0000000000000000000000000000000000000000
--- a/.github/CONTRIBUTING.md
+++ /dev/null
@@ -1,123 +0,0 @@
-# Contributing to baseimage-ubuntu
-
-## Gotchas
-
-* While contributing make sure to make all your changes before creating a Pull Request, as our pipeline builds each commit after the PR is open.
-* Read, and fill the Pull Request template
-  * If this is a fix for a typo in code or documentation in the README please file an issue
-  * If the PR is addressing an existing issue include, closes #\<issue number>, in the body of the PR commit message
-* If you want to discuss changes, you can also bring it up in [#dev-talk](https://discordapp.com/channels/354974912613449730/757585807061155840) in our [Discord server](https://discord.gg/YWrKVTn)
-
-## Common files
-
-| File | Use case |
-| :----: | --- |
-| `Dockerfile` | Dockerfile used to build amd64 images |
-| `Dockerfile.aarch64` | Dockerfile used to build 64bit ARM architectures |
-| `Dockerfile.armhf` | Dockerfile used to build 32bit ARM architectures |
-| `Jenkinsfile` | This file is a product of our builder and should not be edited directly. This is used to build the image |
-| `jenkins-vars.yml` | This file is used to generate the `Jenkinsfile` mentioned above, it only affects the build-process |
-| `package_versions.txt` | This file is generated as a part of the build-process and should not be edited directly. It lists all the installed packages and their versions |
-| `README.md` | This file is a product of our builder and should not be edited directly. This displays the readme for the repository and image registries |
-| `readme-vars.yml` | This file is used to generate the `README.md` |
-
-## Readme
-
-If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit.
-Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-baseimage-ubuntu/edit/focal/readme-vars.yml).
-
-These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
-Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io)
-
-### Fixing typos or clarify the text in the readme
-
-There are variables for multiple parts of the readme, the most common ones are:
-
-| Variable | Description |
-| :----: | --- |
-| `project_blurb` | This is the short excerpt shown above the project logo. |
-| `app_setup_block` | This is the text that shows up under "Application Setup" if enabled |
-
-### Parameters
-
-The compose and run examples are also generated from these variables.
-
-We have a [reference file](https://github.com/linuxserver/docker-jenkins-builder/blob/master/vars/_container-vars-blank) in our Jenkins Builder.
-
-These are prefixed with `param_` for required parameters, or `opt_param` for optional parameters, except for `cap_add`.
-Remember to enable param, if currently disabled. This differs between parameters, and can be seen in the reference file.
-
-Devices, environment variables, ports and volumes expects its variables in a certain way.
-
-### Devices
-
-```yml
-param_devices:
-  - { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "For hardware transcoding" }
-opt_param_devices:
-  - { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "For hardware transcoding" }
-```
-
-### Environment variables
-
-```yml
-param_env_vars:
-  - { env_var: "TZ", env_value: "Europe/London", desc: "Specify a timezone to use EG Europe/London." }
-opt_param_env_vars:
-  - { env_var: "VERSION", env_value: "latest", desc: "Supported values are LATEST, PLEXPASS or a specific version number." }
-```
-
-### Ports
-
-```yml
-param_ports:
-  - { external_port: "80", internal_port: "80", port_desc: "Application WebUI" }
-opt_param_ports:
-  - { external_port: "80", internal_port: "80", port_desc: "Application WebUI" }
-```
-
-### Volumes
-
-```yml
-param_volumes:
-  - { vol_path: "/config", vol_host_path: "</path/to/appdata/config>", desc: "Configuration files." }
-opt_param_volumes:
-  - { vol_path: "/config", vol_host_path: "</path/to/appdata/config>", desc: "Configuration files." }
-```
-
-### Testing template changes
-
-After you make any changes to the templates, you can use our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) to have the files updated from the modified templates. Please use the command found under `Running Locally` [on this page](https://github.com/linuxserver/docker-jenkins-builder/blob/master/README.md) to generate them prior to submitting a PR.
-
-## Dockerfiles
-
-We use multiple Dockerfiles in our repos, this is because sometimes some CPU architectures needs different packages to work.
-If you are proposing additional packages to be added, ensure that you added the packages to all the Dockerfiles in alphabetical order.
-
-### Testing your changes
-
-```bash
-git clone https://github.com/linuxserver/docker-baseimage-ubuntu.git
-cd docker-baseimage-ubuntu
-docker build \
-  --no-cache \
-  --pull \
-  -t linuxserver/baseimage-ubuntu:latest .
-```
-
-The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
-
-```bash
-docker run --rm --privileged multiarch/qemu-user-static:register --reset
-```
-
-Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
-
-## Update the changelog
-
-If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-baseimage-ubuntu/tree/focal/root), add an entry to the changelog
-
-```yml
-changelogs:
-  - { date: "DD.MM.YY:", desc: "Added some love to templates" }
-```
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
deleted file mode 100755
index 7eaac771728082d8ac8292c11e3a39e1712c69a9..0000000000000000000000000000000000000000
--- a/.github/FUNDING.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-github: linuxserver
-open_collective: linuxserver
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
deleted file mode 100755
index 5e4d0251e95d0d23a731c4cf5bab8e8dbc7ea846..0000000000000000000000000000000000000000
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-blank_issues_enabled: false
-contact_links:
-  - name: Discord chat support
-    url: https://discord.gg/YWrKVTn
-    about: Realtime support / chat with the community and the team.
-
-  - name: Discourse discussion forum
-    url: https://discourse.linuxserver.io
-    about: Post on our community forum.
-
-  - name: Documentation
-    url: https://docs.linuxserver.io
-    about: Documentation - information about all of our containers.
diff --git a/.github/ISSUE_TEMPLATE/issue.bug.md b/.github/ISSUE_TEMPLATE/issue.bug.md
deleted file mode 100755
index cb01b209bb8795c7f6b63768c3a35a698aa5c93d..0000000000000000000000000000000000000000
--- a/.github/ISSUE_TEMPLATE/issue.bug.md
+++ /dev/null
@@ -1,40 +0,0 @@
----
-name: Bug report
-about: Create a report to help us improve
-
----
-[linuxserverurl]: https://linuxserver.io
-[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
-
-<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
-
-<!--- Provide a general summary of the bug in the Title above -->
-
-------------------------------
-
-## Expected Behavior
-<!--- Tell us what should happen -->
-
-## Current Behavior
-<!--- Tell us what happens instead of the expected behavior -->
-
-## Steps to Reproduce
-<!--- Provide a link to a live example, or an unambiguous set of steps to -->
-<!--- reproduce this bug. Include code to reproduce, if relevant -->
-1.
-2.
-3.
-4.
-
-## Environment
-**OS:**
-**CPU architecture:** x86_64/arm32/arm64
-**How docker service was installed:**
-<!--- ie. from the official docker repo, from the distro repo, nas OS provided, etc. -->
-<!--- Providing context helps us come up with a solution that is most useful in the real world -->
-
-## Command used to create docker container (run/create/compose/screenshot)
-<!--- Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container -->
-
-## Docker logs
-<!--- Provide a full docker log, output of "docker logs baseimage-ubuntu" -->
diff --git a/.github/ISSUE_TEMPLATE/issue.feature.md b/.github/ISSUE_TEMPLATE/issue.feature.md
deleted file mode 100755
index 20a91fdb13374a21114054f6500762c3c426f3b6..0000000000000000000000000000000000000000
--- a/.github/ISSUE_TEMPLATE/issue.feature.md
+++ /dev/null
@@ -1,25 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for this project
-
----
-[linuxserverurl]: https://linuxserver.io
-[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
-
-<!--- If you are new to Docker or this application our issue tracker is **ONLY** used for reporting bugs or requesting features. Please use [our discord server](https://discord.gg/YWrKVTn) for general support. --->
-
-<!--- If this acts as a feature request please ask yourself if this modification is something the whole userbase will benefit from --->
-<!--- If this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script  https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
-
-<!--- Provide a general summary of the request in the Title above -->
-
-------------------------------
-
-## Desired Behavior
-<!--- Tell us what should happen -->
-
-## Current Behavior
-<!--- Tell us what happens instead of the expected behavior -->
-
-## Alternatives Considered
-<!--- Tell us what other options you have tried or considered -->
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index e23790c585f84427f2058a885d0eea26f7edb6da..0000000000000000000000000000000000000000
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--- Provide a general summary of your changes in the Title above -->
-
-[linuxserverurl]: https://linuxserver.io
-[![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png)][linuxserverurl]
-
-
-<!--- Before submitting a pull request please check the following -->
-
-<!---  If this is a fix for a typo in code or documentation in the README please file an issue and let us sort it out we do not need a PR  -->
-<!---  Ask yourself if this modification is something the whole userbase will benefit from, if this is a specific change for corner case functionality or plugins please look at making a Docker Mod or local script  https://blog.linuxserver.io/2019/09/14/customizing-our-containers/ -->
-<!---  That if the PR is addressing an existing issue include, closes #<issue number> , in the body of the PR commit message   -->
-<!---  You have included links to any files / patches etc your PR may be using in the body of the PR commit message -->
-<!--- We maintain a changelog of major revisions to the container at the end of readme-vars.yml in the root of this repository, please add your changes there if appropriate -->
-
-
-<!--- Coding guidelines: -->
-<!--- 1. Installed packages in the Dockerfiles should be in alphabetical order -->
-<!--- 2. Changes to Dockerfile should be replicated in Dockerfile.armhf and Dockerfile.aarch64 if applicable -->
-<!--- 3. Indentation style (tabs vs 4 spaces vs 1 space) should match the rest of the document -->
-<!--- 4. Readme is auto generated from readme-vars.yml, make your changes there -->
-
-------------------------------
-
- - [ ] I have read the [contributing](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/focal/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
-
-------------------------------
-
-<!--- We welcome all PR’s though this doesn’t guarantee it will be accepted. -->
-
-## Description:
-<!--- Describe your changes in detail -->
-
-## Benefits of this PR and context:
-<!--- Please explain why we should accept this PR. If this fixes an outstanding bug, please reference the issue # -->
-
-## How Has This Been Tested?
-<!--- Please describe in detail how you tested your changes. -->
-<!--- Include details of your testing environment, and the tests you ran to -->
-<!--- see how your change affects other areas of the code, etc. -->
-
-
-## Source / References:
-<!--- Please include any forum posts/github links relevant to the PR -->
diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml
deleted file mode 100644
index e61a432c806f9e3a91bbb25be4e6ce9c67b849d6..0000000000000000000000000000000000000000
--- a/.github/workflows/external_trigger.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-name: External Trigger Main
-
-on:
-  workflow_dispatch:
-
-jobs:
-  external-trigger-focal:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2.3.3
-
-      - name: External Trigger
-        if: github.ref == 'refs/heads/focal'
-        run: |
-          echo "**** No external release, exiting ****"
-          exit 0
diff --git a/.github/workflows/external_trigger_scheduler.yml b/.github/workflows/external_trigger_scheduler.yml
deleted file mode 100644
index 950e5b1883c92b7920cf6685b5ef7db3282e8187..0000000000000000000000000000000000000000
--- a/.github/workflows/external_trigger_scheduler.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-name: External Trigger Scheduler
-
-on:
-  schedule:
-    - cron:  '40 * * * *'
-  workflow_dispatch:
-
-jobs:
-  external-trigger-scheduler:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2.3.3
-        with:
-          fetch-depth: '0'
-
-      - name: External Trigger Scheduler
-        run: |
-          echo "**** Branches found: ****"
-          git for-each-ref --format='%(refname:short)' refs/remotes
-          echo "**** Pulling the yq docker image ****"
-          docker pull ghcr.io/linuxserver/yq
-          for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
-          do
-            br=$(echo "$br" | sed 's|origin/||g')
-            echo "**** Evaluating branch ${br} ****"
-            ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-ubuntu/${br}/jenkins-vars.yml \
-              | docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch)
-            if [ "$br" == "$ls_branch" ]; then
-              echo "**** Branch ${br} appears to be live; checking workflow. ****"
-              if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-ubuntu/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
-                echo "**** Workflow exists. Triggering external trigger workflow for branch ${br} ****."
-                curl -iX POST \
-                  -H "Authorization: token ${{ secrets.CR_PAT }}" \
-                  -H "Accept: application/vnd.github.v3+json" \
-                  -d "{\"ref\":\"refs/heads/${br}\"}" \
-                  https://api.github.com/repos/linuxserver/docker-baseimage-ubuntu/actions/workflows/external_trigger.yml/dispatches
-              else
-                echo "**** Workflow doesn't exist; skipping trigger. ****"
-              fi
-            else
-              echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
-            fi
-          done
diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml
deleted file mode 100755
index 29d5713fe294a8e4dae30cf81855f94f49bff00c..0000000000000000000000000000000000000000
--- a/.github/workflows/greetings.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-name: Greetings
-
-on: [pull_request_target, issues]
-
-jobs:
-  greeting:
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/first-interaction@v1
-      with:
-        issue-message: 'Thanks for opening your first issue here! Be sure to follow the [bug](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/focal/.github/ISSUE_TEMPLATE/issue.bug.md) or [feature](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/focal/.github/ISSUE_TEMPLATE/issue.feature.md) issue templates!'
-        pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/focal/.github/PULL_REQUEST_TEMPLATE.md)!'
-        repo-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/package_trigger.yml b/.github/workflows/package_trigger.yml
deleted file mode 100644
index bf4dfe865d4dc5defd63ab3674a0e8d24779dcfa..0000000000000000000000000000000000000000
--- a/.github/workflows/package_trigger.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-name: Package Trigger Main
-
-on:
-  workflow_dispatch:
-
-jobs:
-  package-trigger-focal:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2.3.3
-
-      - name: Package Trigger
-        if: github.ref == 'refs/heads/focal'
-        run: |
-          if [ -n "${{ secrets.PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_FOCAL }}" ]; then
-            echo "**** Github secret PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_FOCAL is set; skipping trigger. ****"
-            exit 0
-          fi
-          if [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-ubuntu/job/focal/lastBuild/api/json | jq -r '.building') == "true" ]; then
-            echo "**** There already seems to be an active build on Jenkins; skipping package trigger ****"
-            exit 0
-          fi
-          echo "**** Package trigger running off of focal branch. To disable, set a Github secret named \"PAUSE_PACKAGE_TRIGGER_BASEIMAGE_UBUNTU_FOCAL\". ****"
-          response=$(curl -iX POST \
-            https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-baseimage-ubuntu/job/focal/buildWithParameters?PACKAGE_CHECK=true \
-            --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
-          echo "**** Jenkins job queue url: ${response%$'\r'} ****"
-          echo "**** Sleeping 10 seconds until job starts ****"
-          sleep 10
-          buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
-          buildurl="${buildurl%$'\r'}"
-          echo "**** Jenkins job build url: ${buildurl} ****"
-          echo "**** Attempting to change the Jenkins job description ****"
-          curl -iX POST \
-            "${buildurl}submitDescription" \
-            --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
-            --data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
-            --data-urlencode "Submit=Submit"
diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml
deleted file mode 100644
index d421a31dc9fca4bcdf20d500a2e93b4e5450288d..0000000000000000000000000000000000000000
--- a/.github/workflows/package_trigger_scheduler.yml
+++ /dev/null
@@ -1,50 +0,0 @@
-name: Package Trigger Scheduler
-
-on:
-  schedule:
-    - cron:  '34 4 * * 2'
-  workflow_dispatch:
-
-jobs:
-  package-trigger-scheduler:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2.3.3
-        with:
-          fetch-depth: '0'
-
-      - name: Package Trigger Scheduler
-        run: |
-          echo "**** Branches found: ****"
-          git for-each-ref --format='%(refname:short)' refs/remotes
-          echo "**** Pulling the yq docker image ****"
-          docker pull ghcr.io/linuxserver/yq
-          for br in $(git for-each-ref --format='%(refname:short)' refs/remotes)
-          do
-            br=$(echo "$br" | sed 's|origin/||g')
-            echo "**** Evaluating branch ${br} ****"
-            ls_branch=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-ubuntu/${br}/jenkins-vars.yml \
-              | docker run --rm -i --entrypoint yq ghcr.io/linuxserver/yq -r .ls_branch)
-            if [ "${br}" == "${ls_branch}" ]; then
-              echo "**** Branch ${br} appears to be live; checking workflow. ****"
-              if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-baseimage-ubuntu/${br}/.github/workflows/package_trigger.yml > /dev/null 2>&1; then
-                echo "**** Workflow exists. Triggering package trigger workflow for branch ${br}. ****"
-                triggered_branches="${triggered_branches}${br} "
-                curl -iX POST \
-                  -H "Authorization: token ${{ secrets.CR_PAT }}" \
-                  -H "Accept: application/vnd.github.v3+json" \
-                  -d "{\"ref\":\"refs/heads/${br}\"}" \
-                  https://api.github.com/repos/linuxserver/docker-baseimage-ubuntu/actions/workflows/package_trigger.yml/dispatches
-                sleep 30
-              else
-                echo "**** Workflow doesn't exist; skipping trigger. ****"
-              fi
-            else
-              echo "**** ${br} appears to be a dev branch; skipping trigger. ****"
-            fi
-          done
-          echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
-          echo "**** Notifying Discord ****"
-          curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
-            "description": "**Package Check Build(s) Triggered for baseimage-ubuntu** \n**Branch(es):** '"${triggered_branches}"' \n**Build URL:** '"https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-baseimage-ubuntu/activity/"' \n"}],
-            "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
deleted file mode 100755
index 1806420a221943cb19ae89540842f9dc57369f58..0000000000000000000000000000000000000000
--- a/.github/workflows/stale.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-name: Mark stale issues and pull requests
-
-on:
-  schedule:
-  - cron: "30 1 * * *"
-
-jobs:
-  stale:
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/stale@v1
-      with:
-        stale-issue-message: "This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
-        stale-pr-message: "This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions."
-        stale-issue-label: 'no-issue-activity'
-        stale-pr-label: 'no-pr-activity'
-        days-before-stale: 30
-        days-before-close: 365
-        exempt-issue-labels: 'awaiting-approval,work-in-progress'
-        exempt-pr-labels: 'awaiting-approval,work-in-progress'
-        repo-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/Jenkinsfile b/Jenkinsfile
deleted file mode 100755
index 1089bf76b04f73941610ad89ecd78926337a8006..0000000000000000000000000000000000000000
--- a/Jenkinsfile
+++ /dev/null
@@ -1,836 +0,0 @@
-pipeline {
-  agent {
-    label 'X86-64-MULTI'
-  }
-  options {
-    buildDiscarder(logRotator(numToKeepStr: '10', daysToKeepStr: '60'))
-    parallelsAlwaysFailFast()
-  }
-  // Input to determine if this is a package check
-  parameters {
-     string(defaultValue: 'false', description: 'package check run', name: 'PACKAGE_CHECK')
-  }
-  // Configuration for the variables used for this specific repo
-  environment {
-    BUILDS_DISCORD=credentials('build_webhook_url')
-    GITHUB_TOKEN=credentials('498b4638-2d02-4ce5-832d-8a57d01d97ab')
-    GITLAB_TOKEN=credentials('b6f0f1dd-6952-4cf6-95d1-9c06380283f0')
-    GITLAB_NAMESPACE=credentials('gitlab-namespace-id')
-    BUILD_VERSION_ARG = 'OS'
-    LS_USER = 'linuxserver'
-    LS_REPO = 'docker-baseimage-ubuntu'
-    CONTAINER_NAME = 'baseimage-ubuntu'
-    DOCKERHUB_IMAGE = 'lsiobase/ubuntu'
-    DEV_DOCKERHUB_IMAGE = 'lsiodev/ubuntu'
-    PR_DOCKERHUB_IMAGE = 'lspipepr/ubuntu'
-    DIST_IMAGE = 'ubuntu'
-    MULTIARCH='true'
-    CI='true'
-    CI_WEB='false'
-    CI_PORT='80'
-    CI_SSL='true'
-    CI_DELAY='30'
-    CI_DOCKERENV='TZ=US/Pacific'
-    CI_AUTH='user:password'
-    CI_WEBPATH=''
-  }
-  stages {
-    // Setup all the basic environment variables needed for the build
-    stage("Set ENV Variables base"){
-      steps{
-        script{
-          env.EXIT_STATUS = ''
-          env.LS_RELEASE = sh(
-            script: '''docker run --rm ghcr.io/linuxserver/alexeiled-skopeo sh -c 'skopeo inspect docker://docker.io/'${DOCKERHUB_IMAGE}':focal 2>/dev/null' | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
-            returnStdout: true).trim()
-          env.LS_RELEASE_NOTES = sh(
-            script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
-            returnStdout: true).trim()
-          env.GITHUB_DATE = sh(
-            script: '''date '+%Y-%m-%dT%H:%M:%S%:z' ''',
-            returnStdout: true).trim()
-          env.COMMIT_SHA = sh(
-            script: '''git rev-parse HEAD''',
-            returnStdout: true).trim()
-          env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
-          env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
-          env.PULL_REQUEST = env.CHANGE_ID
-          env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.md ./.github/ISSUE_TEMPLATE/issue.feature.md ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/stale.yml ./.github/workflows/external_trigger.yml ./.github/workflows/package_trigger.yml'
-        }
-        script{
-          env.LS_RELEASE_NUMBER = sh(
-            script: '''echo ${LS_RELEASE} |sed 's/^.*-ls//g' ''',
-            returnStdout: true).trim()
-        }
-        script{
-          env.LS_TAG_NUMBER = sh(
-            script: '''#! /bin/bash
-                       tagsha=$(git rev-list -n 1 ${LS_RELEASE} 2>/dev/null)
-                       if [ "${tagsha}" == "${COMMIT_SHA}" ]; then
-                         echo ${LS_RELEASE_NUMBER}
-                       elif [ -z "${GIT_COMMIT}" ]; then
-                         echo ${LS_RELEASE_NUMBER}
-                       else
-                         echo $((${LS_RELEASE_NUMBER} + 1))
-                       fi''',
-            returnStdout: true).trim()
-        }
-      }
-    }
-    /* #######################
-       Package Version Tagging
-       ####################### */
-    // Grab the current package versions in Git to determine package tag
-    stage("Set Package tag"){
-      steps{
-        script{
-          env.PACKAGE_TAG = sh(
-            script: '''#!/bin/bash
-                       if [ -e package_versions.txt ] ; then
-                         cat package_versions.txt | md5sum | cut -c1-8
-                       else
-                         echo none
-                       fi''',
-            returnStdout: true).trim()
-        }
-      }
-    }
-    /* ########################
-       External Release Tagging
-       ######################## */
-    // If this is an os release set release type to none to indicate no external release
-    stage("Set ENV os"){
-      steps{
-        script{
-          env.EXT_RELEASE = env.PACKAGE_TAG
-          env.RELEASE_LINK = 'none'
-        }
-      }
-    }
-    // Sanitize the release tag and strip illegal docker or github characters
-    stage("Sanitize tag"){
-      steps{
-        script{
-          env.EXT_RELEASE_CLEAN = sh(
-            script: '''echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g' ''',
-            returnStdout: true).trim()
-        }
-      }
-    }
-    // If this is a focal build use live docker endpoints
-    stage("Set ENV live build"){
-      when {
-        branch "focal"
-        environment name: 'CHANGE_ID', value: ''
-      }
-      steps {
-        script{
-          env.IMAGE = env.DOCKERHUB_IMAGE
-          env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/' + env.CONTAINER_NAME
-          env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
-          if (env.MULTIARCH == 'true') {
-            env.CI_TAGS = 'amd64-focal-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm32v7-focal-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-focal-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
-          } else {
-            env.CI_TAGS = 'focal-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
-          }
-          env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
-          env.META_TAG = 'focal-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
-          env.EXT_RELEASE_TAG = 'focal-version-' + env.EXT_RELEASE_CLEAN
-        }
-      }
-    }
-    // If this is a dev build use dev docker endpoints
-    stage("Set ENV dev build"){
-      when {
-        not {branch "focal"}
-        environment name: 'CHANGE_ID', value: ''
-      }
-      steps {
-        script{
-          env.IMAGE = env.DEV_DOCKERHUB_IMAGE
-          env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lsiodev-' + env.CONTAINER_NAME
-          env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
-          if (env.MULTIARCH == 'true') {
-            env.CI_TAGS = 'amd64-focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm32v7-focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
-          } else {
-            env.CI_TAGS = 'focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
-          }
-          env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
-          env.META_TAG = 'focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
-          env.EXT_RELEASE_TAG = 'focal-version-' + env.EXT_RELEASE_CLEAN
-          env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
-        }
-      }
-    }
-    // If this is a pull request build use dev docker endpoints
-    stage("Set ENV PR build"){
-      when {
-        not {environment name: 'CHANGE_ID', value: ''}
-      }
-      steps {
-        script{
-          env.IMAGE = env.PR_DOCKERHUB_IMAGE
-          env.GITHUBIMAGE = 'ghcr.io/' + env.LS_USER + '/lspipepr-' + env.CONTAINER_NAME
-          env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
-          if (env.MULTIARCH == 'true') {
-            env.CI_TAGS = 'amd64-focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm32v7-focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST + '|arm64v8-focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
-          } else {
-            env.CI_TAGS = 'focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
-          }
-          env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
-          env.META_TAG = 'focal-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-pr-' + env.PULL_REQUEST
-          env.EXT_RELEASE_TAG = 'focal-version-' + env.EXT_RELEASE_CLEAN
-          env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
-          env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
-        }
-      }
-    }
-    // Run ShellCheck
-    stage('ShellCheck') {
-      when {
-        environment name: 'CI', value: 'true'
-      }
-      steps {
-        withCredentials([
-          string(credentialsId: 'ci-tests-s3-key-id', variable: 'S3_KEY'),
-          string(credentialsId: 'ci-tests-s3-secret-access-key', variable: 'S3_SECRET')
-        ]) {
-          script{
-            env.SHELLCHECK_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/shellcheck-result.xml'
-          }
-          sh '''curl -sL https://raw.githubusercontent.com/linuxserver/docker-shellcheck/master/checkrun.sh | /bin/bash'''
-          sh '''#! /bin/bash
-                set -e
-                docker pull ghcr.io/linuxserver/lsiodev-spaces-file-upload:latest
-                docker run --rm \
-                -e DESTINATION=\"${IMAGE}/${META_TAG}/shellcheck-result.xml\" \
-                -e FILE_NAME="shellcheck-result.xml" \
-                -e MIMETYPE="text/xml" \
-                -v ${WORKSPACE}:/mnt \
-                -e SECRET_KEY=\"${S3_SECRET}\" \
-                -e ACCESS_KEY=\"${S3_KEY}\" \
-                -t ghcr.io/linuxserver/lsiodev-spaces-file-upload:latest \
-                python /upload.py'''
-        }
-      }
-    }
-    // Use helper containers to render templated files
-    stage('Update-Templates') {
-      when {
-        branch "focal"
-        environment name: 'CHANGE_ID', value: ''
-        expression {
-          env.CONTAINER_NAME != null
-        }
-      }
-      steps {
-        sh '''#! /bin/bash
-              set -e
-              TEMPDIR=$(mktemp -d)
-              docker pull ghcr.io/linuxserver/jenkins-builder:latest
-              docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH=focal -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest 
-              # Stage 1 - Jenkinsfile update
-              if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
-                mkdir -p ${TEMPDIR}/repo
-                git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
-                cd ${TEMPDIR}/repo/${LS_REPO}
-                git checkout -f focal
-                cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
-                git add Jenkinsfile
-                git commit -m 'Bot Updating Templated Files'
-                git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
-                echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
-                echo "Updating Jenkinsfile"
-                rm -Rf ${TEMPDIR}
-                exit 0
-              else
-                echo "Jenkinsfile is up to date."
-              fi
-              # Stage 2 - Delete old templates
-              OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md"
-              for i in ${OLD_TEMPLATES}; do
-                if [[ -f "${i}" ]]; then
-                  TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
-                fi
-              done
-              if [[ -n "${TEMPLATES_TO_DELETE}" ]]; then
-                mkdir -p ${TEMPDIR}/repo
-                git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
-                cd ${TEMPDIR}/repo/${LS_REPO}
-                git checkout -f focal
-                cd ${TEMPDIR}/docker-${CONTAINER_NAME}
-                for i in ${TEMPLATES_TO_DELETE}; do
-                  git rm "${i}"
-                done
-                git commit -m 'Bot Updating Templated Files'
-                git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
-                echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
-                echo "Deleting old templates"
-                rm -Rf ${TEMPDIR}
-                exit 0
-              else
-                echo "No templates to delete"
-              fi
-              # Stage 3 - Update templates
-              CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
-              cd ${TEMPDIR}/docker-${CONTAINER_NAME}
-              NEWHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
-              if [[ "${CURRENTHASH}" != "${NEWHASH}" ]] || ! grep -q '.jenkins-external' "${WORKSPACE}/.gitignore" 2>/dev/null; then
-                mkdir -p ${TEMPDIR}/repo
-                git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
-                cd ${TEMPDIR}/repo/${LS_REPO}
-                git checkout -f focal
-                cd ${TEMPDIR}/docker-${CONTAINER_NAME}
-                mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
-                mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
-                cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
-                cd ${TEMPDIR}/repo/${LS_REPO}/
-                if ! grep -q '.jenkins-external' .gitignore 2>/dev/null; then
-                  echo ".jenkins-external" >> .gitignore
-                  git add .gitignore
-                fi
-                git add ${TEMPLATED_FILES}
-                git commit -m 'Bot Updating Templated Files'
-                git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
-                echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
-              else
-                echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
-              fi
-              mkdir -p ${TEMPDIR}/gitbook
-              git clone https://github.com/linuxserver/docker-documentation.git ${TEMPDIR}/gitbook/docker-documentation
-              if [[ ("${BRANCH_NAME}" == "master") || ("${BRANCH_NAME}" == "main") ]] && [[ (! -f ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md) || ("$(md5sum ${TEMPDIR}/gitbook/docker-documentation/images/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md | awk '{ print $1 }')") ]]; then
-                cp ${TEMPDIR}/docker-${CONTAINER_NAME}/.jenkins-external/docker-${CONTAINER_NAME}.md ${TEMPDIR}/gitbook/docker-documentation/images/
-                cd ${TEMPDIR}/gitbook/docker-documentation/
-                git add images/docker-${CONTAINER_NAME}.md
-                git commit -m 'Bot Updating Documentation'
-                git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git --all
-              fi
-              rm -Rf ${TEMPDIR}'''
-        script{
-          env.FILES_UPDATED = sh(
-            script: '''cat /tmp/${COMMIT_SHA}-${BUILD_NUMBER}''',
-            returnStdout: true).trim()
-        }
-      }
-    }
-    // Exit the build if the Templated files were just updated
-    stage('Template-exit') {
-      when {
-        branch "focal"
-        environment name: 'CHANGE_ID', value: ''
-        environment name: 'FILES_UPDATED', value: 'true'
-        expression {
-          env.CONTAINER_NAME != null
-        }
-      }
-      steps {
-        script{
-          env.EXIT_STATUS = 'ABORTED'
-        }
-      }
-    }
-    /* #######################
-           GitLab Mirroring
-       ####################### */
-    // Ping into Gitlab to mirror this repo and have a registry endpoint
-    stage("GitLab Mirror"){
-      when {
-        environment name: 'EXIT_STATUS', value: ''
-      }
-      steps{
-        sh '''curl -H "Content-Type: application/json" -H "Private-Token: ${GITLAB_TOKEN}" -X POST https://gitlab.com/api/v4/projects \
-        -d '{"namespace_id":'${GITLAB_NAMESPACE}',\
-             "name":"'${LS_REPO}'",
-             "mirror":true,\
-             "import_url":"https://github.com/linuxserver/'${LS_REPO}'.git",\
-             "issues_access_level":"disabled",\
-             "merge_requests_access_level":"disabled",\
-             "repository_access_level":"enabled",\
-             "visibility":"public"}' '''
-      } 
-    }
-    /* ###############
-       Build Container
-       ############### */
-    // Build Docker container for push to LS Repo
-    stage('Build-Single') {
-      when {
-        environment name: 'MULTIARCH', value: 'false'
-        environment name: 'EXIT_STATUS', value: ''
-      }
-      steps {
-        echo "Running on node: ${NODE_NAME}"
-        sh "docker build \
-          --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
-          --label \"org.opencontainers.image.authors=linuxserver.io\" \
-          --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-baseimage-ubuntu/packages\" \
-          --label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-baseimage-ubuntu\" \
-          --label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-baseimage-ubuntu\" \
-          --label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
-          --label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
-          --label \"org.opencontainers.image.vendor=linuxserver.io\" \
-          --label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
-          --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
-          --label \"org.opencontainers.image.title=Baseimage-ubuntu\" \
-          --label \"org.opencontainers.image.description=baseimage-ubuntu image by linuxserver.io\" \
-          --no-cache --pull -t ${IMAGE}:${META_TAG} \
-          --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
-      }
-    }
-    // Build MultiArch Docker containers for push to LS Repo
-    stage('Build-Multi') {
-      when {
-        environment name: 'MULTIARCH', value: 'true'
-        environment name: 'EXIT_STATUS', value: ''
-      }
-      parallel {
-        stage('Build X86') {
-          steps {
-            echo "Running on node: ${NODE_NAME}"
-            sh "docker build \
-              --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
-              --label \"org.opencontainers.image.authors=linuxserver.io\" \
-              --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-baseimage-ubuntu/packages\" \
-              --label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-baseimage-ubuntu\" \
-              --label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-baseimage-ubuntu\" \
-              --label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
-              --label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
-              --label \"org.opencontainers.image.vendor=linuxserver.io\" \
-              --label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
-              --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
-              --label \"org.opencontainers.image.title=Baseimage-ubuntu\" \
-              --label \"org.opencontainers.image.description=baseimage-ubuntu image by linuxserver.io\" \
-              --no-cache --pull -t ${IMAGE}:amd64-${META_TAG} \
-              --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
-          }
-        }
-        stage('Build ARMHF') {
-          agent {
-            label 'ARMHF'
-          }
-          steps {
-            echo "Running on node: ${NODE_NAME}"
-            echo 'Logging into Github'
-            sh '''#! /bin/bash
-                  echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
-               '''
-            sh "docker build \
-              --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
-              --label \"org.opencontainers.image.authors=linuxserver.io\" \
-              --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-baseimage-ubuntu/packages\" \
-              --label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-baseimage-ubuntu\" \
-              --label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-baseimage-ubuntu\" \
-              --label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
-              --label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
-              --label \"org.opencontainers.image.vendor=linuxserver.io\" \
-              --label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
-              --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
-              --label \"org.opencontainers.image.title=Baseimage-ubuntu\" \
-              --label \"org.opencontainers.image.description=baseimage-ubuntu image by linuxserver.io\" \
-              --no-cache --pull -f Dockerfile.armhf -t ${IMAGE}:arm32v7-${META_TAG} \
-              --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
-            sh "docker tag ${IMAGE}:arm32v7-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
-            retry(5) {
-              sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}"
-            }
-            sh '''docker rmi \
-                  ${IMAGE}:arm32v7-${META_TAG} \
-                  ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
-          }
-        }
-        stage('Build ARM64') {
-          agent {
-            label 'ARM64'
-          }
-          steps {
-            echo "Running on node: ${NODE_NAME}"
-            echo 'Logging into Github'
-            sh '''#! /bin/bash
-                  echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
-               '''
-            sh "docker build \
-              --label \"org.opencontainers.image.created=${GITHUB_DATE}\" \
-              --label \"org.opencontainers.image.authors=linuxserver.io\" \
-              --label \"org.opencontainers.image.url=https://github.com/linuxserver/docker-baseimage-ubuntu/packages\" \
-              --label \"org.opencontainers.image.documentation=https://docs.linuxserver.io/images/docker-baseimage-ubuntu\" \
-              --label \"org.opencontainers.image.source=https://github.com/linuxserver/docker-baseimage-ubuntu\" \
-              --label \"org.opencontainers.image.version=${EXT_RELEASE_CLEAN}-ls${LS_TAG_NUMBER}\" \
-              --label \"org.opencontainers.image.revision=${COMMIT_SHA}\" \
-              --label \"org.opencontainers.image.vendor=linuxserver.io\" \
-              --label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
-              --label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
-              --label \"org.opencontainers.image.title=Baseimage-ubuntu\" \
-              --label \"org.opencontainers.image.description=baseimage-ubuntu image by linuxserver.io\" \
-              --no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} \
-              --build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
-            sh "docker tag ${IMAGE}:arm64v8-${META_TAG} ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
-            retry(5) {
-              sh "docker push ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}"
-            }
-            sh '''docker rmi \
-                  ${IMAGE}:arm64v8-${META_TAG} \
-                  ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :'''
-          }
-        }
-      }
-    }
-    // Take the image we just built and dump package versions for comparison
-    stage('Update-packages') {
-      when {
-        branch "focal"
-        environment name: 'CHANGE_ID', value: ''
-        environment name: 'EXIT_STATUS', value: ''
-      }
-      steps {
-        sh '''#! /bin/bash
-              set -e
-              TEMPDIR=$(mktemp -d)
-              if [ "${MULTIARCH}" == "true" ]; then
-                LOCAL_CONTAINER=${IMAGE}:amd64-${META_TAG}
-              else
-                LOCAL_CONTAINER=${IMAGE}:${META_TAG}
-              fi
-              if [ "${DIST_IMAGE}" == "alpine" ]; then
-                docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
-                  apk info -v > /tmp/package_versions.txt && \
-                  sort -o /tmp/package_versions.txt  /tmp/package_versions.txt && \
-                  chmod 777 /tmp/package_versions.txt'
-              elif [ "${DIST_IMAGE}" == "ubuntu" ]; then
-                docker run --rm --entrypoint '/bin/sh' -v ${TEMPDIR}:/tmp ${LOCAL_CONTAINER} -c '\
-                  apt list -qq --installed | sed "s#/.*now ##g" | cut -d" " -f1 > /tmp/package_versions.txt && \
-                  sort -o /tmp/package_versions.txt  /tmp/package_versions.txt && \
-                  chmod 777 /tmp/package_versions.txt'
-              fi
-              NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
-              echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
-              if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
-                git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
-                git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f focal
-                cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
-                cd ${TEMPDIR}/${LS_REPO}/
-                wait
-                git add package_versions.txt
-                git commit -m 'Bot Updating Package Versions'
-                git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git --all
-                echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}
-                echo "Package tag updated, stopping build process"
-              else
-                echo "false" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}
-                echo "Package tag is same as previous continue with build process"
-              fi
-              rm -Rf ${TEMPDIR}'''
-        script{
-          env.PACKAGE_UPDATED = sh(
-            script: '''cat /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}''',
-            returnStdout: true).trim()
-        }
-      }
-    }
-    // Exit the build if the package file was just updated
-    stage('PACKAGE-exit') {
-      when {
-        branch "focal"
-        environment name: 'CHANGE_ID', value: ''
-        environment name: 'PACKAGE_UPDATED', value: 'true'
-        environment name: 'EXIT_STATUS', value: ''
-      }
-      steps {
-        script{
-          env.EXIT_STATUS = 'ABORTED'
-        }
-      }
-    }
-    // Exit the build if this is just a package check and there are no changes to push
-    stage('PACKAGECHECK-exit') {
-      when {
-        branch "focal"
-        environment name: 'CHANGE_ID', value: ''
-        environment name: 'PACKAGE_UPDATED', value: 'false'
-        environment name: 'EXIT_STATUS', value: ''
-        expression {
-          params.PACKAGE_CHECK == 'true'
-        }
-      }
-      steps {
-        script{
-          env.EXIT_STATUS = 'ABORTED'
-        }
-      }
-    }
-    /* #######
-       Testing
-       ####### */
-    // Run Container tests
-    stage('Test') {
-      when {
-        environment name: 'CI', value: 'true'
-        environment name: 'EXIT_STATUS', value: ''
-      }
-      steps {
-        withCredentials([
-          string(credentialsId: 'ci-tests-s3-key-id', variable: 'S3_KEY'),
-          string(credentialsId: 'ci-tests-s3-secret-access-key	', variable: 'S3_SECRET')
-        ]) {
-          script{
-            env.CI_URL = 'https://ci-tests.linuxserver.io/' + env.IMAGE + '/' + env.META_TAG + '/index.html'
-          }
-          sh '''#! /bin/bash
-                set -e
-                docker pull ghcr.io/linuxserver/ci:latest
-                if [ "${MULTIARCH}" == "true" ]; then
-                  docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
-                  docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
-                  docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
-                  docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
-                fi
-                docker run --rm \
-                --shm-size=1gb \
-                -v /var/run/docker.sock:/var/run/docker.sock \
-                -e IMAGE=\"${IMAGE}\" \
-                -e DELAY_START=\"${CI_DELAY}\" \
-                -e TAGS=\"${CI_TAGS}\" \
-                -e META_TAG=\"${META_TAG}\" \
-                -e PORT=\"${CI_PORT}\" \
-                -e SSL=\"${CI_SSL}\" \
-                -e BASE=\"${DIST_IMAGE}\" \
-                -e SECRET_KEY=\"${S3_SECRET}\" \
-                -e ACCESS_KEY=\"${S3_KEY}\" \
-                -e DOCKER_ENV=\"${CI_DOCKERENV}\" \
-                -e WEB_SCREENSHOT=\"${CI_WEB}\" \
-                -e WEB_AUTH=\"${CI_AUTH}\" \
-                -e WEB_PATH=\"${CI_WEBPATH}\" \
-                -e DO_REGION="ams3" \
-                -e DO_BUCKET="lsio-ci" \
-                -t ghcr.io/linuxserver/ci:latest \
-                python /ci/ci.py'''
-        }
-      }
-    }
-    /* ##################
-         Release Logic
-       ################## */
-    // If this is an amd64 only image only push a single image
-    stage('Docker-Push-Single') {
-      when {
-        environment name: 'MULTIARCH', value: 'false'
-        environment name: 'EXIT_STATUS', value: ''
-      }
-      steps {
-        withCredentials([
-          [
-            $class: 'UsernamePasswordMultiBinding',
-            credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
-            usernameVariable: 'DOCKERUSER',
-            passwordVariable: 'DOCKERPASS'
-          ]
-        ]) {
-          retry(5) {
-            sh '''#! /bin/bash
-                  set -e
-                  echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
-                  echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
-                  echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
-                  for PUSHIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
-                    docker tag ${IMAGE}:${META_TAG} ${PUSHIMAGE}:${META_TAG}
-                    docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:focal
-                    docker tag ${PUSHIMAGE}:${META_TAG} ${PUSHIMAGE}:${EXT_RELEASE_TAG}
-                    docker push ${PUSHIMAGE}:focal
-                    docker push ${PUSHIMAGE}:${META_TAG}
-                    docker push ${PUSHIMAGE}:${EXT_RELEASE_TAG}
-                  done
-               '''
-          }
-          sh '''#! /bin/bash
-                for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
-                  docker rmi \
-                  ${DELETEIMAGE}:${META_TAG} \
-                  ${DELETEIMAGE}:${EXT_RELEASE_TAG} \
-                  ${DELETEIMAGE}:focal || :
-                done
-             '''
-        }
-      }
-    }
-    // If this is a multi arch release push all images and define the manifest
-    stage('Docker-Push-Multi') {
-      when {
-        environment name: 'MULTIARCH', value: 'true'
-        environment name: 'EXIT_STATUS', value: ''
-      }
-      steps {
-        withCredentials([
-          [
-            $class: 'UsernamePasswordMultiBinding',
-            credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
-            usernameVariable: 'DOCKERUSER',
-            passwordVariable: 'DOCKERPASS'
-          ]
-        ]) {
-          retry(5) {
-            sh '''#! /bin/bash
-                  set -e
-                  echo $DOCKERPASS | docker login -u $DOCKERUSER --password-stdin
-                  echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
-                  echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
-                  if [ "${CI}" == "false" ]; then
-                    docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER}
-                    docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
-                    docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm32v7-${META_TAG}
-                    docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
-                  fi
-                  for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}"; do
-                    docker tag ${IMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG}
-                    docker tag ${IMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG}
-                    docker tag ${IMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
-                    docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-focal
-                    docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-focal
-                    docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-focal
-                    docker tag ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
-                    docker tag ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
-                    docker tag ${MANIFESTIMAGE}:arm64v8-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
-                    docker push ${MANIFESTIMAGE}:amd64-${META_TAG}
-                    docker push ${MANIFESTIMAGE}:arm32v7-${META_TAG}
-                    docker push ${MANIFESTIMAGE}:arm64v8-${META_TAG}
-                    docker push ${MANIFESTIMAGE}:amd64-focal
-                    docker push ${MANIFESTIMAGE}:arm32v7-focal
-                    docker push ${MANIFESTIMAGE}:arm64v8-focal
-                    docker push ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG}
-                    docker push ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG}
-                    docker push ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
-                    docker manifest push --purge ${MANIFESTIMAGE}:focal || :
-                    docker manifest create ${MANIFESTIMAGE}:focal ${MANIFESTIMAGE}:amd64-focal ${MANIFESTIMAGE}:arm32v7-focal ${MANIFESTIMAGE}:arm64v8-focal
-                    docker manifest annotate ${MANIFESTIMAGE}:focal ${MANIFESTIMAGE}:arm32v7-focal --os linux --arch arm
-                    docker manifest annotate ${MANIFESTIMAGE}:focal ${MANIFESTIMAGE}:arm64v8-focal --os linux --arch arm64 --variant v8
-                    docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} || :
-                    docker manifest create ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
-                    docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm32v7-${META_TAG} --os linux --arch arm
-                    docker manifest annotate ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} --os linux --arch arm64 --variant v8
-                    docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} || :
-                    docker manifest create ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
-                    docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm32v7-${EXT_RELEASE_TAG} --os linux --arch arm
-                    docker manifest annotate ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} --os linux --arch arm64 --variant v8
-                    docker manifest push --purge ${MANIFESTIMAGE}:focal
-                    docker manifest push --purge ${MANIFESTIMAGE}:${META_TAG} 
-                    docker manifest push --purge ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} 
-                  done
-               '''
-          }
-          sh '''#! /bin/bash
-                for DELETEIMAGE in "${GITHUBIMAGE}" "${GITLABIMAGE}" "${IMAGE}"; do
-                  docker rmi \
-                  ${DELETEIMAGE}:arm32v7-${META_TAG} \
-                  ${DELETEIMAGE}:arm32v7-focal \
-                  ${DELETEIMAGE}:arm32v7-${EXT_RELEASE_TAG} \
-                  ${DELETEIMAGE}:arm64v8-${META_TAG} \
-                  ${DELETEIMAGE}:arm64v8-focal \
-                  ${DELETEIMAGE}:arm64v8-${EXT_RELEASE_TAG} || :
-                done
-                docker rmi \
-                ghcr.io/linuxserver/lsiodev-buildcache:arm32v7-${COMMIT_SHA}-${BUILD_NUMBER} \
-                ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || :
-             '''
-        }
-      }
-    }
-    // If this is a public release tag it in the LS Github
-    stage('Github-Tag-Push-Release') {
-      when {
-        branch "focal"
-        expression {
-          env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
-        }
-        environment name: 'CHANGE_ID', value: ''
-        environment name: 'EXIT_STATUS', value: ''
-      }
-      steps {
-        echo "Pushing New tag for current commit ${META_TAG}"
-        sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
-        -d '{"tag":"'${META_TAG}'",\
-             "object": "'${COMMIT_SHA}'",\
-             "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to focal",\
-             "type": "commit",\
-             "tagger": {"name": "LinuxServer Jenkins","email": "jenkins@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
-        echo "Pushing New release for Tag"
-        sh '''#! /bin/bash
-              echo "Updating base packages to ${PACKAGE_TAG}" > releasebody.json
-              echo '{"tag_name":"'${META_TAG}'",\
-                     "target_commitish": "focal",\
-                     "name": "'${META_TAG}'",\
-                     "body": "**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**OS Changes:**\\n\\n' > start
-              printf '","draft": false,"prerelease": true}' >> releasebody.json
-              paste -d'\\0' start releasebody.json > releasebody.json.done
-              curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
-      }
-    }
-    // Use helper container to sync the current README on master to the dockerhub endpoint
-    stage('Sync-README') {
-      when {
-        environment name: 'CHANGE_ID', value: ''
-        environment name: 'EXIT_STATUS', value: ''
-      }
-      steps {
-        withCredentials([
-          [
-            $class: 'UsernamePasswordMultiBinding',
-            credentialsId: '3f9ba4d5-100d-45b0-a3c4-633fd6061207',
-            usernameVariable: 'DOCKERUSER',
-            passwordVariable: 'DOCKERPASS'
-          ]
-        ]) {
-          sh '''#! /bin/bash
-                set -e
-                TEMPDIR=$(mktemp -d)
-                docker pull ghcr.io/linuxserver/jenkins-builder:latest
-                docker run --rm -e CONTAINER_NAME=${CONTAINER_NAME} -e GITHUB_BRANCH="${BRANCH_NAME}" -v ${TEMPDIR}:/ansible/jenkins ghcr.io/linuxserver/jenkins-builder:latest
-                docker pull ghcr.io/linuxserver/readme-sync
-                docker run --rm=true \
-                  -e DOCKERHUB_USERNAME=$DOCKERUSER \
-                  -e DOCKERHUB_PASSWORD=$DOCKERPASS \
-                  -e GIT_REPOSITORY=${LS_USER}/${LS_REPO} \
-                  -e DOCKER_REPOSITORY=${IMAGE} \
-                  -e GIT_BRANCH=master \
-                  -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/mnt \
-                  ghcr.io/linuxserver/readme-sync bash -c 'node sync'
-                rm -Rf ${TEMPDIR} '''
-        }
-      }
-    }
-    // If this is a Pull request send the CI link as a comment on it
-    stage('Pull Request Comment') {
-      when {
-        not {environment name: 'CHANGE_ID', value: ''}
-        environment name: 'CI', value: 'true'
-        environment name: 'EXIT_STATUS', value: ''
-      }
-      steps {
-        sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/issues/${PULL_REQUEST}/comments \
-        -d '{"body": "I am a bot, here are the test results for this PR: \\n'${CI_URL}' \\n'${SHELLCHECK_URL}'"}' '''
-      }
-    }
-  }
-  /* ######################
-     Send status to Discord
-     ###################### */
-  post {
-    always {
-      script{
-        if (env.EXIT_STATUS == "ABORTED"){
-          sh 'echo "build aborted"'
-        }
-        else if (currentBuild.currentResult == "SUCCESS"){
-          sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 1681177,\
-                 "description": "**Build:**  '${BUILD_NUMBER}'\\n**CI Results:**  '${CI_URL}'\\n**ShellCheck Results:**  '${SHELLCHECK_URL}'\\n**Status:**  Success\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
-                 "username": "Jenkins"}' ${BUILDS_DISCORD} '''
-        }
-        else {
-          sh ''' curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://wiki.jenkins-ci.org/download/attachments/2916393/headshot.png","embeds": [{"color": 16711680,\
-                 "description": "**Build:**  '${BUILD_NUMBER}'\\n**CI Results:**  '${CI_URL}'\\n**ShellCheck Results:**  '${SHELLCHECK_URL}'\\n**Status:**  failure\\n**Job:** '${RUN_DISPLAY_URL}'\\n**Change:** '${CODE_URL}'\\n**External Release:**: '${RELEASE_LINK}'\\n**DockerHub:** '${DOCKERHUB_LINK}'\\n"}],\
-                 "username": "Jenkins"}' ${BUILDS_DISCORD} '''
-        }
-      }
-    }
-    cleanup {
-      cleanWs()
-    }
-  }
-}
diff --git a/jenkins-vars.yml b/jenkins-vars.yml
deleted file mode 100644
index 8639f654a1ee82e6550abd4b478336d5e4d14309..0000000000000000000000000000000000000000
--- a/jenkins-vars.yml
+++ /dev/null
@@ -1,26 +0,0 @@
----
-
-# jenkins variables
-project_name: docker-baseimage-ubuntu
-external_type: os
-release_type: prerelease
-release_tag: focal
-ls_branch: focal
-repo_vars:
-  - BUILD_VERSION_ARG = 'OS'
-  - LS_USER = 'linuxserver'
-  - LS_REPO = 'docker-baseimage-ubuntu'
-  - CONTAINER_NAME = 'baseimage-ubuntu'
-  - DOCKERHUB_IMAGE = 'lsiobase/ubuntu'
-  - DEV_DOCKERHUB_IMAGE = 'lsiodev/ubuntu'
-  - PR_DOCKERHUB_IMAGE = 'lspipepr/ubuntu'
-  - DIST_IMAGE = 'ubuntu'
-  - MULTIARCH='true'
-  - CI='true'
-  - CI_WEB='false'
-  - CI_PORT='80'
-  - CI_SSL='true'
-  - CI_DELAY='30'
-  - CI_DOCKERENV='TZ=US/Pacific'
-  - CI_AUTH='user:password'
-  - CI_WEBPATH=''
diff --git a/package_versions.txt b/package_versions.txt
deleted file mode 100755
index 8cb1ebf5901128faad9a87da2834538b9c706dcb..0000000000000000000000000000000000000000
--- a/package_versions.txt
+++ /dev/null
@@ -1,143 +0,0 @@
-adduser3.118ubuntu2
-apt2.0.5
-apt-utils2.0.5
-base-files11ubuntu5.3
-base-passwd3.5.47
-bash5.0-6ubuntu1.1
-bsdutils1:2.34-0.1ubuntu9.1
-bzip21.0.8-2
-ca-certificates20210119~20.04.1
-coreutils8.30-3ubuntu2
-curl7.68.0-1ubuntu2.5
-dash0.5.10.2-6
-debconf1.5.73
-debianutils4.9.1
-diffutils1:3.7-3
-dirmngr2.2.19-3ubuntu2.1
-dpkg1.19.7ubuntu3
-e2fsprogs1.45.5-2ubuntu1
-fdisk2.34-0.1ubuntu9.1
-findutils4.7.0-1ubuntu1
-gcc-10-base10.2.0-5ubuntu1~20.04
-gnupg2.2.19-3ubuntu2.1
-gnupg-l10n2.2.19-3ubuntu2.1
-gnupg-utils2.2.19-3ubuntu2.1
-gpg2.2.19-3ubuntu2.1
-gpg-agent2.2.19-3ubuntu2.1
-gpgconf2.2.19-3ubuntu2.1
-gpgsm2.2.19-3ubuntu2.1
-gpgv2.2.19-3ubuntu2.1
-gpg-wks-client2.2.19-3ubuntu2.1
-gpg-wks-server2.2.19-3ubuntu2.1
-grep3.4-1
-gzip1.10-0ubuntu4
-hostname3.23
-init-system-helpers1.57
-krb5-locales1.17-6ubuntu4.1
-libacl12.2.53-6
-libapt-pkg6.02.0.5
-libasn1-8-heimdal7.7.0+dfsg-1ubuntu1
-libassuan02.5.3-7ubuntu2
-libattr11:2.4.48-5
-libaudit11:2.8.5-2ubuntu6
-libaudit-common1:2.8.5-2ubuntu6
-libblkid12.34-0.1ubuntu9.1
-libbrotli11.0.7-6ubuntu0.1
-libbz2-1.01.0.8-2
-libc62.31-0ubuntu9.2
-libcap-ng00.7.9-2.1build1
-libc-bin2.31-0ubuntu9.2
-libcom-err21.45.5-2ubuntu1
-libcrypt11:4.4.10-10ubuntu4
-libcurl47.68.0-1ubuntu2.5
-libdb5.35.3.28+dfsg1-0.6ubuntu2
-libdebconfclient00.251ubuntu1
-libext2fs21.45.5-2ubuntu1
-libfdisk12.34-0.1ubuntu9.1
-libffi73.3-4
-libgcc-s110.2.0-5ubuntu1~20.04
-libgcrypt201.8.5-5ubuntu1
-libgmp102:6.2.0+dfsg-4
-libgnutls303.6.13-2ubuntu1.3
-libgpg-error01.37-1
-libgssapi3-heimdal7.7.0+dfsg-1ubuntu1
-libgssapi-krb5-21.17-6ubuntu4.1
-libhcrypto4-heimdal7.7.0+dfsg-1ubuntu1
-libheimbase1-heimdal7.7.0+dfsg-1ubuntu1
-libheimntlm0-heimdal7.7.0+dfsg-1ubuntu1
-libhogweed53.5.1+really3.5.1-2ubuntu0.1
-libhx509-5-heimdal7.7.0+dfsg-1ubuntu1
-libidn2-02.2.0-2
-libk5crypto31.17-6ubuntu4.1
-libkeyutils11.6-6ubuntu1
-libkrb5-26-heimdal7.7.0+dfsg-1ubuntu1
-libkrb5-31.17-6ubuntu4.1
-libkrb5support01.17-6ubuntu4.1
-libksba81.3.5-2
-libldap-2.4-22.4.49+dfsg-2ubuntu1.8
-libldap-common2.4.49+dfsg-2ubuntu1.8
-liblz4-11.9.2-2ubuntu0.20.04.1
-liblzma55.2.4-1ubuntu1
-libmount12.34-0.1ubuntu9.1
-libncurses66.2-0ubuntu2
-libncursesw66.2-0ubuntu2
-libnettle73.5.1+really3.5.1-2ubuntu0.1
-libnghttp2-141.40.0-1build1
-libnpth01.6-1
-libp11-kit00.23.20-1ubuntu0.1
-libpam0g1.3.1-5ubuntu4.2
-libpam-modules1.3.1-5ubuntu4.2
-libpam-modules-bin1.3.1-5ubuntu4.2
-libpam-runtime1.3.1-5ubuntu4.2
-libpcre2-8-010.34-7
-libpcre32:8.39-12build1
-libprocps82:3.3.16-1ubuntu2.1
-libpsl50.21.0-1ubuntu1
-libreadline88.0-4
-libroken18-heimdal7.7.0+dfsg-1ubuntu1
-librtmp12.4+20151223.gitfa8646d.1-2build1
-libsasl2-22.1.27+dfsg-2
-libsasl2-modules2.1.27+dfsg-2
-libsasl2-modules-db2.1.27+dfsg-2
-libseccomp22.5.1-1ubuntu1~20.04.1
-libselinux13.0-1build2
-libsemanage13.0-1build2
-libsemanage-common3.0-1build2
-libsepol13.0-1
-libsmartcols12.34-0.1ubuntu9.1
-libsqlite3-03.31.1-4ubuntu0.2
-libss21.45.5-2ubuntu1
-libssh-40.9.3-2ubuntu2.1
-libssl1.11.1.1f-1ubuntu2.4
-libstdc++610.2.0-5ubuntu1~20.04
-libsystemd0245.4-4ubuntu3.6
-libtasn1-64.16.0-2
-libtinfo66.2-0ubuntu2
-libudev1245.4-4ubuntu3.6
-libunistring20.9.10-2
-libuuid12.34-0.1ubuntu9.1
-libwind0-heimdal7.7.0+dfsg-1ubuntu1
-libzstd11.4.4+dfsg-3ubuntu0.1
-locales2.31-0ubuntu9.2
-login1:4.8.1-1ubuntu5.20.04
-logsave1.45.5-2ubuntu1
-lsb-base11.1.0ubuntu2
-mawk1.3.4.20200120-2
-mount2.34-0.1ubuntu9.1
-ncurses-base6.2-0ubuntu2
-ncurses-bin6.2-0ubuntu2
-openssl1.1.1f-1ubuntu2.4
-passwd1:4.8.1-1ubuntu5.20.04
-perl-base5.30.0-9ubuntu0.2
-pinentry-curses1.1.0-3build1
-procps2:3.3.16-1ubuntu2.1
-publicsuffix20200303.0012-1
-readline-common8.0-4
-sed4.7-1
-sensible-utils0.0.12+nmu1
-sysvinit-utils2.96-2.1ubuntu1
-tar1.30+dfsg-7ubuntu0.20.04.1
-tzdata2021a-0ubuntu0.20.04
-ubuntu-keyring2020.02.11.4
-util-linux2.34-0.1ubuntu9.1
-zlib1g1:1.2.11.dfsg-2ubuntu1.2
diff --git a/patch/etc/s6/init/init-stage2.patch b/patch/etc/s6/init/init-stage2.patch
deleted file mode 100644
index db176f871b2128f9193933881f3fa82b4845b878..0000000000000000000000000000000000000000
--- a/patch/etc/s6/init/init-stage2.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- init-stage2	2021-01-20 20:21:41.628300700 -0600
-+++ init-stage2_new	2021-01-20 20:23:48.123677700 -0600
-@@ -17,6 +17,12 @@
- backtick -D 0 -n S6_READ_ONLY_ROOT { printcontenv S6_READ_ONLY_ROOT }
- importas -u S6_READ_ONLY_ROOT S6_READ_ONLY_ROOT
- 
-+# Docker Mods run logic
-+foreground
-+{
-+  /docker-mods
-+}
-+
- foreground
- {
-   if
diff --git a/readme-vars.yml b/readme-vars.yml
deleted file mode 100644
index 6ff391c4da3159987e353798ba24338979780d40..0000000000000000000000000000000000000000
--- a/readme-vars.yml
+++ /dev/null
@@ -1,40 +0,0 @@
----
-
-# project information
-project_name: baseimage-ubuntu
-full_custom_readme: |
-  {% raw -%}
-  [linuxserverurl]: https://linuxserver.io
-  [forumurl]: https://forum.linuxserver.io
-  [ircurl]: https://www.linuxserver.io/irc/
-  [appurl]: https://cloud-images.ubuntu.com
-  [dockerfileurl]: https://github.com/linuxserver/docker-baseimage-ubuntu/blob/master/Dockerfile
-
-
-
-  [![linuxserver.io](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/linuxserver_medium.png?v=4&s=4000)][linuxserverurl]
-
-
-  ## Contact information:-
-
-  | Type | Address/Details |
-  | :---: | --- |
-  | Discord | [Discord](https://discord.gg/YWrKVTn) |
-  | IRC | freenode at `#linuxserver.io` more information at:- [IRC][ircurl]
-  | Forum | [LinuxServer.io forum][forumurl] |
-
-  &nbsp;
-  &nbsp;
-
-  [![](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/Dockerfile-Xenial-green.png)](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/xenial/Dockerfile)
-
-  [![](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/Dockerfile-Bionic-green.png)](https://github.com/linuxserver/docker-baseimage-ubuntu/blob/bionic/Dockerfile)
-
-  [![](https://images.microbadger.com/badges/image/lsiobase/ubuntu.svg)](https://microbadger.com/images/lsiobase/ubuntu "Get your own image badge on microbadger.com")
-
-  A custom base image built with [Ubuntu cloud image][appurl] and [S6 overlay](https://github.com/just-containers/s6-overlay)..
-
-  The following line is only in this repo for loop testing:
-
-  - { date: "01.01.50:", desc: "I am the release message for this internal repo." }
-  {%- endraw %}
diff --git a/root/docker-mods b/root/docker-mods
deleted file mode 100755
index d1b955e661c4021b8c9f9eeb98e0a79d48c57b32..0000000000000000000000000000000000000000
--- a/root/docker-mods
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/with-contenv bash
-
-# Exit if mods is not set
-if [ -z ${DOCKER_MODS+x} ]; then
-  exit 0
-fi
-
-# Check for curl
-if [ ! -f /usr/bin/curl ] || [ ! -f /usr/bin/jq ]; then
-  echo "[mod-init] Curl/JQ was not found on this system for Docker mods installing"
-  if [ -f /usr/bin/apt ]; then
-    ## Ubuntu
-    apt-get update
-    apt-get install --no-install-recommends -y \
-      curl \
-      jq
-  elif [ -f /sbin/apk ]; then
-    # Alpine
-    apk add --no-cache \
-      curl \
-      jq
-  fi
-fi
-
-## Functions
-
-# Use different filtering depending on URL
-get_blob_sha () {
-  if [[ $1 == "ghcr" ]]; then
-    curl \
-      --silent \
-      --location \
-      --request GET \
-      --header "Authorization: Bearer $2" \
-      $3 | jq -r '.layers[0].digest'
-  else
-    curl \
-      --silent \
-      --location \
-      --request GET \
-      --header "Authorization: Bearer $2" \
-      $3 | jq -r '.fsLayers[0].blobSum'
-  fi
-}
-
-# Main run logic
-echo "[mod-init] Attempting to run Docker Modification Logic"
-IFS='|'
-DOCKER_MODS=(${DOCKER_MODS})
-for DOCKER_MOD in "${DOCKER_MODS[@]}"; do
-  # Support alternative endpoints
-  if [[ ${DOCKER_MOD} == ghcr.io/* ]] || [[ ${DOCKER_MOD} == linuxserver/* ]]; then
-    DOCKER_MOD="${DOCKER_MOD#ghcr.io/*}"
-    ENDPOINT="${DOCKER_MOD%%:*}"
-    USERNAME="${DOCKER_MOD%%/*}"
-    REPO="${ENDPOINT#*/}"
-    TAG="${DOCKER_MOD#*:}"
-    if [[ ${TAG} == "${DOCKER_MOD}" ]]; then
-      TAG="latest"
-    fi
-    FILENAME="${USERNAME}.${REPO}.${TAG}"
-    AUTH_URL="https://ghcr.io/token?scope=repository%3A${USERNAME}%2F${REPO}%3Apull"
-    MANIFEST_URL="https://ghcr.io/v2/${ENDPOINT}/manifests/${TAG}"
-    BLOB_URL="https://ghcr.io/v2/${ENDPOINT}/blobs/"
-    MODE="ghcr"
-  else
-    ENDPOINT="${DOCKER_MOD%%:*}"
-    USERNAME="${DOCKER_MOD%%/*}"
-    REPO="${ENDPOINT#*/}"
-    TAG="${DOCKER_MOD#*:}"
-    if [[ ${TAG} == "${DOCKER_MOD}" ]]; then
-      TAG="latest"
-    fi
-    FILENAME="${USERNAME}.${REPO}.${TAG}"
-    AUTH_URL="https://auth.docker.io/token?service=registry.docker.io&scope=repository:${ENDPOINT}:pull"
-    MANIFEST_URL="https://registry-1.docker.io/v2/${ENDPOINT}/manifests/${TAG}"
-    BLOB_URL="https://registry-1.docker.io/v2/${ENDPOINT}/blobs/"
-    MODE="dockerhub"
-  fi
-  # Kill off modification logic if any of the usernames are banned
-  BLACKLIST=$(curl -s https://raw.githubusercontent.com/linuxserver/docker-mods/master/blacklist.txt)
-  IFS=$'\n'
-  BLACKLIST=(${BLACKLIST})
-  for BANNED in "${BLACKLIST[@]}"; do
-    if [ "${BANNED}" == "${USERNAME,,}" ]; then
-      if [ -z ${RUN_BANNED_MODS+x} ]; then
-        echo "[mod-init] ${DOCKER_MOD} is banned from use due to reported abuse aborting mod logic"
-        exit 0
-      else
-        echo "[mod-init] You have chosen to run banned mods ${DOCKER_MOD} will be applied"
-      fi
-    fi
-  done
-  echo "[mod-init] Applying ${DOCKER_MOD} files to container"
-  # Get Dockerhub token for api operations
-  TOKEN=\
-"$(curl \
-    --silent \
-    --header 'GET' \
-    "${AUTH_URL}" \
-    | jq -r '.token' \
-  )"
-  # Determine first and only layer of image
-  SHALAYER=$(get_blob_sha "${MODE}" "${TOKEN}" "${MANIFEST_URL}")
-  # Check if we have allready applied this layer
-  if [ -f "/${FILENAME}" ] && [ "${SHALAYER}" == "$(cat /${FILENAME})" ]; then
-    echo "[mod-init] ${DOCKER_MOD} at ${SHALAYER} has been previously applied skipping"
-  else
-    # Download and extract layer to /
-    curl \
-      --silent \
-      --location \
-      --request GET \
-      --header "Authorization: Bearer ${TOKEN}" \
-      "${BLOB_URL}${SHALAYER}" \
-      | tar xz -C /
-    echo ${SHALAYER} > "/${FILENAME}"
-  fi
-done