diff --git a/.github/actions/app-exists/action.yaml b/.github/actions/app-exists/action.yaml index 22946ffbe..2c18c0f26 100644 --- a/.github/actions/app-exists/action.yaml +++ b/.github/actions/app-exists/action.yaml @@ -18,7 +18,7 @@ runs: steps: - name: Application Exists id: application - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0 with: script: | const applicationName = '${{ inputs.app }}'; diff --git a/.github/actions/app-inventory/action.yaml b/.github/actions/app-inventory/action.yaml index e4e8aba42..7bfb593cd 100644 --- a/.github/actions/app-inventory/action.yaml +++ b/.github/actions/app-inventory/action.yaml @@ -12,7 +12,7 @@ runs: using: composite steps: - name: Application Inventory - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0 id: inventory with: script: | diff --git a/.github/actions/app-versions/action.yaml b/.github/actions/app-versions/action.yaml index d2e3e8dec..e829fd5b3 100644 --- a/.github/actions/app-versions/action.yaml +++ b/.github/actions/app-versions/action.yaml @@ -35,7 +35,7 @@ runs: run: npm install semver - name: Application Versions - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0 id: versions with: script: | diff --git a/.github/actions/release-tag/action.yaml b/.github/actions/release-tag/action.yaml index 1859844dc..9fcb68287 100644 --- a/.github/actions/release-tag/action.yaml +++ b/.github/actions/release-tag/action.yaml @@ -18,7 +18,7 @@ runs: steps: - name: Get Release Tag id: release - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0 with: github-token: ${{ inputs.token }} script: | diff --git a/.github/workflows/app-builder.yaml b/.github/workflows/app-builder.yaml index 15f90c920..56412cf52 100644 --- a/.github/workflows/app-builder.yaml +++ b/.github/workflows/app-builder.yaml @@ -23,7 +23,7 @@ jobs: platforms: ${{ steps.app-options.outputs.platforms }} steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false @@ -46,7 +46,7 @@ jobs: upstream-version: ${{ steps.app-options.outputs.version }} - name: Build Application Metadata - uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0 + uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0 id: meta env: DOCKER_METADATA_ANNOTATIONS_LEVELS: manifest,index @@ -79,12 +79,12 @@ jobs: runs-on: ${{ startsWith(matrix.platform, 'linux/arm') && 'ubuntu-24.04-arm' || 'ubuntu-latest' }} steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - name: Get Target Architecture - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0 id: target with: script: | @@ -97,7 +97,7 @@ jobs: app: ${{ inputs.app }} - name: Login to GitHub Container Registry - uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0 + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 with: registry: ghcr.io username: ${{ github.actor }} @@ -110,14 +110,14 @@ jobs: path: ${{ runner.temp }} - name: Setup Docker Buildx - uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 + uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0 - name: Add Include Directory to Build Context run: | rsync -a --ignore-existing --progress ./include/ ./apps/${{ inputs.app }}/ - name: Build Application - uses: docker/bake-action@37816e747588cb137173af99ab33873600c46ea8 # v6.8.0 + uses: docker/bake-action@5be5f02ff8819ecd3092ea6b2e6261c31774f2b4 # v6.10.0 id: bake with: files: | @@ -172,7 +172,7 @@ jobs: digest: ${{ steps.digest.outputs.digest }} steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false @@ -190,7 +190,7 @@ jobs: merge-multiple: true - name: Login to GitHub Container Registry - uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0 + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 with: registry: ghcr.io username: ${{ github.actor }} @@ -221,14 +221,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Login to GitHub Container Registry - uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0 + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ github.token }} - name: Upload Dependency Snapshot - uses: anchore/sbom-action@7b36ad622f042cab6f59a75c2ac24ccb256e9b45 # v0.20.4 + uses: anchore/sbom-action@a930d0ac434e3182448fe678398ba5713717112a # v0.21.0 with: dependency-snapshot: true image: ghcr.io/${{ github.repository_owner }}/${{ inputs.app }}@${{ needs.release.outputs.digest }} @@ -253,12 +253,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - name: Generate Token - uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 + uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 id: app-token with: app-id: ${{ secrets.BOT_APP_ID }} @@ -277,7 +277,7 @@ jobs: token: ${{ steps.app-token.outputs.token }} - name: Create Release - uses: ncipollo/release-action@bcfe5470707e8832e12347755757cec0eb3c22af # v1.18.0 + uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1.20.0 with: body: | > [!NOTE] @@ -298,7 +298,7 @@ jobs: steps: - if: ${{ contains(needs.*.result, 'failure') }} name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false @@ -311,7 +311,7 @@ jobs: - if: ${{ contains(needs.*.result, 'failure') }} name: Send Discord Webhook - uses: sarisia/actions-status-discord@5ddd3b114a98457dd80a39b2f00b6a998cd69008 # v1.15.3 + uses: sarisia/actions-status-discord@b8381b25576cb341b2af39926ab42c5056cc44ed # v1.15.5 with: color: "0xFF0000" description: | diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index f2238e07e..3c1e5cb0c 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -28,18 +28,18 @@ jobs: source-root: . steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - name: Initialize CodeQL - uses: github/codeql-action/init@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3.29.5 + uses: github/codeql-action/init@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9 with: languages: ${{ matrix.language }} build-mode: ${{ matrix.build-mode }} source-root: ${{ matrix.source-root }} - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3.29.5 + uses: github/codeql-action/analyze@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9 with: category: language:${{ matrix.language }} diff --git a/.github/workflows/deprecate-app.yaml b/.github/workflows/deprecate-app.yaml index 395bf0e1e..97a39014d 100644 --- a/.github/workflows/deprecate-app.yaml +++ b/.github/workflows/deprecate-app.yaml @@ -29,12 +29,12 @@ jobs: pull-number: ${{ steps.pr.outputs.pull-request-number }} steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - name: Generate Token - uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 + uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 id: app-token with: app-id: ${{ secrets.BOT_APP_ID }} @@ -45,7 +45,7 @@ jobs: rm -rf ./apps/${{ inputs.app }} - name: Create Pull Request - uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8 + uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7.0.11 id: pr with: body: | @@ -64,14 +64,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Generate Token - uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 + uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 id: app-token with: app-id: ${{ secrets.BOT_APP_ID }} private-key: ${{ secrets.BOT_APP_PRIVATE_KEY }} - name: Merge Pull Request - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0 with: github-token: ${{ steps.app-token.outputs.token }} script: | @@ -89,12 +89,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - name: Generate Token - uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 + uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 id: app-token with: app-id: ${{ secrets.BOT_APP_ID }} @@ -107,7 +107,7 @@ jobs: token: ${{ steps.app-token.outputs.token }} - name: Create Release - uses: ncipollo/release-action@bcfe5470707e8832e12347755757cec0eb3c22af # v1.18.0 + uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1.20.0 with: body: | > [!WARNING] diff --git a/.github/workflows/label-sync.yaml b/.github/workflows/label-sync.yaml index 742da6a90..cb37411e6 100644 --- a/.github/workflows/label-sync.yaml +++ b/.github/workflows/label-sync.yaml @@ -16,12 +16,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - name: Generate Token - uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 + uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 id: app-token with: app-id: ${{ secrets.BOT_APP_ID }} diff --git a/.github/workflows/labeler.yaml b/.github/workflows/labeler.yaml index ebf9c0c62..105170d9c 100644 --- a/.github/workflows/labeler.yaml +++ b/.github/workflows/labeler.yaml @@ -18,12 +18,12 @@ jobs: pull-requests: write steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - name: Generate Token - uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 + uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 id: app-token with: app-id: ${{ secrets.BOT_APP_ID }} diff --git a/.github/workflows/pull-request.yaml b/.github/workflows/pull-request.yaml index bc9729911..5c2572c8c 100644 --- a/.github/workflows/pull-request.yaml +++ b/.github/workflows/pull-request.yaml @@ -15,7 +15,7 @@ jobs: steps: - name: Get changed files id: changed-files - uses: bjw-s-labs/action-changed-files@930cef8463348e168cab7235c47fe95a7a235f65 # v0.3.3 + uses: bjw-s-labs/action-changed-files@1a5aeab1bfa64d0c4e786f501d5a3f1fad4a24da # v0.4.1 with: path: apps include_only_directories: true diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 7cd4cea1a..529e85294 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -27,7 +27,7 @@ jobs: steps: - name: Get Changed Files id: changed-files - uses: bjw-s-labs/action-changed-files@930cef8463348e168cab7235c47fe95a7a235f65 # v0.3.3 + uses: bjw-s-labs/action-changed-files@1a5aeab1bfa64d0c4e786f501d5a3f1fad4a24da # v0.4.1 with: path: apps include_only_directories: true @@ -42,7 +42,7 @@ jobs: apps: ${{ steps.apps.outputs.apps }} steps: - name: Get Apps - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0 id: apps env: APPS: ${{ github.event_name == 'workflow_dispatch' && inputs.app || join(fromJSON(needs.prepare.outputs.changed-files), ' ') }} diff --git a/.github/workflows/retry-release.yaml b/.github/workflows/retry-release.yaml index 620a60671..f198311a6 100644 --- a/.github/workflows/retry-release.yaml +++ b/.github/workflows/retry-release.yaml @@ -18,7 +18,7 @@ jobs: apps: ${{ steps.inventory.outputs.apps }} steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false @@ -38,22 +38,15 @@ jobs: fail-fast: false steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - - name: Generate Token - uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 - id: app-token - with: - app-id: ${{ secrets.BOT_APP_ID }} - private-key: ${{ secrets.BOT_APP_PRIVATE_KEY }} - - name: Install Cosign - uses: sigstore/cosign-installer@d58896d6a1865668819e1d91763c7751a165e159 # v3.9.2 + uses: sigstore/cosign-installer@7e8b541eb2e61bf99390e1afd4be13a184e9ebc5 # v3.10.1 - name: Install regctl - uses: regclient/actions/regctl-installer@91a43cffe6e8c0c49ff25e11ede826a3c6f45dbd # main + uses: regclient/actions/regctl-installer@73d0a55cd4885dc9ce30ce2772a9c01b5753ffef # main - name: Get Bake Options id: app-options @@ -64,7 +57,7 @@ jobs: - name: Get Container Registry Version id: registry env: - GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | if ! version=$(regctl image inspect ghcr.io/${{ github.repository_owner }}/${{ matrix.app }}:rolling \ | jq --raw-output '.config.Labels["org.opencontainers.image.version"]' 2>/dev/null) || [[ -z "${version}" ]]; @@ -79,14 +72,14 @@ jobs: uses: juliangruber/find-pull-request-action@952b3bb1ddb2dcc0aa3479e98bb1c2d1a922f096 # v1.10.0 id: find-pull-request with: - github-token: ${{ steps.app-token.outputs.token }} + github-token: ${{ secrets.GITHUB_TOKEN }} labels: app/${{ matrix.app }} state: open - if: ${{ steps.find-pull-request.outputs.number != '' }} name: Retry Release env: - GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | # zizmor: ignore[template-injection] gh workflow run release.yaml \ --repo ${{ github.repository }} \ diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml index b0b43fdc5..270e34888 100644 --- a/.github/workflows/stale.yaml +++ b/.github/workflows/stale.yaml @@ -21,7 +21,7 @@ jobs: pull-requests: write steps: - name: Generate Token - uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 + uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 id: app-token with: app-id: "${{ secrets.BOT_APP_ID }}" diff --git a/.github/workflows/test-version.yaml b/.github/workflows/test-version.yaml index 55c9754d0..4c89bbf87 100644 --- a/.github/workflows/test-version.yaml +++ b/.github/workflows/test-version.yaml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false diff --git a/.github/workflows/vulnerability-scan.yaml b/.github/workflows/vulnerability-scan.yaml index 907134026..cfffbc349 100644 --- a/.github/workflows/vulnerability-scan.yaml +++ b/.github/workflows/vulnerability-scan.yaml @@ -18,7 +18,7 @@ jobs: apps: ${{ steps.inventory.outputs.apps }} steps: - name: Checkout - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false @@ -36,7 +36,7 @@ jobs: - name: Restore Database id: database-restore - uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 + uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: key: grype-db-${{ steps.cache.outputs.key }} path: ~/.cache/grype/db @@ -53,7 +53,7 @@ jobs: - if: ${{ always() && steps.database-restore.outputs.cache-hit != 'true' }} name: Cache Database - uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 + uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: key: grype-db-${{ steps.cache.outputs.key }} path: ~/.cache/grype/db @@ -76,7 +76,7 @@ jobs: run: echo "key=$(date -u +'%Y-%m-%d')" >> $GITHUB_OUTPUT - name: Restore Database - uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 + uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 with: key: grype-db-${{ steps.cache.outputs.key }} path: ~/.cache/grype/db @@ -90,7 +90,7 @@ jobs: severity-cutoff: high - name: Upload Report - uses: github/codeql-action/upload-sarif@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3.29.5 + uses: github/codeql-action/upload-sarif@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9 with: category: container:${{ matrix.app }} sarif_file: ${{ steps.scan.outputs.sarif }} diff --git a/.mise.toml b/.mise.toml index bf5a88639..0bf26ed6d 100644 --- a/.mise.toml +++ b/.mise.toml @@ -1,9 +1,9 @@ [tools] -"aqua:cli/cli" = "2.76.2" -"aqua:go-task/task" = "3.44.1" -"aqua:GoogleContainerTools/container-structure-test" = "1.19.3" +"aqua:cli/cli" = "2.83.2" +"aqua:go-task/task" = "3.46.4" +"aqua:GoogleContainerTools/container-structure-test" = "1.22.1" "aqua:jqlang/jq" = "1.8.0" -"aqua:mikefarah/yq" = "4.47.1" +"aqua:mikefarah/yq" = "4.50.1" [hooks] postinstall = [ diff --git a/apps/actions-runner/Dockerfile b/apps/actions-runner/Dockerfile deleted file mode 100644 index 5fb2631d0..000000000 --- a/apps/actions-runner/Dockerfile +++ /dev/null @@ -1,44 +0,0 @@ -# syntax=docker/dockerfile:1 - -ARG VERSION -FROM ghcr.io/actions/actions-runner:${VERSION} -ARG TARGETARCH - -ENV HOMEBREW_NO_ANALYTICS=1 \ - HOMEBREW_NO_ENV_HINTS=1 \ - HOMEBREW_NO_INSTALL_CLEANUP=1 - -USER root - -RUN \ - apt-get -qq update \ - && \ - apt-get -qq install -y --no-install-recommends --no-install-suggests \ - ca-certificates \ - jo \ - moreutils \ - wget \ - zstd \ - && \ - case "${TARGETARCH}" in \ - 'amd64') apt-get -qq install -y --no-install-recommends --no-install-suggests gcc ;; \ - esac \ - && \ - curl -fsSL "https://github.com/mikefarah/yq/releases/latest/download/yq_linux_${TARGETARCH}" -o /usr/local/bin/yq \ - && chmod +x /usr/local/bin/yq \ - && \ - mkdir -p -m 755 /etc/apt/keyrings \ - && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \ - && cat $out | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ - && chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ - && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ - && apt update \ - && apt install gh -y \ - && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -USER runner - -RUN \ - case "${TARGETARCH}" in \ - 'amd64') /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" ;; \ - esac diff --git a/apps/actions-runner/docker-bake.hcl b/apps/actions-runner/docker-bake.hcl deleted file mode 100644 index a0db1c798..000000000 --- a/apps/actions-runner/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "actions-runner" -} - -variable "VERSION" { - // renovate: datasource=docker depName=ghcr.io/actions/actions-runner - default = "2.327.1" -} - -variable "SOURCE" { - default = "https://github.com/actions/runner" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/actions-runner/tests.yaml b/apps/actions-runner/tests.yaml deleted file mode 100644 index 70482ccb4..000000000 --- a/apps/actions-runner/tests.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -schemaVersion: "2.0.0" -fileExistenceTests: - - name: yq - path: /usr/local/bin/yq - shouldExist: true diff --git a/apps/aws-signing-helper/Dockerfile b/apps/aws-signing-helper/Dockerfile new file mode 100644 index 000000000..ac5dae788 --- /dev/null +++ b/apps/aws-signing-helper/Dockerfile @@ -0,0 +1,35 @@ +FROM alpine:3.22.1 + +ARG TARGETARCH +ARG ARCH=${TARGETARCH/arm64/Aarch64} +ARG ARCH=${ARCH/amd64/X86_64} +ARG VERSION + +ENV HOME="/config" + +USER root +WORKDIR /app + +RUN \ + apk add --no-cache \ + bash \ + catatonit \ + curl \ + libc6-compat \ + libgcc \ + && mkdir -p /app/bin \ + && curl -fsSL -o /tmp/aws-signing-helper "https://rolesanywhere.amazonaws.com/releases/${VERSION}/${ARCH}/Linux/aws_signing_helper" \ + && mv -t /app/bin /tmp/aws-signing-helper \ + && chown -R root:root /app \ + && chmod -R 755 /app \ + && mkdir -p /config \ + && chown nobody:nogroup -R /config \ + && rm -rf /tmp/* + +COPY . / + +USER nobody:nogroup +WORKDIR /config +VOLUME ["/config"] + +ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/bazarr/docker-bake.hcl b/apps/aws-signing-helper/docker-bake.hcl similarity index 71% rename from apps/bazarr/docker-bake.hcl rename to apps/aws-signing-helper/docker-bake.hcl index 5a54a9eb6..a760adf6e 100644 --- a/apps/bazarr/docker-bake.hcl +++ b/apps/aws-signing-helper/docker-bake.hcl @@ -1,16 +1,16 @@ target "docker-metadata-action" {} variable "APP" { - default = "bazarr" + default = "aws-signing-helper" } variable "VERSION" { - // renovate: datasource=github-releases depName=morpheus65535/bazarr - default = "v1.5.2" + // renovate: datasource=github-releases depName=aws/rolesanywhere-credential-helper + default = "1.7.0" } variable "SOURCE" { - default = "https://github.com/morpheus65535/bazarr" + default = "https://github.com/aws/rolesanywhere-credential-helper" } group "default" { diff --git a/apps/aws-signing-helper/entrypoint.sh b/apps/aws-signing-helper/entrypoint.sh new file mode 100755 index 000000000..a51fa7ccc --- /dev/null +++ b/apps/aws-signing-helper/entrypoint.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +if [[ -z "$TRUST_ANCHOR_ARN" ]]; then + echo "❌ Must provide TRUST_ANCHOR_ARN environment variable." 1>&2 + exit 1 +fi + +if [[ -z "$PROFILE_ARN" ]]; then + echo "❌ Must provide PROFILE_ARN environment variable." 1>&2 + exit 1 +fi + +if [[ -z "$ROLE_ARN" ]]; then + echo "❌ Must provide ROLE_ARN environment variable." 1>&2 + exit 1 +fi + +echo "🚀 Starting IMDSv2 endpoint with aws_signing_helper ..." + +exec \ + /app/bin/aws-signing-helper serve \ + --certificate /iamra/tls.crt \ + --private-key /iamra/tls.key \ + --trust-anchor-arn $TRUST_ANCHOR_ARN \ + --profile-arn $PROFILE_ARN \ + --role-arn $ROLE_ARN diff --git a/apps/bazarr/Dockerfile b/apps/bazarr/Dockerfile deleted file mode 100644 index 36dae41cc..000000000 --- a/apps/bazarr/Dockerfile +++ /dev/null @@ -1,73 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/python:3.13-alpine3.22 -ARG VENDOR -ARG VERSION - -ENV \ - CRYPTOGRAPHY_DONT_BUILD_RUST=1 \ - PIP_BREAK_SYSTEM_PACKAGES=1 \ - PIP_DISABLE_PIP_VERSION_CHECK=1 \ - PIP_NO_CACHE_DIR=1 \ - PIP_ROOT_USER_ACTION=ignore \ - PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 \ - UV_NO_CACHE=true \ - UV_SYSTEM_PYTHON=true \ - UV_EXTRA_INDEX_URL="https://wheel-index.linuxserver.io/alpine-3.22/" - -ENV \ - BAZARR__PORT=6767 \ - BAZARR_PACKAGE_AUTHOR=${VENDOR} \ - BAZARR_PACKAGE_VERSION=${VERSION} \ - BAZARR_VERSION=${VERSION} - -USER root -WORKDIR /app - -RUN \ - apk add --no-cache \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - ffmpeg \ - jq \ - libxml2 \ - libpq \ - libxslt \ - mediainfo \ - nano \ - trurl \ - tzdata \ - unzip \ - && \ - apk add --no-cache --virtual .build-deps \ - build-base \ - cargo \ - libffi-dev \ - libpq-dev \ - libxml2-dev \ - libxslt-dev \ - && \ - curl -fsSL -o /tmp/app.zip "https://github.com/morpheus65535/bazarr/releases/download/${VERSION}/bazarr.zip" \ - && unzip -q /tmp/app.zip -d /app/bin \ - && sed -i '/Pillow>/s/ --only-binary=Pillow//; /Pillow>/a --only-binary=Pillow' /app/bin/requirements.txt \ - && pip install uv \ - && uv pip install \ - --requirement /app/bin/requirements.txt \ - --requirement /app/bin/postgres-requirements.txt \ - && chown -R root:root /app && chmod -R 755 /app \ - && pip uninstall --yes uv && apk del --purge .build-deps \ - && rm -rf /root/.cache /root/.cargo /tmp/* /app/bin/bin - -COPY . / - -COPY --from=ghcr.io/linuxserver/unrar:latest /usr/bin/unrar-alpine /usr/bin/unrar - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/bazarr/entrypoint.sh b/apps/bazarr/entrypoint.sh deleted file mode 100755 index 72a56fa40..000000000 --- a/apps/bazarr/entrypoint.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -exec \ - /usr/local/bin/python \ - /app/bin/bazarr.py \ - --no-update True \ - --config /config \ - --port ${BAZARR__PORT} \ - "$@" diff --git a/apps/bazarr/tests.yaml b/apps/bazarr/tests.yaml deleted file mode 100644 index 2321b138d..000000000 --- a/apps/bazarr/tests.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - python: - running: true -port: - tcp:6767: - listening: true -http: - http://localhost:6767: - status: 200 -file: - /usr/local/bin/python: - exists: true - /usr/bin/unrar: - exists: true diff --git a/apps/beets/Dockerfile b/apps/beets/Dockerfile deleted file mode 100644 index 5829431f3..000000000 --- a/apps/beets/Dockerfile +++ /dev/null @@ -1,89 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/node:22-alpine AS betanin -WORKDIR /src -ADD https://github.com/sentriz/betanin.git . -WORKDIR /src/betanin_client -ENV PRODUCTION=true -ENV NODE_OPTIONS=--openssl-legacy-provider -RUN npm install && npm run-script build - -FROM docker.io/library/python:3.13-alpine3.22 -ARG VERSION - -WORKDIR /src - -ENV \ - CRYPTOGRAPHY_DONT_BUILD_RUST=1 \ - PIP_BREAK_SYSTEM_PACKAGES=1 \ - PIP_DISABLE_PIP_VERSION_CHECK=1 \ - PIP_NO_CACHE_DIR=1 \ - PIP_ROOT_USER_ACTION=ignore \ - PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 \ - UV_NO_CACHE=true \ - UV_SYSTEM_PYTHON=true \ - UV_EXTRA_INDEX_URL="https://wheel-index.linuxserver.io/alpine-3.22/" - -ENV HOME=/config \ - BETANIN_HOST=0.0.0.0 \ - BETANIN_PORT=8080 - -RUN \ - apk add --no-cache \ - bash \ - catatonit \ - chromaprint \ - curl \ - expat \ - ffmpeg \ - fftw \ - flac \ - gdbm \ - gobject-introspection \ - gst-plugins-good \ - gstreamer \ - imagemagick \ - jpeg \ - jq \ - lame \ - libffi \ - libpng \ - mpg123 \ - openjpeg \ - sqlite-libs \ - tzdata \ - && \ - apk add --no-cache --virtual=.build-deps \ - git \ - && \ - apk add --no-cache --repository="https://dl-cdn.alpinelinux.org/alpine/edge/community/" \ - mp3gain \ - && \ - apk add --no-cache --repository="https://dl-cdn.alpinelinux.org/alpine/edge/testing/" \ - mp3val \ - && \ - pip install uv \ - && \ - uv pip install \ - https://github.com/beetbox/beets/releases/download/${VERSION}/beets-${VERSION#*v}-py3-none-any.whl \ - git+https://github.com/sentriz/betanin.git \ - beetcamp \ - beets-extrafiles \ - beets-lidarr-fields \ - beets-noimport \ - pyacoustid \ - pylast \ - python3-discogs-client \ - && pip uninstall --yes uv \ - && apk del --purge .build-deps \ - && rm -rf /tmp/* - -COPY --from=betanin /src/betanin_client/dist/ /usr/local/lib/python3.13/site-packages/betanin_client/dist/ -COPY . / - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/beets/defaults/config-beets.yaml b/apps/beets/defaults/config-beets.yaml deleted file mode 100644 index 648932006..000000000 --- a/apps/beets/defaults/config-beets.yaml +++ /dev/null @@ -1,149 +0,0 @@ -library: /config/beets.db -directory: /Music - -import: - write: yes - copy: yes - move: no - link: no - hardlink: no - reflink: no - delete: no - resume: ask - incremental: no - incremental_skip_later: no - from_scratch: no - quiet_fallback: skip - none_rec_action: ask - timid: no - log: - autotag: yes - quiet: no - singletons: no - default_action: apply - languages: [] - detail: no - flat: no - group_albums: no - pretend: false - search_ids: [] - duplicate_action: ask - bell: no - set_fields: {} - -clutter: ["Thumbs.DB", ".DS_Store"] -ignore: [".*", "*~", "System Volume Information", "lost+found"] -ignore_hidden: yes - -replace: - '[\\/]': _ - '^\.': _ - '[\x00-\x1f]': _ - '[<>:"\?\*\|]': _ - '\.$': _ - '\s+$': '' - '^\s+': '' - '^-': _ -path_sep_replace: _ -drive_sep_replace: _ -asciify_paths: false -art_filename: cover -max_filename_length: 0 - -aunique: - keys: albumartist album - disambiguators: albumtype year label catalognum albumdisambig releasegroupdisambig - bracket: '[]' - -overwrite_null: - album: [] - track: [] - -plugins: [] -pluginpath: [] -threaded: yes -timeout: 5.0 -per_disc_numbering: no -verbose: 0 -terminal_encoding: -original_date: no -artist_credit: no -id3v23: no -va_name: "Various Artists" - -ui: - terminal_width: 80 - length_diff_thresh: 10.0 - color: yes - colors: - text_success: green - text_warning: yellow - text_error: red - text_highlight: red - text_highlight_minor: lightgray - action_default: turquoise - action: blue - -format_item: $artist - $album - $title -format_album: $albumartist - $album -time_format: '%Y-%m-%d %H:%M:%S' -format_raw_length: no - -sort_album: albumartist+ album+ -sort_item: artist+ album+ disc+ track+ -sort_case_insensitive: yes - -paths: - default: $albumartist/$album%aunique{}/$track $title - singleton: Non-Album/$artist/$title - comp: Compilations/$album%aunique{}/$track $title - -statefile: state.pickle - -musicbrainz: - host: musicbrainz.org - https: no - ratelimit: 1 - ratelimit_interval: 1.0 - searchlimit: 5 - extra_tags: [] - genres: no - -match: - strong_rec_thresh: 0.04 - medium_rec_thresh: 0.25 - rec_gap_thresh: 0.25 - max_rec: - missing_tracks: medium - unmatched_tracks: medium - distance_weights: - source: 2.0 - artist: 3.0 - album: 3.0 - media: 1.0 - mediums: 1.0 - year: 1.0 - country: 0.5 - label: 0.5 - catalognum: 0.5 - albumdisambig: 0.5 - album_id: 5.0 - tracks: 2.0 - missing_tracks: 0.9 - unmatched_tracks: 0.6 - track_title: 3.0 - track_artist: 2.0 - track_index: 1.0 - track_length: 2.0 - track_id: 5.0 - preferred: - countries: [] - media: [] - original_year: no - ignored: [] - required: [] - ignored_media: [] - ignore_data_tracks: yes - ignore_video_tracks: yes - track_length_grace: 10 - track_length_max: 30 diff --git a/apps/beets/defaults/config-betanin.toml b/apps/beets/defaults/config-betanin.toml deleted file mode 100644 index cfb1195ce..000000000 --- a/apps/beets/defaults/config-betanin.toml +++ /dev/null @@ -1,11 +0,0 @@ -[frontend] -username = "beets" -password = "" -[clients] -api_key = "" -[server] -num_parallel_jobs = 1 -[notifications.services] -[notifications.strings] -title = "Music Imported" -body = "$name" diff --git a/apps/beets/docker-bake.hcl b/apps/beets/docker-bake.hcl deleted file mode 100644 index ba3609e0c..000000000 --- a/apps/beets/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "beets" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=beetbox/beets - default = "v2.3.1" -} - -variable "SOURCE" { - default = "https://github.com/beetbox/beets" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/beets/entrypoint.sh b/apps/beets/entrypoint.sh deleted file mode 100755 index 3635efb3e..000000000 --- a/apps/beets/entrypoint.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -export BEETSDIR="/config/.config/beets" -export BETANINDIR="/config/.config/betanin" - -if [[ ! -f "${BEETSDIR}/config.yaml" ]]; then - mkdir -p "${BEETSDIR}" - cp /defaults/config-beets.yaml "${BEETSDIR}/config.yaml" -fi - -if [[ ! -f "${BETANINDIR}/config.toml" ]]; then - mkdir -p "${BETANINDIR}" - cp /defaults/config-betanin.toml "${BETANINDIR}/config.toml" - - password=$(tr -dc 'a-z0-9' < /dev/urandom | fold -w 32 | head -n 1) - api_key=$(tr -dc 'a-z0-9' < /dev/urandom | fold -w 32 | head -n 1) - sed -i -e "s/^password *=.*$/password = \"${password}\"/g" "${BETANINDIR}/config.toml" - sed -i -e "s/^api_key *=.*$/api_key = \"${api_key}\"/g" "${BETANINDIR}/config.toml" - echo "Created password and api keys for the user beets:" - echo "Password: ${password}" - echo "API Key: ${api_key}" -fi - -[[ -n "${BETANIN__PASSWORD}" ]] && sed -i -e "s/^password *=.*$/password = \"${BETANIN__PASSWORD}\"/g" "${BETANINDIR}/config.toml" -[[ -n "${BETANIN__API_KEY}" ]] && sed -i -e "s/^api_key *=.*$/api_key = \"${BETANIN__API_KEY}\"/g" "${BETANINDIR}/config.toml" - -exec \ - /usr/local/bin/betanin \ - "$@" diff --git a/apps/beets/tests.yaml b/apps/beets/tests.yaml deleted file mode 100644 index 589818719..000000000 --- a/apps/beets/tests.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - betanin: - running: true -port: - tcp:8080: - listening: true -http: - http://localhost:8080: - status: 200 diff --git a/apps/busybox/Dockerfile b/apps/busybox/Dockerfile deleted file mode 100644 index 6e9b006dc..000000000 --- a/apps/busybox/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -# syntax=docker/dockerfile:1 - -ARG VERSION -FROM docker.io/library/busybox:${VERSION} diff --git a/apps/busybox/docker-bake.hcl b/apps/busybox/docker-bake.hcl deleted file mode 100644 index 21c84ac18..000000000 --- a/apps/busybox/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "busybox" -} - -variable "VERSION" { - // renovate: datasource=docker depName=docker.io/library/busybox - default = "1.37.0" -} - -variable "SOURCE" { - default = "https://www.busybox.net" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/busybox/tests.yaml b/apps/busybox/tests.yaml deleted file mode 100644 index 2a27be9f0..000000000 --- a/apps/busybox/tests.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -schemaVersion: "2.0.0" -fileExistenceTests: - - name: sh - path: /bin/sh - shouldExist: true diff --git a/apps/byparr/Dockerfile b/apps/byparr/Dockerfile deleted file mode 100644 index fa3773ab2..000000000 --- a/apps/byparr/Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/python:3.13-alpine3.22 -ARG VERSION - -ENV \ - CRYPTOGRAPHY_DONT_BUILD_RUST=1 \ - PIP_BREAK_SYSTEM_PACKAGES=1 \ - PIP_DISABLE_PIP_VERSION_CHECK=1 \ - PIP_NO_CACHE_DIR=1 \ - PIP_ROOT_USER_ACTION=ignore \ - PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 \ - UV_NO_CACHE=true \ - UV_SYSTEM_PYTHON=true - -ENV \ - GITHUB_BUILD="false" \ - VERSION=${VERSION} - -USER root -WORKDIR /app - -RUN \ - apk add --no-cache \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - jq \ - nano \ - tzdata \ - xauth \ - xvfb \ - scrot \ - chromium \ - chromium-chromedriver \ - && \ - apk add --no-cache --virtual=.build-deps \ - build-base \ - libffi-dev \ - openssl-dev \ - musl-dev \ - git \ - && \ - git clone --single-branch --branch "${VERSION}" https://github.com/ThePhaseless/Byparr.git . \ - && pip install uv \ - && uv sync \ - && cd .venv/lib/*/site-packages/seleniumbase/drivers && rm -f uc_driver && ln -s /usr/bin/chromedriver uc_driver \ - && chown -R root:root /app && chmod -R 755 /app \ - && apk del --purge .build-deps \ - && rm -rf /root/.cache /root/.cargo /tmp/* - -COPY . / - -USER nobody:nogroup - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/byparr/docker-bake.hcl b/apps/byparr/docker-bake.hcl deleted file mode 100644 index e8f143c1b..000000000 --- a/apps/byparr/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "byparr" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=ThePhaseless/Byparr - default = "v1.2.1" -} - -variable "SOURCE" { - default = "https://github.com/ThePhaseless/Byparr" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/byparr/entrypoint.sh b/apps/byparr/entrypoint.sh deleted file mode 100755 index e26b35430..000000000 --- a/apps/byparr/entrypoint.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash - -exec \ - uv run main.py diff --git a/apps/byparr/tests.yaml b/apps/byparr/tests.yaml deleted file mode 100644 index 21b64b499..000000000 --- a/apps/byparr/tests.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - uv: - running: true -port: - tcp:8191: - listening: true -http: - http://localhost:8191: - status: 200 diff --git a/apps/cni-plugins/Dockerfile b/apps/cni-plugins/Dockerfile deleted file mode 100644 index 7d5fe04fa..000000000 --- a/apps/cni-plugins/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/alpine:3.22 -ARG TARGETARCH -ARG VERSION - -ENV CNI_BIN_DIR=/host/opt/cni/bin - -USER root - -RUN \ - apk add --no-cache \ - rsync \ - && \ - apk add --no-cache --virtual=.build-deps \ - curl \ - tar \ - && mkdir -p /plugins \ - && curl -fsSL "https://github.com/containernetworking/plugins/releases/download/${VERSION}/cni-plugins-linux-${TARGETARCH}-${VERSION}.tgz" \ - | tar xzf - -C /plugins --strip-components=1 \ - && apk del --purge .build-deps \ - && rm -rf /tmp/* - -CMD rsync -av /plugins/* $CNI_BIN_DIR diff --git a/apps/cni-plugins/docker-bake.hcl b/apps/cni-plugins/docker-bake.hcl deleted file mode 100644 index 8288ded7f..000000000 --- a/apps/cni-plugins/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "cni-plugins" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=containernetworking/plugins - default = "v1.7.1" -} - -variable "SOURCE" { - default = "https://github.com/containernetworking/plugins" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/cni-plugins/tests.yaml b/apps/cni-plugins/tests.yaml deleted file mode 100644 index b3c53ca05..000000000 --- a/apps/cni-plugins/tests.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -schemaVersion: "2.0.0" -fileExistenceTests: - - name: macvlan - path: /plugins/macvlan - shouldExist: true diff --git a/apps/deluge/Dockerfile b/apps/deluge/Dockerfile deleted file mode 100644 index 686232eb7..000000000 --- a/apps/deluge/Dockerfile +++ /dev/null @@ -1,47 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/alpine:3.22 -ARG VERSION - -ENV DELUGE_BIN="deluged" \ - XDG_CONFIG_HOME="/config" \ - PYTHON_EGG_CACHE="/config/plugins/.python-eggs" \ - TMPDIR="/tmp" - -USER root - -RUN \ - apk add --no-cache \ - 7zip \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - jq \ - nano \ - py3-future \ - py3-requests \ - tzdata \ - && \ - apk add --no-cache --repository="https://dl-cdn.alpinelinux.org/alpine/edge/community" \ - deluge=="${VERSION}" \ - && \ - apk add --no-cache --repository="https://dl-cdn.alpinelinux.org/alpine/edge/testing" \ - py3-geoip \ - && \ - mkdir -p /usr/share/GeoIP \ - && \ - curl -fsSL "https://mailfud.org/geoip-legacy/GeoIP.dat.gz" \ - | gunzip > /usr/share/GeoIP/GeoIP.dat \ - && rm -rf /tmp/* - -COPY . / - -COPY --from=ghcr.io/linuxserver/unrar:latest /usr/bin/unrar-alpine /usr/bin/unrar - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/deluge/defaults/core.conf b/apps/deluge/defaults/core.conf deleted file mode 100644 index 24bf0e960..000000000 --- a/apps/deluge/defaults/core.conf +++ /dev/null @@ -1,95 +0,0 @@ -{ - "file": 1, - "format": 1 -}{ - "add_paused": false, - "allow_remote": false, - "auto_manage_prefer_seeds": false, - "auto_managed": true, - "cache_expiry": 60, - "cache_size": 512, - "copy_torrent_file": false, - "daemon_port": 58846, - "del_copy_torrent_file": false, - "dht": true, - "dont_count_slow_torrents": false, - "download_location": "/downloads", - "download_location_paths_list": [], - "enabled_plugins": [], - "enc_in_policy": 1, - "enc_level": 2, - "enc_out_policy": 1, - "geoip_db_location": "/usr/share/GeoIP/GeoIP.dat", - "ignore_limits_on_local_network": true, - "info_sent": 0.0, - "listen_interface": "", - "listen_ports": [ - 6881, - 6891 - ], - "listen_random_port": 51765, - "listen_reuse_port": true, - "listen_use_sys_port": false, - "lsd": true, - "max_active_downloading": 3, - "max_active_limit": 8, - "max_active_seeding": 5, - "max_connections_global": 200, - "max_connections_per_second": 20, - "max_connections_per_torrent": -1, - "max_download_speed": -1.0, - "max_download_speed_per_torrent": -1, - "max_half_open_connections": 50, - "max_upload_slots_global": 4, - "max_upload_slots_per_torrent": -1, - "max_upload_speed": -1.0, - "max_upload_speed_per_torrent": -1, - "move_completed": false, - "move_completed_path": "/downloads", - "move_completed_paths_list": [], - "natpmp": true, - "new_release_check": true, - "outgoing_interface": "", - "outgoing_ports": [ - 0, - 0 - ], - "path_chooser_accelerator_string": "Tab", - "path_chooser_auto_complete_enabled": true, - "path_chooser_max_popup_rows": 20, - "path_chooser_show_chooser_button_on_localhost": true, - "path_chooser_show_hidden_files": false, - "peer_tos": "0x00", - "plugins_location": "/config/plugins", - "pre_allocate_storage": false, - "prioritize_first_last_pieces": false, - "proxy": { - "anonymous_mode": false, - "force_proxy": false, - "hostname": "", - "password": "", - "port": 8080, - "proxy_hostnames": true, - "proxy_peer_connections": true, - "proxy_tracker_connections": true, - "type": 0, - "username": "" - }, - "queue_new_to_top": false, - "random_outgoing_ports": true, - "random_port": true, - "rate_limit_ip_overhead": true, - "remove_seed_at_ratio": false, - "seed_time_limit": 180, - "seed_time_ratio_limit": 7.0, - "send_info": false, - "sequential_download": false, - "share_ratio_limit": 2.0, - "shared": false, - "stop_seed_at_ratio": false, - "stop_seed_ratio": 2.0, - "super_seeding": false, - "torrentfiles_location": "/config/torrents", - "upnp": true, - "utpex": true -} diff --git a/apps/deluge/docker-bake.hcl b/apps/deluge/docker-bake.hcl deleted file mode 100644 index f3a10e9f0..000000000 --- a/apps/deluge/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "deluge" -} - -variable "VERSION" { - // renovate: datasource=repology depName=alpine_edge/deluge - default = "2.2.0-r0" -} - -variable "SOURCE" { - default = "https://github.com/deluge-torrent/deluge" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/deluge/entrypoint.sh b/apps/deluge/entrypoint.sh deleted file mode 100755 index 397157248..000000000 --- a/apps/deluge/entrypoint.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -if [[ ! -f /config/core.conf ]]; then - cp /defaults/core.conf /config/core.conf -fi - -mkdir -p /config/plugins/.python-eggs - -DELUGE_OPTS=( - "--do-not-daemonize" - "--config" "/config" -) - -if [[ ${DELUGE_BIN} == "deluged" ]]; then - DELUGE_OPTS+=("--loglevel" "info") -elif [[ ${DELUGE_BIN} == "deluge-web" ]]; then - DELUGE_OPTS+=("--loglevel" "warning") -fi - -exec ${DELUGE_BIN} "${DELUGE_OPTS[@]}" "$@" diff --git a/apps/deluge/tests.yaml b/apps/deluge/tests.yaml deleted file mode 100644 index 09bfea29e..000000000 --- a/apps/deluge/tests.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - deluged: - running: true -port: - tcp:58846: - listening: true -file: - /usr/bin/python3: - exists: true - /usr/bin/unrar: - exists: true diff --git a/apps/emby/Dockerfile b/apps/emby/Dockerfile deleted file mode 100644 index 757eba5a8..000000000 --- a/apps/emby/Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/ubuntu:24.04 -ARG TARGETARCH -ARG VERSION - -ENV DEBIAN_FRONTEND="noninteractive" \ - NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" - -USER root - -RUN \ - apt-get update \ - && \ - apt-get install -y --no-install-recommends --no-install-suggests \ - bash \ - ca-certificates \ - catatonit \ - curl \ - jq \ - nano \ - tzdata \ - && \ - curl -fsSL -o /tmp/emby.deb \ - "https://github.com/MediaBrowser/Emby.Releases/releases/download/${VERSION}/emby-server-deb_${VERSION}_${TARGETARCH}.deb" \ - && \ - mkdir -p /app/bin /tmp/emby \ - && dpkg-deb -xv /tmp/emby.deb /tmp/emby/ \ - && mv -t /app/bin/ /tmp/emby/opt/emby-server/* \ - && chown -R root:root /app && chmod -R 755 /app \ - && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ - && apt-get autoremove -y \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -COPY . / - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/emby/docker-bake.hcl b/apps/emby/docker-bake.hcl deleted file mode 100644 index ef0ba7e43..000000000 --- a/apps/emby/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "emby" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=MediaBrowser/Emby.Releases versioning=loose - default = "4.8.11.0" -} - -group "default" { - targets = ["image-local"] -} - -variable "SOURCE" { - default = "https://github.com/MediaBrowser/Emby.Releases" -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/emby/entrypoint.sh b/apps/emby/entrypoint.sh deleted file mode 100755 index 3e585418f..000000000 --- a/apps/emby/entrypoint.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -APP_DIR="/app/bin" - -export AMDGPU_IDS="${APP_DIR}/extra/share/libdrm/amdgpu.ids" -export FONTCONFIG_PATH="${APP_DIR}/etc/fonts" -export LD_LIBRARY_PATH="${APP_DIR}/lib:${APP_DIR}/extra/lib" -export OCL_ICD_VENDORS="${APP_DIR}/extra/etc/OpenCL/vendors" -export PCI_IDS_PATH="${APP_DIR}/share/hwdata/pci.ids" -export SSL_CERT_FILE="${APP_DIR}/etc/ssl/certs/ca-certificates.crt" -if [ -d "/lib/x86_64-linux-gnu" ]; then - export LIBVA_DRIVERS_PATH="/usr/lib/x86_64-linux-gnu/dri:${APP_DIR}/extra/lib/dri" -fi - -exec \ - /app/bin/system/EmbyServer \ - -programdata /config \ - -ffdetect /app/bin/bin/ffdetect \ - -ffmpeg /app/bin/bin/ffmpeg \ - -ffprobe /app/bin/bin/ffprobe \ - -restartexitcode 3 \ - "$@" diff --git a/apps/emby/tests.yaml b/apps/emby/tests.yaml deleted file mode 100644 index 410f4a287..000000000 --- a/apps/emby/tests.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - EmbyServer: - running: true -port: - tcp6:8096: - listening: true -http: - http://localhost:8096: - status: 200 diff --git a/apps/esphome/Dockerfile b/apps/esphome/Dockerfile deleted file mode 100644 index 5d645b1d3..000000000 --- a/apps/esphome/Dockerfile +++ /dev/null @@ -1,56 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/python:3.13-slim -ARG VERSION - -ENV \ - CRYPTOGRAPHY_DONT_BUILD_RUST=1 \ - PIP_BREAK_SYSTEM_PACKAGES=1 \ - PIP_DISABLE_PIP_VERSION_CHECK=1 \ - PIP_NO_CACHE_DIR=1 \ - PIP_ROOT_USER_ACTION=ignore \ - PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 \ - UV_NO_CACHE=true \ - UV_SYSTEM_PYTHON=true \ - UV_EXTRA_INDEX_URL="https://wheels.home-assistant.io/musllinux/" - -ENV \ - HOME="/config" \ - PLATFORMIO_CORE_DIR=/cache/pio \ - ESPHOME_BUILD_PATH=/cache/build \ - ESPHOME_DATA_DIR=/cache/data - -USER root -WORKDIR /app - -RUN \ - apt-get update \ - && \ - apt-get install -y --no-install-recommends --no-install-suggests \ - ca-certificates \ - catatonit \ - curl \ - git \ - iputils-ping \ - libcairo2 \ - libmagic1 \ - openssh-client \ - patch \ - && pip install uv \ - && uv pip install \ - setuptools \ - "esphome[displays]==${VERSION}" \ - && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ - && apt-get autoremove -y \ - && apt-get clean \ - && rm -rf /tmp/* /var/{cache,log}/* /var/lib/apt/lists/* /usr/src/* - -COPY . / - -USER nobody:nogroup - -WORKDIR /config - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] -CMD ["dashboard", "/config"] diff --git a/apps/esphome/docker-bake.hcl b/apps/esphome/docker-bake.hcl deleted file mode 100644 index 346df72c8..000000000 --- a/apps/esphome/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "esphome" -} - -variable "VERSION" { - // renovate: datasource=pypi depName=esphome - default = "2025.7.5" -} - -variable "SOURCE" { - default = "https://github.com/esphome/esphome" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/esphome/entrypoint.sh b/apps/esphome/entrypoint.sh deleted file mode 100755 index 21763b290..000000000 --- a/apps/esphome/entrypoint.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -PLATFORMIO_CORE_DIR=${PLATFORMIO_CORE_DIR:-/cache/pio} -ESPHOME_BUILD_PATH=${ESPHOME_BUILD_PATH:-/cache/build} -ESPHOME_DATA_DIR=${ESPHOME_DATA_DIR:-/cache/data} - -# Make sure cache folders exist -mkdir -p "${PLATFORMIO_CORE_DIR}" -mkdir -p "${ESPHOME_BUILD_PATH}" -mkdir -p "${ESPHOME_DATA_DIR}" - -# Prune PIO files -pio system prune --force - -# Launch ESPHome -exec /usr/local/bin/esphome "$@" diff --git a/apps/esphome/tests.yaml b/apps/esphome/tests.yaml deleted file mode 100644 index 1dea53892..000000000 --- a/apps/esphome/tests.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - esphome: - running: true -port: - tcp:6052: - listening: true -http: - http://localhost:6052: - status: 200 diff --git a/apps/home-assistant/Dockerfile b/apps/home-assistant/Dockerfile index a387c9943..500214213 100644 --- a/apps/home-assistant/Dockerfile +++ b/apps/home-assistant/Dockerfile @@ -96,6 +96,8 @@ RUN \ && apk del --purge .build-deps \ && rm -rf /root/.cache /root/.cargo /tmp/* +RUN /bin/sed -i '/self\.negotiate_unix_fd = negotiate_unix_fd/a \ self.uid = UID_NOT_SPECIFIED' /usr/local/lib/python3.13/site-packages/dbus_fast/auth.py + COPY . / USER nobody:nogroup diff --git a/apps/home-assistant/docker-bake.hcl b/apps/home-assistant/docker-bake.hcl index f5dd96fd2..d03f25ba3 100644 --- a/apps/home-assistant/docker-bake.hcl +++ b/apps/home-assistant/docker-bake.hcl @@ -6,7 +6,7 @@ variable "APP" { variable "VERSION" { // renovate: datasource=pypi depName=homeassistant - default = "2025.7.4" + default = "2025.8.2" } variable "SOURCE" { diff --git a/apps/irqbalance/Dockerfile b/apps/irqbalance/Dockerfile deleted file mode 100644 index 1ef9b096e..000000000 --- a/apps/irqbalance/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/alpine:3.22 -ARG VERSION -USER root -RUN \ - apk add --no-cache \ - bash \ - irqbalance=="${VERSION}" \ - && rm -rf /tmp/* -ENTRYPOINT ["/usr/sbin/irqbalance", "--foreground"] diff --git a/apps/irqbalance/docker-bake.hcl b/apps/irqbalance/docker-bake.hcl deleted file mode 100644 index 2fabe158f..000000000 --- a/apps/irqbalance/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "irqbalance" -} - -variable "VERSION" { - // renovate: datasource=repology depName=alpine_3_22/irqbalance - default = "1.9.4-r1" -} - -variable "SOURCE" { - default = "https://github.com/irqbalance/irqbalance" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/irqbalance/tests.yaml b/apps/irqbalance/tests.yaml deleted file mode 100644 index 7511d093c..000000000 --- a/apps/irqbalance/tests.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - irqbalance: - running: true -file: - /usr/sbin/irqbalance: - exists: true diff --git a/apps/it-tools/Dockerfile b/apps/it-tools/Dockerfile deleted file mode 100644 index 489d6c037..000000000 --- a/apps/it-tools/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/node:22-alpine AS builder -ARG VERSION -WORKDIR /tmp -ADD https://github.com/CorentinTh/it-tools.git#${VERSION} . -RUN npm install -g corepack@latest \ - && corepack enable \ - && corepack prepare pnpm@latest --activate \ - && pnpm install --prefer-offline \ - && pnpm build - -FROM ghcr.io/nginxinc/nginx-unprivileged:1.27-alpine -ENV NGINX_ENTRYPOINT_WORKER_PROCESSES_AUTOTUNE=1 -COPY --from=builder --chown=nginx:nginx /tmp/dist/ /usr/share/nginx/html -USER nginx -WORKDIR /usr/share/nginx/html diff --git a/apps/it-tools/docker-bake.hcl b/apps/it-tools/docker-bake.hcl deleted file mode 100644 index b35ccf3f0..000000000 --- a/apps/it-tools/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "it-tools" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=CorentinTh/it-tools - default = "v2024.10.22-7ca5933" -} - -variable "SOURCE" { - default = "https://github.com/CorentinTh/it-tools" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/it-tools/tests.yaml b/apps/it-tools/tests.yaml deleted file mode 100644 index c7f6ee0a9..000000000 --- a/apps/it-tools/tests.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - nginx: - running: true -port: - tcp:8080: - listening: true -http: - http://localhost:8080: - status: 200 diff --git a/apps/jackett/Dockerfile b/apps/jackett/Dockerfile deleted file mode 100644 index 40e2f6a40..000000000 --- a/apps/jackett/Dockerfile +++ /dev/null @@ -1,36 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/alpine:3.22 -ARG TARGETARCH -ARG TARGETARCH=${TARGETARCH/arm64/ARM64} -ARG TARGETARCH=${TARGETARCH/amd64/AMDx64} -ARG VERSION - -ENV XDG_CONFIG_HOME=/config - -RUN \ - apk add --no-cache \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - icu-data-full \ - icu-libs \ - jq \ - libintl \ - nano \ - tzdata \ - && mkdir -p /app/bin \ - && curl -fsSL "https://github.com/Jackett/Jackett/releases/download/${VERSION}/Jackett.Binaries.LinuxMusl${TARGETARCH}.tar.gz" \ - | tar xzf - -C /app/bin --strip-components 1 \ - && chown -R root:root /app && chmod -R 755 /app \ - && rm -rf /tmp/* /app/bin/JackettUpdater* - -COPY . / - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/jackett/docker-bake.hcl b/apps/jackett/docker-bake.hcl deleted file mode 100644 index c897dad37..000000000 --- a/apps/jackett/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "jackett" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=Jackett/Jackett - default = "v0.22.2233" -} - -variable "SOURCE" { - default = "https://github.com/Jackett/Jackett" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/jackett/entrypoint.sh b/apps/jackett/entrypoint.sh deleted file mode 100755 index 374dc84b9..000000000 --- a/apps/jackett/entrypoint.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -exec \ - /app/bin/jackett \ - --NoUpdates \ - --ListenPublic \ - "$@" diff --git a/apps/jackett/tests.yaml b/apps/jackett/tests.yaml deleted file mode 100644 index 07fa36913..000000000 --- a/apps/jackett/tests.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - jackett: - running: true -port: - tcp6:9117: - listening: true -http: - http://localhost:9117: - status: 400 - body: - - Cookies required diff --git a/apps/jbops/Dockerfile b/apps/jbops/Dockerfile deleted file mode 100644 index a9fcea0d7..000000000 --- a/apps/jbops/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/python:3.13-alpine3.22 -ARG VERSION - -ENV \ - PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 \ - PIP_ROOT_USER_ACTION=ignore \ - PIP_NO_CACHE_DIR=1 \ - PIP_DISABLE_PIP_VERSION_CHECK=1 \ - PIP_BREAK_SYSTEM_PACKAGES=1 \ - CRYPTOGRAPHY_DONT_BUILD_RUST=1 - -ENV PLEXAPI_CONFIG_PATH="/config/config.ini" \ - JBOPS__SCRIPT_PATH="fun/plexapi_haiku.py" - -USER root -WORKDIR /app - -RUN apk add --no-cache \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - jq \ - nano \ - tzdata \ - && \ - apk add --no-cache --virtual=.build-deps \ - build-base \ - libffi-dev \ - openssl-dev \ - musl-dev \ - git \ - && \ - git clone --single-branch --branch "${VERSION}" https://github.com/blacktwin/JBOPS.git . \ - && \ - pip install --upgrade --requirement requirements.txt \ - && chown -R root:root /app && chmod -R 755 /app \ - && apk del --purge .build-deps \ - && rm -rf /root/.cache /root/.cargo /tmp/* /app/maps - -COPY . / - -USER nobody:nogroup - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/jbops/docker-bake.hcl b/apps/jbops/docker-bake.hcl deleted file mode 100644 index febf5c5bc..000000000 --- a/apps/jbops/docker-bake.hcl +++ /dev/null @@ -1,41 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "jbops" -} - -variable "VERSION" { - default = "master" -} - -variable "SOURCE" { - default = "https://github.com/blacktwin/JBOPS" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/jbops/entrypoint.sh b/apps/jbops/entrypoint.sh deleted file mode 100755 index 785d7aa61..000000000 --- a/apps/jbops/entrypoint.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -exec \ - /usr/local/bin/python \ - "/app/${JBOPS__SCRIPT_PATH}" \ - "$@" diff --git a/apps/jbops/tests.yaml b/apps/jbops/tests.yaml deleted file mode 100644 index 3fed026d2..000000000 --- a/apps/jbops/tests.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -schemaVersion: "2.0.0" -fileExistenceTests: - - name: plexapi_haiku - path: /app/fun/plexapi_haiku.py - shouldExist: true diff --git a/apps/k8s-sidecar/Dockerfile b/apps/k8s-sidecar/Dockerfile deleted file mode 100644 index bc29c849c..000000000 --- a/apps/k8s-sidecar/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -# syntax=docker/dockerfile:1 - -ARG VERSION -FROM ghcr.io/kiwigrid/k8s-sidecar:${VERSION} -USER root -RUN \ - apk add --no-cache \ - bash \ - ca-certificates \ - curl \ - jq \ - tzdata \ - && rm -rf /tmp/* -USER nobody:nogroup diff --git a/apps/k8s-sidecar/docker-bake.hcl b/apps/k8s-sidecar/docker-bake.hcl deleted file mode 100644 index a9a87675b..000000000 --- a/apps/k8s-sidecar/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "k8s-sidecar" -} - -variable "VERSION" { - // renovate: datasource=docker depName=ghcr.io/kiwigrid/k8s-sidecar - default = "1.30.7" -} - -variable "SOURCE" { - default = "https://github.com/kiwigrid/k8s-sidecar" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/k8s-sidecar/tests.yaml b/apps/k8s-sidecar/tests.yaml deleted file mode 100644 index 2b716a022..000000000 --- a/apps/k8s-sidecar/tests.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - python: - running: true diff --git a/apps/lidarr/Dockerfile b/apps/lidarr/Dockerfile deleted file mode 100644 index 1f07282bc..000000000 --- a/apps/lidarr/Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/alpine:3.22 -ARG TARGETARCH -ARG VENDOR -ARG VERSION - -ENV DOTNET_EnableDiagnostics=0 \ - LIDARR__UPDATE__BRANCH=develop - -USER root -WORKDIR /app - -RUN \ - apk add --no-cache \ - bash \ - ca-certificates \ - catatonit \ - chromaprint \ - coreutils \ - curl \ - ffmpeg \ - icu-libs \ - jq \ - libintl \ - nano \ - sqlite-libs \ - tzdata \ - && mkdir -p /app/bin \ - && curl -fsSL "https://lidarr.servarr.com/v1/update/${LIDARR__UPDATE__BRANCH}/updatefile?version=${VERSION}&os=linuxmusl&runtime=netcore&arch=${TARGETARCH/amd64/x64}" \ - | tar xzf - -C /app/bin --strip-components=1 \ - && printf "UpdateMethod=docker\nBranch=%s\nPackageVersion=%s\nPackageAuthor=[%s](https://github.com/%s)\n" "${LIDARR__UPDATE__BRANCH}" "${VERSION}" "${VENDOR}" "${VENDOR}" > /app/package_info \ - && chown -R root:root /app && chmod -R 755 /app \ - && rm -rf /tmp/* /app/bin/Lidarr.Update /app/bin/fpcalc - -COPY . / - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/lidarr/docker-bake.hcl b/apps/lidarr/docker-bake.hcl deleted file mode 100644 index 1494fea21..000000000 --- a/apps/lidarr/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "lidarr" -} - -variable "VERSION" { - // renovate: datasource=custom.servarr-develop depName=lidarr versioning=loose - default = "2.13.1.4681" -} - -variable "SOURCE" { - default = "https://github.com/Lidarr/Lidarr" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/lidarr/entrypoint.sh b/apps/lidarr/entrypoint.sh deleted file mode 100755 index c8bb766ce..000000000 --- a/apps/lidarr/entrypoint.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - - exec \ - /app/bin/Lidarr \ - --nobrowser \ - --data=/config \ - "$@" diff --git a/apps/lidarr/tests.yaml b/apps/lidarr/tests.yaml deleted file mode 100644 index 98d3550e7..000000000 --- a/apps/lidarr/tests.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - Lidarr: - running: true -port: - tcp6:8686: - listening: true -http: - http://localhost:8686: - status: 200 - timeout: 5000 diff --git a/apps/nzbget/Dockerfile b/apps/nzbget/Dockerfile deleted file mode 100644 index 5558f9041..000000000 --- a/apps/nzbget/Dockerfile +++ /dev/null @@ -1,51 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/python:3.13-alpine3.22 -ARG VERSION - -ENV \ - CRYPTOGRAPHY_DONT_BUILD_RUST=1 \ - PIP_BREAK_SYSTEM_PACKAGES=1 \ - PIP_DISABLE_PIP_VERSION_CHECK=1 \ - PIP_NO_CACHE_DIR=1 \ - PIP_ROOT_USER_ACTION=ignore \ - PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 \ - UV_NO_CACHE=true \ - UV_SYSTEM_PYTHON=true \ - UV_EXTRA_INDEX_URL="https://wheel-index.linuxserver.io/alpine-3.22/" - -USER root -WORKDIR /app - -RUN \ - apk add --no-cache \ - 7zip \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - jq \ - nano \ - tzdata \ - && \ - curl -fsSL -o /tmp/nzbget.run \ - "https://github.com/nzbgetcom/nzbget/releases/download/v${VERSION}/nzbget-${VERSION}-bin-linux.run" \ - && \ - sh /tmp/nzbget.run --destdir /app \ - && pip install uv \ - && uv pip install apprise pynzb requests \ - && chown -R root:root /app && chmod -R 755 /app \ - && pip uninstall --yes uv \ - && rm -rf /root/.cache /root/.cargo /tmp/* - -COPY . / - -COPY --from=ghcr.io/linuxserver/unrar:latest /usr/bin/unrar-alpine /usr/bin/unrar - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/nzbget/docker-bake.hcl b/apps/nzbget/docker-bake.hcl deleted file mode 100644 index 3dc4d7527..000000000 --- a/apps/nzbget/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "nzbget" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=nzbgetcom/nzbget versioning=loose - default = "25.2" -} - -variable "SOURCE" { - default = "https://github.com/nzbgetcom/nzbget" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/nzbget/entrypoint.sh b/apps/nzbget/entrypoint.sh deleted file mode 100755 index cac4f2439..000000000 --- a/apps/nzbget/entrypoint.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -CONFIG_FILE="/config/nzbget.conf" - -if [[ ! -f "${CONFIG_FILE}" ]]; then - cp /app/nzbget.conf "${CONFIG_FILE}" - sed -i \ - -e "s|^MainDir=.*|MainDir=/config/downloads|g" \ - -e "s|^QueueDir=.*|QueueDir=/config/queue|g" \ - -e "s|^LockFile=.*|LockFile=/config/nzbget.lock|g" \ - -e "s|^LogFile=.*|LogFile=/config/nzbget.log|g" \ - -e "s|^ShellOverride=.*|ShellOverride=.py=/usr/bin/python3;.sh=/bin/bash|g" \ - "${CONFIG_FILE}" -fi - -exec \ - /app/nzbget \ - --server \ - --option "OutputMode=log" \ - --configfile "${CONFIG_FILE}" \ - "$@" diff --git a/apps/nzbget/tests.yaml b/apps/nzbget/tests.yaml deleted file mode 100644 index 6954bad02..000000000 --- a/apps/nzbget/tests.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - nzbget: - running: true -port: - tcp:6789: - listening: true -http: - http://localhost:6789: - status: 200 diff --git a/apps/nzbhydra2/Dockerfile b/apps/nzbhydra2/Dockerfile deleted file mode 100644 index e7a2269ac..000000000 --- a/apps/nzbhydra2/Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/amazoncorretto:17-alpine3.22 - -ARG TARGETARCH -ARG VENDOR -ARG VERSION - -ENV JAVA_TOOL_OPTIONS="-Xmx256M" - -RUN \ - apk add --no-cache \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - freetype \ - jq \ - nano \ - tzdata \ - unzip \ - && mkdir -p /app/bin \ - && curl -fsSL -o /tmp/nzbhydra2.zip \ - "https://github.com/theotherp/nzbhydra2/releases/download/${VERSION}/nzbhydra2-${VERSION#*v}-generic.zip" \ - && unzip -q /tmp/nzbhydra2.zip -d /tmp \ - && cp /tmp/lib/core-${VERSION#*v}-exec.jar /app/bin/nzbhydra2.jar \ - && mkdir -p /defaults \ - && curl -fsSL -o /defaults/nzbhydra.yml \ - "https://raw.githubusercontent.com/theotherp/nzbhydra2/${VERSION}/core/src/main/resources/config/baseConfig.yml" \ - && sed -i 's/mapIpToHost: true/mapIpToHost: false/' /defaults/nzbhydra.yml \ - && sed -i 's/checkOpenPort: true/checkOpenPort: false/' /defaults/nzbhydra.yml \ - && chown -R root:root /app && chmod -R 755 /app \ - && rm -rf /tmp/* - -COPY . / - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/nzbhydra2/docker-bake.hcl b/apps/nzbhydra2/docker-bake.hcl deleted file mode 100644 index d8d7d2a4f..000000000 --- a/apps/nzbhydra2/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "nzbhydra2" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=theotherp/nzbhydra2 - default = "v7.16.0" -} - -variable "SOURCE" { - default = "https://github.com/theotherp/nzbhydra2" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/nzbhydra2/entrypoint.sh b/apps/nzbhydra2/entrypoint.sh deleted file mode 100755 index 09b813a31..000000000 --- a/apps/nzbhydra2/entrypoint.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -mkdir -p /config/logs - -if [[ ! -f /config/nzbhydra.yml ]]; then - cp /defaults/nzbhydra.yml /config/nzbhydra.yml -fi - -exec \ - java \ - -DfromWrapper \ - -noverify \ - -XX:TieredStopAtLevel=1 \ - -XX:+HeapDumpOnOutOfMemoryError \ - -XX:HeapDumpPath=/config/logs \ - -Xlog:gc:/config/logs/gclog-"$(date +"%F_%H-%M-%S")".log::filecount=5,filesize=5000 \ - -Dspring.output.ansi.enabled=ALWAYS \ - -Dsun.security.pkcs11.enable-solaris=false \ - -Dfile.encoding=UTF8 \ - -DinternalApiKey="${NZBHYDRA2__API_KEY:-}" \ - -jar /app/bin/nzbhydra2.jar \ - --datafolder /config \ - "$@" diff --git a/apps/nzbhydra2/tests.yaml b/apps/nzbhydra2/tests.yaml deleted file mode 100644 index 0904908b1..000000000 --- a/apps/nzbhydra2/tests.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - java: - running: true -port: - tcp6:5076: - listening: true -http: - http://localhost:5076: - status: 200 diff --git a/apps/opentofu-runner/Dockerfile b/apps/opentofu-runner/Dockerfile deleted file mode 100644 index 7883c1bcd..000000000 --- a/apps/opentofu-runner/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/alpine:3.22 AS builder -ARG TARGETARCH -ARG VERSION -RUN apk add --no-cache curl \ - && curl -fsSL "https://github.com/opentofu/opentofu/releases/download/v${VERSION}/tofu_${VERSION}_linux_${TARGETARCH}.tar.gz" \ - | tar xzf - -C /tmp - -FROM ghcr.io/flux-iac/tf-runner:v0.16.0-rc.5 -USER root -COPY --from=builder --chown=65532:65532 --chmod=755 /tmp/tofu /usr/local/bin/terraform -USER 65532:65532 diff --git a/apps/opentofu-runner/docker-bake.hcl b/apps/opentofu-runner/docker-bake.hcl deleted file mode 100644 index b08764d81..000000000 --- a/apps/opentofu-runner/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "opentofu-runner" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=opentofu/opentofu - default = "1.10.5" -} - -variable "SOURCE" { - default = "https://github.com/opentofu/opentofu" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/opentofu-runner/tests.yaml b/apps/opentofu-runner/tests.yaml deleted file mode 100644 index b1e9cb960..000000000 --- a/apps/opentofu-runner/tests.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -schemaVersion: "2.0.0" -fileExistenceTests: - - name: terraform - path: /usr/local/bin/terraform - shouldExist: true diff --git a/apps/plex/Dockerfile b/apps/plex/Dockerfile deleted file mode 100644 index 285695ea7..000000000 --- a/apps/plex/Dockerfile +++ /dev/null @@ -1,50 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/ubuntu:24.04 -ARG TARGETARCH -ARG VENDOR -ARG VERSION - -ENV DEBIAN_FRONTEND="noninteractive" \ - NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" \ - PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR="/config/Library/Application Support" \ - PLEX_MEDIA_SERVER_HOME="/usr/lib/plexmediaserver" \ - PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS="6" \ - PLEX_MEDIA_SERVER_INFO_VENDOR="Docker" \ - PLEX_MEDIA_SERVER_INFO_DEVICE="Docker Container (${VENDOR})" - -USER root -WORKDIR /app - -RUN \ - apt-get update \ - && \ - apt-get install -y --no-install-recommends --no-install-suggests \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - jq \ - nano \ - tzdata \ - uuid-runtime \ - xmlstarlet \ - && \ - curl -fsSL -o /tmp/plex.deb \ - "https://downloads.plex.tv/plex-media-server-new/${VERSION}/debian/plexmediaserver_${VERSION}_${TARGETARCH}.deb" \ - && \ - dpkg -i /tmp/plex.deb \ - && chmod -R 755 "${PLEX_MEDIA_SERVER_HOME}" \ - && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ - && apt-get autoremove -y \ - && apt-get clean \ - && rm -rf /etc/default/plexmediaserver /tmp/* /var/lib/apt/lists/* /var/tmp/ - -COPY . / - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/plex/docker-bake.hcl b/apps/plex/docker-bake.hcl deleted file mode 100644 index b1fbad115..000000000 --- a/apps/plex/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "plex" -} - -variable "VERSION" { - // renovate: datasource=custom.plex depName=plex versioning=loose - default = "1.41.9.9961-46083195d" -} - -variable "SOURCE" { - default = "https://github.com/plexinc/pms-docker" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/plex/entrypoint.sh b/apps/plex/entrypoint.sh deleted file mode 100755 index 337cd6fdc..000000000 --- a/apps/plex/entrypoint.sh +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/env bash - -export PLEX_MEDIA_SERVER_INFO_MODEL=$(uname -m) -export PLEX_MEDIA_SERVER_INFO_PLATFORM_VERSION=$(uname -r) - -function getPref { - local key="$1" - xmlstarlet sel -T -t -m "/Preferences" -v "@${key}" -n "${prefFile}" -} - -function setPref { - local key="$1" - local value="$2" - count="$(xmlstarlet sel -t -v "count(/Preferences/@${key})" "${prefFile}")" - count=$((count + 0)) - if [[ $count -gt 0 ]]; then - xmlstarlet ed --inplace --update "/Preferences/@${key}" -v "${value}" "${prefFile}" - else - xmlstarlet ed --inplace --insert "/Preferences" --type attr -n "${key}" -v "${value}" "${prefFile}" - fi -} - -prefFile="${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}/Plex Media Server/Preferences.xml" - -# Create empty Preferences.xml file if it doesn't exist already -if [ ! -e "${prefFile}" ]; then - echo "Creating pref shell" - mkdir -p "$(dirname "${prefFile}")" - cat > "${prefFile}" <<-EOF - - -EOF -fi - -# Setup Server's client identifier -serial="$(getPref "MachineIdentifier")" -if [[ -z "${serial}" ]]; then - serial="$(cat /proc/sys/kernel/random/uuid)" - setPref "MachineIdentifier" "${serial}" -fi -clientId="$(getPref "ProcessedMachineIdentifier")" -if [[ -z "${clientId}" ]]; then - clientId="$(echo -n "${serial}- Plex Media Server" | sha1sum | cut -b 1-40)" - setPref "ProcessedMachineIdentifier" "${clientId}" -fi - -# Get server token and only turn claim token into server token if we have former but not latter. -token="$(getPref "PlexOnlineToken")" -if [[ -n "${PLEX_CLAIM_TOKEN}" ]] && [[ -z "${token}" ]]; then - echo "Attempting to obtain server token from claim token..." - loginInfo="$(curl -fsSL -X POST \ - -H 'X-Plex-Client-Identifier: '"${clientId}" \ - -H 'X-Plex-Product: Plex Media Server'\ - -H 'X-Plex-Version: 1.1' \ - -H 'X-Plex-Provides: server' \ - -H 'X-Plex-Platform: Linux' \ - -H 'X-Plex-Platform-Version: 1.0' \ - -H 'X-Plex-Device-Name: PlexMediaServer' \ - -H 'X-Plex-Device: Linux' \ - "https://plex.tv/api/claim/exchange?token=${PLEX_CLAIM_TOKEN}")" - token="$(echo "$loginInfo" | sed -n 's/.*\(.*\)<\/authentication-token>.*/\1/p')" - - if [[ "$token" ]]; then - echo "Token obtained successfully!" - setPref "PlexOnlineToken" "${token}" - fi -fi - -# Set other preferences -[[ -n "${ADVERTISE_IP}" ]] && PLEX_ADVERTISE_URL=${ADVERTISE_IP} -if [[ -n "${PLEX_ADVERTISE_URL}" ]]; then - echo "Setting customConnections to: ${PLEX_ADVERTISE_URL}" - setPref "customConnections" "${PLEX_ADVERTISE_URL}" -fi - -[[ -n "${ALLOWED_NETWORKS}" ]] && PLEX_NO_AUTH_NETWORKS=${ALLOWED_NETWORKS} -if [[ -n "${PLEX_NO_AUTH_NETWORKS}" ]]; then - echo "Setting allowedNetworks to: ${PLEX_NO_AUTH_NETWORKS}" - setPref "allowedNetworks" "${PLEX_NO_AUTH_NETWORKS}" -fi - -# Set transcoder directory if not yet set -if [[ -z "$(getPref "TranscoderTempDirectory")" ]]; then - echo "Setting TranscoderTempDirectory to: /transcode" - setPref "TranscoderTempDirectory" "/transcode" -fi - -# Parse list of all exported variables that start with PLEX_PREFERENCE_ -# The format of which is PLEX_PREFERENCE_="Key=Value" -# Where Key is the EXACT key to use in the Plex Preference file -# And Value is the EXACT value to use in the Plex Preference file for that key. -# Please note it looks like many of the key's are camelCase in some fashion. -# Additionally there are likely some preferences where environment variable injection -# doesn't really work for. -for var in "${!PLEX_PREFERENCE_@}"; do - value="${!var}" - PreferenceValue="${value#*=}" - PreferenceKey="${value%=*}" - setPref "${PreferenceKey}" "${PreferenceValue}" -done - -# Remove pid file -rm -f "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}/Plex Media Server/plexmediaserver.pid" - -# Purge Codecs folder -if [[ "${PLEX_PURGE_CODECS}" == "true" ]]; then - echo "Purging Codecs folder..." - find "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}/Plex Media Server/Codecs" -mindepth 1 -not -name '.device-id' -print -delete -fi - -exec \ - /usr/lib/plexmediaserver/Plex\ Media\ Server \ - "$@" diff --git a/apps/plex/tests.yaml b/apps/plex/tests.yaml deleted file mode 100644 index c3f49e303..000000000 --- a/apps/plex/tests.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -port: - tcp6:32400: - listening: true diff --git a/apps/postgres-init/Dockerfile b/apps/postgres-init/Dockerfile deleted file mode 100644 index 5f15fdf8c..000000000 --- a/apps/postgres-init/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/alpine:3.22 -ARG VERSION -USER root -RUN \ - apk add --no-cache \ - bash \ - ca-certificates \ - catatonit \ - postgresql17-client=="${VERSION}" \ - && rm -rf /tmp/* -COPY . / -USER nobody:nogroup -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/postgres-init/docker-bake.hcl b/apps/postgres-init/docker-bake.hcl deleted file mode 100644 index fa2a9189f..000000000 --- a/apps/postgres-init/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "postgres-init" -} - -variable "VERSION" { - // renovate: datasource=repology depName=alpine_3_22/postgresql17-client versioning=loose - default = "17.5-r0" -} - -variable "SOURCE" { - default = "https://github.com/postgres/postgres" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/postgres-init/entrypoint.sh b/apps/postgres-init/entrypoint.sh deleted file mode 100755 index 7a855f981..000000000 --- a/apps/postgres-init/entrypoint.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env bash - -# This is most commonly set to the user 'postgres' -export INIT_POSTGRES_SUPER_USER=${INIT_POSTGRES_SUPER_USER:-postgres} -export INIT_POSTGRES_PORT=${INIT_POSTGRES_PORT:-5432} -export INIT_POSTGRES_UTF8=${INIT_POSTGRES_UTF8:-"false"} - -if [[ -z "${INIT_POSTGRES_HOST}" || - -z "${INIT_POSTGRES_SUPER_PASS}" || - -z "${INIT_POSTGRES_USER}" || - -z "${INIT_POSTGRES_PASS}" || - -z "${INIT_POSTGRES_DBNAME}" -]]; then - printf "\e[1;32m%-6s\e[m\n" "Invalid configuration - missing a required environment variable" - [[ -z "${INIT_POSTGRES_HOST}" ]] && printf "\e[1;32m%-6s\e[m\n" "INIT_POSTGRES_HOST: unset" - [[ -z "${INIT_POSTGRES_SUPER_PASS}" ]] && printf "\e[1;32m%-6s\e[m\n" "INIT_POSTGRES_SUPER_PASS: unset" - [[ -z "${INIT_POSTGRES_USER}" ]] && printf "\e[1;32m%-6s\e[m\n" "INIT_POSTGRES_USER: unset" - [[ -z "${INIT_POSTGRES_PASS}" ]] && printf "\e[1;32m%-6s\e[m\n" "INIT_POSTGRES_PASS: unset" - [[ -z "${INIT_POSTGRES_DBNAME}" ]] && printf "\e[1;32m%-6s\e[m\n" "INIT_POSTGRES_DBNAME: unset" - exit 1 -fi - -# These env are for the psql CLI -export PGHOST="${INIT_POSTGRES_HOST}" -export PGUSER="${INIT_POSTGRES_SUPER_USER}" -export PGPASSWORD="${INIT_POSTGRES_SUPER_PASS}" -export PGPORT="${INIT_POSTGRES_PORT}" - -until pg_isready; do - printf "\e[1;32m%-6s\e[m\n" "Waiting for Host '${PGHOST}' on port '${PGPORT}' ..." - sleep 1 -done - -user_exists=$(\ - psql \ - --tuples-only \ - --csv \ - --command "SELECT 1 FROM pg_roles WHERE rolname = '${INIT_POSTGRES_USER}'" -) - -if [[ -z "${user_exists}" ]]; then - printf "\e[1;32m%-6s\e[m\n" "Create User ${INIT_POSTGRES_USER} ..." - createuser ${INIT_POSTGRES_USER_FLAGS} "${INIT_POSTGRES_USER}" -fi - -printf "\e[1;32m%-6s\e[m\n" "Update password for user ${INIT_POSTGRES_USER} ..." -psql --command "alter user \"${INIT_POSTGRES_USER}\" with encrypted password '${INIT_POSTGRES_PASS}';" - -for dbname in ${INIT_POSTGRES_DBNAME}; do - database_exists=$(\ - psql \ - --tuples-only \ - --csv \ - --command "SELECT 1 FROM pg_database WHERE datname = '${dbname}'" - ) - if [[ -z "${database_exists}" ]]; then - if [[ "${INIT_POSTGRES_UTF8}" == "true" ]]; then - printf "\e[1;32m%-6s\e[m\n" "Create Database ${dbname} with UTF8 encoding ..." - createdb --template template0 --encoding UTF8 --owner "${INIT_POSTGRES_USER}" "${dbname}" - else - printf "\e[1;32m%-6s\e[m\n" "Create Database ${dbname} ..." - createdb --owner "${INIT_POSTGRES_USER}" "${dbname}" - fi - database_init_file="/initdb/${dbname}.sql" - if [[ -f "${database_init_file}" ]]; then - printf "\e[1;32m%-6s\e[m\n" "Initialize Database ..." - psql \ - --dbname "${dbname}" \ - --echo-all \ - --file "${database_init_file}" - fi - fi - printf "\e[1;32m%-6s\e[m\n" "Update User Privileges on Database ..." - psql --command "grant all privileges on database \"${dbname}\" to \"${INIT_POSTGRES_USER}\";" -done diff --git a/apps/postgres-init/tests.yaml b/apps/postgres-init/tests.yaml deleted file mode 100644 index 78f7ee51c..000000000 --- a/apps/postgres-init/tests.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -schemaVersion: "2.0.0" -fileExistenceTests: - - name: psql - path: /usr/libexec/postgresql17/psql - shouldExist: true diff --git a/apps/prowlarr/Dockerfile b/apps/prowlarr/Dockerfile deleted file mode 100644 index b8d5f3ed4..000000000 --- a/apps/prowlarr/Dockerfile +++ /dev/null @@ -1,40 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/alpine:3.22 -ARG TARGETARCH -ARG VENDOR -ARG VERSION - -ENV DOTNET_EnableDiagnostics=0 \ - PROWLARR__UPDATE__BRANCH=develop - -USER root -WORKDIR /app - -RUN \ - apk add --no-cache \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - icu-libs \ - jq \ - libintl \ - nano \ - sqlite-libs \ - tzdata \ - && mkdir -p /app/bin \ - && curl -fsSL "https://prowlarr.servarr.com/v1/update/${PROWLARR__UPDATE__BRANCH}/updatefile?version=${VERSION}&os=linuxmusl&runtime=netcore&arch=${TARGETARCH/amd64/x64}" \ - | tar xzf - -C /app/bin --strip-components=1 \ - && printf "UpdateMethod=docker\nBranch=%s\nPackageVersion=%s\nPackageAuthor=[%s](https://github.com/%s)\n" "${PROWLARR__UPDATE__BRANCH}" "${VERSION}" "${VENDOR}" "${VENDOR}" > /app/package_info \ - && chown -R root:root /app && chmod -R 755 /app \ - && rm -rf /tmp/* /app/bin/Prowlarr.Update - -COPY . / - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/prowlarr/docker-bake.hcl b/apps/prowlarr/docker-bake.hcl deleted file mode 100644 index dcfeaf759..000000000 --- a/apps/prowlarr/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "prowlarr" -} - -variable "VERSION" { - // renovate: datasource=custom.servarr-develop depName=prowlarr versioning=loose - default = "2.0.2.5116" -} - -variable "SOURCE" { - default = "https://github.com/Prowlarr/Prowlarr" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/prowlarr/entrypoint.sh b/apps/prowlarr/entrypoint.sh deleted file mode 100755 index ffb77c602..000000000 --- a/apps/prowlarr/entrypoint.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -exec \ - /app/bin/Prowlarr \ - --nobrowser \ - --data=/config \ - "$@" diff --git a/apps/prowlarr/tests.yaml b/apps/prowlarr/tests.yaml deleted file mode 100644 index 7867d50db..000000000 --- a/apps/prowlarr/tests.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - Prowlarr: - running: true -port: - tcp6:9696: - listening: true -http: - http://localhost:9696: - status: 200 - timeout: 5000 diff --git a/apps/qbittorrent/Dockerfile b/apps/qbittorrent/Dockerfile deleted file mode 100644 index d07a81769..000000000 --- a/apps/qbittorrent/Dockerfile +++ /dev/null @@ -1,50 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/python:3.13-alpine3.22 -ARG TARGETARCH -ARG QBARCH=${TARGETARCH/arm64/aarch64} -ARG QBARCH=${QBARCH/amd64/x86_64} -ARG VERSION - -# renovate: datasource=github-releases depName=ludviglundgren/qbittorrent-cli -ARG QBITORRENT_CLI_VERSION=v2.2.0 - -ENV QBT_CONFIRM_LEGAL_NOTICE=1 \ - HOME="/config" \ - XDG_CONFIG_HOME="/config" \ - XDG_DATA_HOME="/config" - -USER root -WORKDIR /app - -RUN \ - apk add --no-cache \ - 7zip \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - jq \ - nano \ - tzdata \ - && \ - mkdir -p /app \ - && LIBTORRENT=$(curl -sL "https://github.com/userdocs/qbittorrent-nox-static/releases/latest/download/dependency-version.json" | jq -r '.libtorrent_2_0') \ - && curl -fsSL -o /app/qbittorrent-nox "https://github.com/userdocs/qbittorrent-nox-static/releases/download/release-${VERSION}_v${LIBTORRENT}/${QBARCH}-qbittorrent-nox" \ - && chown -R root:root /app/qbittorrent-nox \ - && chmod -R 755 /app/qbittorrent-nox \ - && \ - curl -fsSL https://github.com/ludviglundgren/qbittorrent-cli/releases/download/${QBITORRENT_CLI_VERSION}/qbittorrent-cli_${QBITORRENT_CLI_VERSION#*v}_linux_${TARGETARCH}.tar.gz \ - | tar xzf - -C /usr/local/bin \ - && rm -rf /tmp/* - -COPY . / - -COPY --from=ghcr.io/linuxserver/unrar:latest /usr/bin/unrar-alpine /usr/bin/unrar - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/qbittorrent/defaults/qBittorrent.conf b/apps/qbittorrent/defaults/qBittorrent.conf deleted file mode 100644 index 744aef431..000000000 --- a/apps/qbittorrent/defaults/qBittorrent.conf +++ /dev/null @@ -1,32 +0,0 @@ -[AutoRun] -enabled=false -program= - -[LegalNotice] -Accepted=true - -[BitTorrent] -Session\AsyncIOThreadsCount=10 -Session\DiskCacheSize=-1 -Session\DiskIOReadMode=DisableOSCache -Session\DiskIOType=SimplePreadPwrite -Session\DiskIOWriteMode=EnableOSCache -Session\DiskQueueSize=4194304 -Session\FilePoolSize=40 -Session\HashingThreadsCount=2 -Session\Port=50413 -Session\ResumeDataStorageType=SQLite -Session\UseOSCache=true - -[Preferences] -Connection\PortRangeMin=6881 -Connection\UPnP=false -General\Locale=en -General\UseRandomPort=false -WebUI\Address=* -WebUI\CSRFProtection=false -WebUI\HostHeaderValidation=false -WebUI\LocalHostAuth=false -WebUI\Port=8080 -WebUI\ServerDomains=* -WebUI\UseUPnP=false diff --git a/apps/qbittorrent/docker-bake.hcl b/apps/qbittorrent/docker-bake.hcl deleted file mode 100644 index db9d1601a..000000000 --- a/apps/qbittorrent/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "qbittorrent" -} - -variable "VERSION" { - // renovate: datasource=custom.qbittorrent depName=qbittorrent - default = "5.1.2" -} - -variable "SOURCE" { - default = "https://github.com/qbittorrent/qBittorrent" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/qbittorrent/entrypoint.sh b/apps/qbittorrent/entrypoint.sh deleted file mode 100755 index 866313c1d..000000000 --- a/apps/qbittorrent/entrypoint.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -CONFIG_FILE="/config/qBittorrent/qBittorrent.conf" -LOG_FILE="/config/qBittorrent/logs/qbittorrent.log" - -# Ensure the config file exists, copy default if missing -if [[ ! -f "${CONFIG_FILE}" ]]; then - mkdir -p "${CONFIG_FILE%/*}" - cp /defaults/qBittorrent.conf "${CONFIG_FILE}" -fi - -# Set up log file to redirect to stdout -if [[ ! -f "${LOG_FILE}" ]]; then - mkdir -p "${LOG_FILE%/*}" - ln -sf /proc/self/fd/1 "${LOG_FILE}" -fi - -# Execute qBittorrent -exec /app/qbittorrent-nox "$@" diff --git a/apps/qbittorrent/tests.yaml b/apps/qbittorrent/tests.yaml deleted file mode 100644 index 85a7d919f..000000000 --- a/apps/qbittorrent/tests.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - qbittorrent-nox: - running: true -port: - tcp6:8080: - listening: true -http: - http://localhost:8080: - status: 200 -file: - /usr/local/bin/python: - exists: true - /usr/bin/unrar: - exists: true - /usr/local/bin/qbt: - exists: true diff --git a/apps/radarr/Dockerfile b/apps/radarr/Dockerfile deleted file mode 100644 index 62a127f0b..000000000 --- a/apps/radarr/Dockerfile +++ /dev/null @@ -1,40 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/alpine:3.22 -ARG TARGETARCH -ARG VENDOR -ARG VERSION - -ENV DOTNET_EnableDiagnostics=0 \ - RADARR__UPDATE__BRANCH=develop - -USER root -WORKDIR /app - -RUN \ - apk add --no-cache \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - icu-libs \ - jq \ - libintl \ - nano \ - sqlite-libs \ - tzdata \ - && mkdir -p /app/bin \ - && curl -fsSL "https://radarr.servarr.com/v1/update/${RADARR__UPDATE__BRANCH}/updatefile?version=${VERSION}&os=linuxmusl&runtime=netcore&arch=${TARGETARCH/amd64/x64}" \ - | tar xzf - -C /app/bin --strip-components=1 \ - && printf "UpdateMethod=docker\nBranch=%s\nPackageVersion=%s\nPackageAuthor=[%s](https://github.com/%s)\n" "${RADARR__UPDATE__BRANCH}" "${VERSION}" "${VENDOR}" "${VENDOR}" > /app/package_info \ - && chown -R root:root /app && chmod -R 755 /app \ - && rm -rf /tmp/* /app/bin/Radarr.Update - -COPY . / - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/radarr/docker-bake.hcl b/apps/radarr/docker-bake.hcl deleted file mode 100644 index 6841c7033..000000000 --- a/apps/radarr/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "radarr" -} - -variable "VERSION" { - // renovate: datasource=custom.servarr-develop depName=radarr versioning=loose - default = "5.27.3.10153" -} - -variable "SOURCE" { - default = "https://github.com/Radarr/Radarr" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/radarr/entrypoint.sh b/apps/radarr/entrypoint.sh deleted file mode 100755 index 5f2262ad2..000000000 --- a/apps/radarr/entrypoint.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -exec \ - /app/bin/Radarr \ - --nobrowser \ - --data=/config \ - "$@" diff --git a/apps/radarr/tests.yaml b/apps/radarr/tests.yaml deleted file mode 100644 index 0c9d8c5d8..000000000 --- a/apps/radarr/tests.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - Radarr: - running: true -port: - tcp6:7878: - listening: true -http: - http://localhost:7878: - status: 200 - timeout: 5000 diff --git a/apps/sabnzbd/Dockerfile b/apps/sabnzbd/Dockerfile deleted file mode 100644 index 4df8a2dcd..000000000 --- a/apps/sabnzbd/Dockerfile +++ /dev/null @@ -1,63 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/python:3.13-alpine3.22 -ARG VERSION - -ENV \ - CRYPTOGRAPHY_DONT_BUILD_RUST=1 \ - PIP_BREAK_SYSTEM_PACKAGES=1 \ - PIP_DISABLE_PIP_VERSION_CHECK=1 \ - PIP_NO_CACHE_DIR=1 \ - PIP_ROOT_USER_ACTION=ignore \ - PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 \ - UV_NO_CACHE=true \ - UV_SYSTEM_PYTHON=true \ - UV_EXTRA_INDEX_URL="https://wheel-index.linuxserver.io/alpine-3.22/" - -ENV SABNZBD__ADDRESS="[::]" \ - SABNZBD__PORT="8080" - -USER root -WORKDIR /app - -RUN \ - apk add --no-cache \ - 7zip \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - jq \ - nano \ - tzdata \ - && \ - apk add --no-cache --repository="https://dl-cdn.alpinelinux.org/alpine/edge/testing/" \ - par2cmdline-turbo \ - && \ - apk add --no-cache --virtual=.build-deps \ - build-base \ - cargo \ - libffi-dev \ - musl-dev \ - openssl-dev \ - && mkdir -p /app \ - && curl -fsSL "https://github.com/sabnzbd/sabnzbd/releases/download/${VERSION}/SABnzbd-${VERSION}-src.tar.gz" \ - | tar xzf - -C /app --strip-components=1 \ - && python tools/make_mo.py \ - && pip install uv \ - && uv pip install --requirement /app/requirements.txt \ - && chown -R root:root /app && chmod -R 755 /app \ - && pip uninstall --yes uv && apk del --purge .build-deps \ - && rm -rf /root/.cache /root/.cargo /tmp/* - -COPY . / - -COPY --from=ghcr.io/linuxserver/unrar:latest /usr/bin/unrar-alpine /usr/bin/unrar - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/sabnzbd/defaults/sabnzbd.ini b/apps/sabnzbd/defaults/sabnzbd.ini deleted file mode 100644 index 8884a0453..000000000 --- a/apps/sabnzbd/defaults/sabnzbd.ini +++ /dev/null @@ -1,304 +0,0 @@ -__version__ = 19 -__encoding__ = utf-8 -[misc] -pre_script = None -queue_complete = "" -queue_complete_pers = 0 -bandwidth_perc = 100 -refresh_rate = 0 -interface_settings = "" -queue_limit = 20 -config_lock = 0 -sched_converted = 0 -notified_new_skin = 0 -direct_unpack_tested = 0 -check_new_rel = 1 -auto_browser = 0 -language = en -enable_https_verification = 1 -host = 0.0.0.0 -port = 8080 -https_port = "" -username = "" -password = "" -bandwidth_max = "" -cache_limit = "" -web_dir = Glitter -web_color = "" -https_cert = server.cert -https_key = server.key -https_chain = "" -enable_https = 0 -inet_exposure = 0 -local_ranges = , -api_key = "" -nzb_key = "" -permissions = "" -download_dir = Downloads/incomplete -download_free = "" -complete_dir = Downloads/complete -complete_free = "" -fulldisk_autoresume = 0 -script_dir = "" -nzb_backup_dir = "" -admin_dir = admin -dirscan_dir = "" -dirscan_speed = 5 -password_file = "" -log_dir = logs -max_art_tries = 3 -load_balancing = 2 -top_only = 0 -sfv_check = 1 -quick_check_ext_ignore = nfo, sfv, srr -script_can_fail = 0 -enable_recursive = 1 -flat_unpack = 0 -par_option = "" -pre_check = 0 -nice = "" -win_process_prio = 3 -ionice = "" -fail_hopeless_jobs = 1 -fast_fail = 1 -auto_disconnect = 1 -no_dupes = 0 -no_series_dupes = 0 -series_propercheck = 1 -pause_on_pwrar = 1 -ignore_samples = 0 -deobfuscate_final_filenames = 0 -auto_sort = "" -direct_unpack = 0 -direct_unpack_threads = 3 -propagation_delay = 0 -folder_rename = 1 -replace_spaces = 0 -replace_dots = 0 -safe_postproc = 1 -pause_on_post_processing = 0 -sanitize_safe = 0 -cleanup_list = , -unwanted_extensions = , -action_on_unwanted_extensions = 0 -new_nzb_on_failure = 0 -history_retention = 0 -enable_meta = 1 -quota_size = "" -quota_day = "" -quota_resume = 0 -quota_period = m -rating_enable = 0 -rating_host = "" -rating_api_key = "" -rating_filter_enable = 0 -rating_filter_abort_audio = 0 -rating_filter_abort_video = 0 -rating_filter_abort_encrypted = 0 -rating_filter_abort_encrypted_confirm = 0 -rating_filter_abort_spam = 0 -rating_filter_abort_spam_confirm = 0 -rating_filter_abort_downvoted = 0 -rating_filter_abort_keywords = "" -rating_filter_pause_audio = 0 -rating_filter_pause_video = 0 -rating_filter_pause_encrypted = 0 -rating_filter_pause_encrypted_confirm = 0 -rating_filter_pause_spam = 0 -rating_filter_pause_spam_confirm = 0 -rating_filter_pause_downvoted = 0 -rating_filter_pause_keywords = "" -enable_tv_sorting = 0 -tv_sort_string = "" -tv_sort_countries = 1 -tv_categories = "" -enable_movie_sorting = 0 -movie_sort_string = "" -movie_sort_extra = -cd%1 -movie_extra_folder = 0 -movie_categories = movies, -enable_date_sorting = 0 -date_sort_string = "" -date_categories = tv, -schedlines = , -rss_rate = 60 -ampm = 0 -replace_illegal = 1 -start_paused = 0 -enable_all_par = 0 -enable_par_cleanup = 1 -enable_unrar = 1 -enable_unzip = 1 -enable_7zip = 1 -enable_filejoin = 1 -enable_tsjoin = 1 -overwrite_files = 0 -ignore_unrar_dates = 0 -backup_for_duplicates = 1 -empty_postproc = 0 -wait_for_dfolder = 0 -rss_filenames = 0 -api_logging = 1 -html_login = 1 -osx_menu = 1 -osx_speed = 1 -warn_dupl_jobs = 1 -helpfull_warnings = 1 -keep_awake = 1 -win_menu = 1 -allow_incomplete_nzb = 0 -enable_broadcast = 1 -max_art_opt = 0 -ipv6_hosting = 0 -fixed_ports = 1 -api_warnings = 1 -disable_api_key = 0 -no_penalties = 0 -x_frame_options = 1 -require_modern_tls = 0 -num_decoders = 3 -rss_odd_titles = nzbindex.nl/, nzbindex.com/, nzbclub.com/ -req_completion_rate = 100.2 -selftest_host = self-test.sabnzbd.org -movie_rename_limit = 100M -size_limit = 0 -show_sysload = 2 -history_limit = 10 -wait_ext_drive = 5 -max_foldername_length = 246 -nomedia_marker = "" -ipv6_servers = 1 -url_base = /sabnzbd -host_whitelist = 2b4152ea8457, -max_url_retries = 10 -downloader_sleep_time = 10 -ssdp_broadcast_interval = 15 -email_server = "" -email_to = , -email_from = "" -email_account = "" -email_pwd = "" -email_endjob = 0 -email_full = 0 -email_dir = "" -email_rss = 0 -email_cats = *, -[logging] -log_level = 1 -max_log_size = 5242880 -log_backups = 5 -[ncenter] -ncenter_enable = 0 -ncenter_cats = *, -ncenter_prio_startup = 1 -ncenter_prio_download = 0 -ncenter_prio_pause_resume = 0 -ncenter_prio_pp = 0 -ncenter_prio_complete = 1 -ncenter_prio_failed = 1 -ncenter_prio_disk_full = 1 -ncenter_prio_new_login = 0 -ncenter_prio_warning = 0 -ncenter_prio_error = 0 -ncenter_prio_queue_done = 1 -ncenter_prio_other = 1 -[acenter] -acenter_enable = 0 -acenter_cats = *, -acenter_prio_startup = 0 -acenter_prio_download = 0 -acenter_prio_pause_resume = 0 -acenter_prio_pp = 0 -acenter_prio_complete = 1 -acenter_prio_failed = 1 -acenter_prio_disk_full = 1 -acenter_prio_new_login = 0 -acenter_prio_warning = 0 -acenter_prio_error = 0 -acenter_prio_queue_done = 1 -acenter_prio_other = 1 -[ntfosd] -ntfosd_enable = 1 -ntfosd_cats = *, -ntfosd_prio_startup = 1 -ntfosd_prio_download = 0 -ntfosd_prio_pause_resume = 0 -ntfosd_prio_pp = 0 -ntfosd_prio_complete = 1 -ntfosd_prio_failed = 1 -ntfosd_prio_disk_full = 1 -ntfosd_prio_new_login = 0 -ntfosd_prio_warning = 0 -ntfosd_prio_error = 0 -ntfosd_prio_queue_done = 1 -ntfosd_prio_other = 1 -[prowl] -prowl_enable = 0 -prowl_cats = *, -prowl_apikey = "" -prowl_prio_startup = -3 -prowl_prio_download = -3 -prowl_prio_pause_resume = -3 -prowl_prio_pp = -3 -prowl_prio_complete = 0 -prowl_prio_failed = 1 -prowl_prio_disk_full = 1 -prowl_prio_new_login = -3 -prowl_prio_warning = -3 -prowl_prio_error = -3 -prowl_prio_queue_done = 0 -prowl_prio_other = 0 -[pushover] -pushover_token = "" -pushover_userkey = "" -pushover_device = "" -pushover_emergency_expire = 3600 -pushover_emergency_retry = 60 -pushover_enable = 0 -pushover_cats = *, -pushover_prio_startup = -3 -pushover_prio_download = -2 -pushover_prio_pause_resume = -2 -pushover_prio_pp = -3 -pushover_prio_complete = -1 -pushover_prio_failed = -1 -pushover_prio_disk_full = 1 -pushover_prio_new_login = -3 -pushover_prio_warning = 1 -pushover_prio_error = 1 -pushover_prio_queue_done = -1 -pushover_prio_other = -1 -[pushbullet] -pushbullet_enable = 0 -pushbullet_cats = *, -pushbullet_apikey = "" -pushbullet_device = "" -pushbullet_prio_startup = 0 -pushbullet_prio_download = 0 -pushbullet_prio_pause_resume = 0 -pushbullet_prio_pp = 0 -pushbullet_prio_complete = 1 -pushbullet_prio_failed = 1 -pushbullet_prio_disk_full = 1 -pushbullet_prio_new_login = 0 -pushbullet_prio_warning = 0 -pushbullet_prio_error = 0 -pushbullet_prio_queue_done = 0 -pushbullet_prio_other = 1 -[nscript] -nscript_enable = 0 -nscript_cats = *, -nscript_script = "" -nscript_parameters = "" -nscript_prio_startup = 1 -nscript_prio_download = 0 -nscript_prio_pause_resume = 0 -nscript_prio_pp = 0 -nscript_prio_complete = 1 -nscript_prio_failed = 1 -nscript_prio_disk_full = 1 -nscript_prio_new_login = 0 -nscript_prio_warning = 0 -nscript_prio_error = 0 -nscript_prio_queue_done = 1 -nscript_prio_other = 1 diff --git a/apps/sabnzbd/docker-bake.hcl b/apps/sabnzbd/docker-bake.hcl deleted file mode 100644 index ca28cc40d..000000000 --- a/apps/sabnzbd/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "sabnzbd" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=sabnzbd/sabnzbd - default = "4.5.2" -} - -variable "SOURCE" { - default = "https://github.com/sabnzbd/sabnzbd" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/sabnzbd/entrypoint.sh b/apps/sabnzbd/entrypoint.sh deleted file mode 100755 index 269ec817f..000000000 --- a/apps/sabnzbd/entrypoint.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash - -if [[ ! -f "/config/sabnzbd.ini" ]]; then - printf "Copying over default configuration ...\n" - mkdir -p /config/sabnzbd - cp /defaults/sabnzbd.ini /config/sabnzbd.ini - - printf "Creating api keys ...\n" - api_key=$(tr -dc 'a-z0-9' < /dev/urandom | fold -w 32 | head -n 1) - nzb_key=$(tr -dc 'a-z0-9' < /dev/urandom | fold -w 32 | head -n 1) - sed -i -e "s|^api_key *=.*$|api_key = ${api_key}|g" /config/sabnzbd.ini - sed -i -e "s|^nzb_key *=.*$|nzb_key = ${nzb_key}|g" /config/sabnzbd.ini -fi - -[[ -n "${SABNZBD__API_KEY}" ]] && sed -i -e "s|^api_key *=.*$|api_key = ${SABNZBD__API_KEY}|g" /config/sabnzbd.ini -[[ -n "${SABNZBD__NZB_KEY}" ]] && sed -i -e "s|^nzb_key *=.*$|nzb_key = ${SABNZBD__NZB_KEY}|g" /config/sabnzbd.ini -[[ -n "${SABNZBD__HOST_WHITELIST_ENTRIES}" ]] && sed -i -e "s|^host_whitelist *=.*$|host_whitelist = ${HOSTNAME:-sabnzbd}, ${SABNZBD__HOST_WHITELIST_ENTRIES}|g" /config/sabnzbd.ini -[[ -n "${SABNZBD__LOCAL_RANGES_ENTRIES}" ]] && sed -i -e "s|^local_ranges *=.*$|local_ranges = ${SABNZBD__LOCAL_RANGES_ENTRIES}|g" /config/sabnzbd.ini - -exec \ - /usr/local/bin/python \ - /app/SABnzbd.py \ - --browser 0 \ - --server ${SABNZBD__ADDRESS}:${SABNZBD__PORT} \ - --config-file /config/sabnzbd.ini \ - --console \ - "$@" diff --git a/apps/sabnzbd/tests.yaml b/apps/sabnzbd/tests.yaml deleted file mode 100644 index 0f67b8cba..000000000 --- a/apps/sabnzbd/tests.yaml +++ /dev/null @@ -1,27 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - python: - running: true -port: - tcp6:8080: - listening: true -http: - http://localhost:8080/sabnzbd: - status: 200 -file: - /usr/local/bin/python: - exists: true - /usr/bin/unrar: - exists: true - /usr/bin/par2: - exists: true - /usr/bin/par2create: - exists: true - filetype: symlink - /usr/bin/par2repair: - exists: true - filetype: symlink - /usr/bin/par2verify: - exists: true - filetype: symlink diff --git a/apps/smartctl-exporter/Dockerfile b/apps/smartctl-exporter/Dockerfile deleted file mode 100644 index 46a1136c2..000000000 --- a/apps/smartctl-exporter/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/alpine:3.22 -ARG VERSION -ARG TARGETOS -ARG TARGETARCH -ARG TARGETPLATFORM - -RUN apk add --no-cache smartmontools \ - && wget "https://github.com/prometheus-community/smartctl_exporter/releases/download/v$VERSION/smartctl_exporter-$VERSION.$TARGETOS-$TARGETARCH.tar.gz" \ - && tar xvzf smartctl_exporter-$VERSION.$TARGETOS-$TARGETARCH.tar.gz \ - && ls -l smartctl_exporter-$VERSION.$TARGETOS-$TARGETARCH.tar.gz \ - && mv smartctl_exporter-$VERSION.$TARGETOS-$TARGETARCH/smartctl_exporter /bin/smartctl_exporter \ - && chmod +x /bin/smartctl_exporter \ - && rm -rf smartctl_exporter* - -USER nobody -ENTRYPOINT ["/bin/smartctl_exporter"] diff --git a/apps/smartctl-exporter/docker-bake.hcl b/apps/smartctl-exporter/docker-bake.hcl deleted file mode 100644 index 1af6f1457..000000000 --- a/apps/smartctl-exporter/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "smartctl-exporter" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=prometheus-community/smartctl_exporter - default = "0.14.0" -} - -variable "SOURCE" { - default = "https://github.com/prometheus-community/smartctl_exporter" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/smartctl-exporter/tests.yaml b/apps/smartctl-exporter/tests.yaml deleted file mode 100644 index e244fddca..000000000 --- a/apps/smartctl-exporter/tests.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -file: - /bin/smartctl_exporter: - exists: true -port: - tcp6:9633: - listening: true diff --git a/apps/sonarr/Dockerfile b/apps/sonarr/Dockerfile deleted file mode 100644 index 11b60b3d5..000000000 --- a/apps/sonarr/Dockerfile +++ /dev/null @@ -1,40 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/alpine:3.22 -ARG TARGETARCH -ARG VENDOR -ARG VERSION - -ENV DOTNET_EnableDiagnostics=0 \ - SONARR__UPDATE__BRANCH=develop - -USER root -WORKDIR /app - -RUN \ - apk add --no-cache \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - icu-libs \ - jq \ - libintl \ - nano \ - sqlite-libs \ - tzdata \ - && mkdir -p /app/bin \ - && curl -fsSL "https://services.sonarr.tv/v1/update/${SONARR__UPDATE__BRANCH}/download?version=${VERSION}&os=linuxmusl&runtime=netcore&arch=${TARGETARCH/amd64/x64}" \ - | tar xzf - -C /app/bin --strip-components=1 \ - && printf "UpdateMethod=docker\nBranch=%s\nPackageVersion=%s\nPackageAuthor=[%s](https://github.com/%s)\n" "${SONARR__UPDATE__BRANCH}" "${VERSION}" "${VENDOR}" "${VENDOR}" > /app/package_info \ - && chown -R root:root /app && chmod -R 755 /app \ - && rm -rf /tmp/* /app/bin/Sonarr.Update - -COPY . / - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/sonarr/docker-bake.hcl b/apps/sonarr/docker-bake.hcl deleted file mode 100644 index 5c0d4ba70..000000000 --- a/apps/sonarr/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "sonarr" -} - -variable "VERSION" { - // renovate: datasource=custom.sonarr-develop depName=sonarr versioning=loose - default = "4.0.15.2940" -} - -variable "SOURCE" { - default = "https://github.com/Sonarr/Sonarr" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/sonarr/entrypoint.sh b/apps/sonarr/entrypoint.sh deleted file mode 100755 index 6752edf9b..000000000 --- a/apps/sonarr/entrypoint.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -exec \ - /app/bin/Sonarr \ - --nobrowser \ - --data=/config \ - "$@" diff --git a/apps/sonarr/tests.yaml b/apps/sonarr/tests.yaml deleted file mode 100644 index 6d8a67faa..000000000 --- a/apps/sonarr/tests.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - Sonarr: - running: true -port: - tcp6:8989: - listening: true -http: - http://localhost:8989: - status: 200 diff --git a/apps/tautulli/Dockerfile b/apps/tautulli/Dockerfile deleted file mode 100644 index 0a4d48222..000000000 --- a/apps/tautulli/Dockerfile +++ /dev/null @@ -1,58 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/python:3.13-alpine3.22 -ARG VERSION - -ENV \ - CRYPTOGRAPHY_DONT_BUILD_RUST=1 \ - PIP_BREAK_SYSTEM_PACKAGES=1 \ - PIP_DISABLE_PIP_VERSION_CHECK=1 \ - PIP_NO_CACHE_DIR=1 \ - PIP_ROOT_USER_ACTION=ignore \ - PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 \ - UV_NO_CACHE=true \ - UV_SYSTEM_PYTHON=true \ - UV_EXTRA_INDEX_URL="https://wheel-index.linuxserver.io/alpine-3.22/" - -ENV TAUTULLI_DOCKER="True" - -USER root -WORKDIR /app - -RUN \ - apk add --no-cache \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - jq \ - nano \ - tzdata \ - && \ - apk add --no-cache --virtual .build-deps \ - build-base \ - cargo \ - libffi-dev \ - musl-dev \ - openssl-dev \ - && pip install uv \ - && uv pip install \ - --requirement "https://raw.githubusercontent.com/Tautulli/tautulli-baseimage/python3/requirements.txt" \ - && mkdir -p /app \ - && curl -fsSL "https://github.com/Tautulli/Tautulli/archive/v${VERSION}.tar.gz" \ - | tar xzf - -C /app --strip-components 1 \ - && echo "v${VERSION}" > /app/version.txt \ - && echo "master" > /app/branch.txt \ - && chown -R root:root /app && chmod -R 755 /app \ - && pip uninstall --yes uv && apk del --purge .build-deps \ - && rm -rf /root/.cache /root/.cargo /tmp/* - -COPY . / - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/tautulli/docker-bake.hcl b/apps/tautulli/docker-bake.hcl deleted file mode 100644 index 1d2a4c9e9..000000000 --- a/apps/tautulli/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "tautulli" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=Tautulli/Tautulli - default = "2.15.3" -} - -variable "SOURCE" { - default = "https://github.com/Tautulli/Tautulli" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/tautulli/entrypoint.sh b/apps/tautulli/entrypoint.sh deleted file mode 100755 index d09ecb123..000000000 --- a/apps/tautulli/entrypoint.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -exec \ - /usr/local/bin/python \ - /app/Tautulli.py \ - --nolaunch \ - --config /config/config.ini \ - --datadir /config \ - "$@" diff --git a/apps/tautulli/tests.yaml b/apps/tautulli/tests.yaml deleted file mode 100644 index f2fdf729d..000000000 --- a/apps/tautulli/tests.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - python: - running: true -port: - tcp:8181: - listening: true -http: - http://localhost:8181: - status: 200 -file: - /usr/local/bin/python: - exists: true diff --git a/apps/theme-park/Dockerfile b/apps/theme-park/Dockerfile deleted file mode 100644 index ad3f79b5f..000000000 --- a/apps/theme-park/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/python:3.13-alpine3.22 AS builder -ARG VERSION -RUN \ - apk add --no-cache \ - curl \ - grep \ - sed \ - tar \ - && \ - curl -fsSL "https://github.com/themepark-dev/theme.park/archive/${VERSION}.tar.gz" \ - | tar xzf - -C /tmp --strip-components 1 \ - && python /tmp/themes.py \ - && grep -rl 'https://theme-park.dev' /tmp | xargs sed -i 's|https\://theme-park.dev||g' - -FROM ghcr.io/nginxinc/nginx-unprivileged:1.27-alpine -ENV NGINX_ENTRYPOINT_WORKER_PROCESSES_AUTOTUNE=1 -COPY --from=builder --chown=nginx:nginx /tmp/index.html /usr/share/nginx/html/ -COPY --from=builder --chown=nginx:nginx /tmp/css /usr/share/nginx/html/css/ -COPY --from=builder --chown=nginx:nginx /tmp/resources /usr/share/nginx/html/resources/ -USER nginx -WORKDIR /usr/share/nginx/html diff --git a/apps/theme-park/docker-bake.hcl b/apps/theme-park/docker-bake.hcl deleted file mode 100644 index 421a8ef71..000000000 --- a/apps/theme-park/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "theme-park" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=themepark-dev/theme.park - default = "1.21.2" -} - -variable "SOURCE" { - default = "https://github.com/themepark-dev/theme.park" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/theme-park/tests.yaml b/apps/theme-park/tests.yaml deleted file mode 100644 index c7f6ee0a9..000000000 --- a/apps/theme-park/tests.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - nginx: - running: true -port: - tcp:8080: - listening: true -http: - http://localhost:8080: - status: 200 diff --git a/apps/tqm/Dockerfile b/apps/tqm/Dockerfile deleted file mode 100644 index 633b3dc83..000000000 --- a/apps/tqm/Dockerfile +++ /dev/null @@ -1,20 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/golang:1.24-alpine AS builder -ARG VERSION - -USER root -WORKDIR /app - -RUN apk add --no-cache git \ - && git clone --single-branch --branch "${VERSION}" https://github.com/autobrr/tqm.git . \ - && go mod download \ - && \ - CGO_ENABLED=0 go build \ - -trimpath \ - -ldflags "-s -w -X github.com/autobrr/tqm/runtime.Version=${VERSION}" \ - -o tqm ./cmd/tqm - -FROM scratch -COPY --from=builder /app/tqm /tqm -ENTRYPOINT ["/tqm"] diff --git a/apps/tqm/docker-bake.hcl b/apps/tqm/docker-bake.hcl deleted file mode 100644 index 783c248ad..000000000 --- a/apps/tqm/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "tqm" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=autobrr/tqm - default = "v1.16.0" -} - -variable "SOURCE" { - default = "https://github.com/autobrr/tqm" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/tqm/tests.yaml b/apps/tqm/tests.yaml deleted file mode 100644 index 5e631297b..000000000 --- a/apps/tqm/tests.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -schemaVersion: "2.0.0" -fileExistenceTests: - - name: tqm - path: /tqm - shouldExist: true diff --git a/apps/transmission/Dockerfile b/apps/transmission/Dockerfile deleted file mode 100644 index be5943890..000000000 --- a/apps/transmission/Dockerfile +++ /dev/null @@ -1,44 +0,0 @@ -# syntax=docker/dockerfile:1 - -# NOTE: Alpine version is tied to the version in the Renovate annotation in docker-bake.hcl -FROM docker.io/library/python:3.13-alpine3.22 -ARG TARGETARCH -ARG MINIJINJA_ARCH=${TARGETARCH/arm64/aarch64} -ARG MINIJINJA_ARCH=${MINIJINJA_ARCH/amd64/x86_64} -ARG VERSION - -ENV HOME="/config" \ - XDG_CONFIG_HOME="/config" \ - XDG_DATA_HOME="/config" \ - TRANSMISSION_WEB_HOME="/usr/share/transmission/public_html" - -RUN \ - apk add --no-cache \ - 7zip \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - jq \ - nano \ - transmission-daemon=="${VERSION}" \ - transmission-cli=="${VERSION}" \ - transmission-extra=="${VERSION}" \ - transmission-remote=="${VERSION}" \ - tzdata \ - && \ - curl -fsSL https://github.com/mitsuhiko/minijinja/releases/download/2.8.0/minijinja-cli-${MINIJINJA_ARCH}-unknown-linux-musl.tar.xz \ - | tar xJf - -C /usr/local/bin/ --strip-components=1 \ - && \ - rm -rf /tmp/* - -COPY . / - -COPY --from=ghcr.io/linuxserver/unrar:latest /usr/bin/unrar-alpine /usr/bin/unrar - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/transmission/defaults/settings.json.j2 b/apps/transmission/defaults/settings.json.j2 deleted file mode 100644 index 5a5d0eecc..000000000 --- a/apps/transmission/defaults/settings.json.j2 +++ /dev/null @@ -1,83 +0,0 @@ -{ - "alt-speed-down": {{ ENV.TRANSMISSION__ALT_SPEED_DOWN | default(50) }}, - "alt-speed-enabled": {{ ENV.TRANSMISSION__ALT_SPEED_ENABLED | default(false) }}, - "alt-speed-time-begin": {{ ENV.TRANSMISSION__ALT_SPEED_TIME_BEGIN | default(540) }}, - "alt-speed-time-day": {{ ENV.TRANSMISSION__ALT_SPEED_TIME_DAY | default(127) }}, - "alt-speed-time-enabled": {{ ENV.TRANSMISSION__ALT_SPEED_TIME_ENABLED | default(false) }}, - "alt-speed-time-end": {{ ENV.TRANSMISSION__ALT_SPEED_TIME_END | default(1020) }}, - "alt-speed-up": {{ ENV.TRANSMISSION__ALT_SPEED_UP | default(50) }}, - "announce-ip": {{ ENV.TRANSMISSION__ANNOUNCE_IP }}, - "announce-ip-enabled": {{ ENV.TRANSMISSION__ANNOUNCE_IP_ENABLED | default(false) }}, - "anti-brute-force-enabled": {{ ENV.TRANSMISSION__ANTI_BRUTE_FORCE_ENABLED | default(false) }}, - "anti-brute-force-threshold": {{ ENV.TRANSMISSION__ANTI_BRUTE_FORCE_THRESHOLD | default(100) }}, - "bind-address-ipv4": {{ ENV.TRANSMISSION__BIND_ADDRESS_IPV4 | default('0.0.0.0') }}, - "bind-address-ipv6": {{ ENV.TRANSMISSION__BIND_ADDRESS_IPV6 | default('::') }}, - "blocklist-enabled": {{ ENV.TRANSMISSION__BLOCKLIST_ENABLED | default(false) }}, - "blocklist-url": {{ ENV.TRANSMISSION__BLOCKLIST_URL }}, - "cache-size-mb": {{ ENV.TRANSMISSION__CACHE_SIZE_MB | default(4) }}, - "default-trackers": {{ ENV.TRANSMISSION__DEFAULT_TRACKERS }}, - "dht-enabled": {{ ENV.TRANSMISSION__DHT_ENABLED | default(true) }}, - "download-dir": {{ ENV.TRANSMISSION__DOWNLOAD_DIR | default('/downloads/complete') }}, - "download-queue-enabled": {{ ENV.TRANSMISSION__DOWNLOAD_QUEUE_ENABLED | default(true) }}, - "download-queue-size": {{ ENV.TRANSMISSION__DOWNLOAD_QUEUE_SIZE | default(5) }}, - "encryption": {{ ENV.TRANSMISSION__ENCRYPTION | default(1) }}, - "idle-seeding-limit": {{ ENV.TRANSMISSION__IDLE_SEEDING_LIMIT | default(30) }}, - "idle-seeding-limit-enabled": {{ ENV.TRANSMISSION__IDLE_SEEDING_LIMIT_ENABLED | default(false) }}, - "incomplete-dir": {{ ENV.TRANSMISSION__INCOMPLETE_DIR | default('/downloads/incomplete') }}, - "incomplete-dir-enabled": {{ ENV.TRANSMISSION__INCOMPLETE_DIR_ENABLED | default(true) }}, - "lpd-enabled": {{ ENV.TRANSMISSION__LPD_ENABLED | default(false) }}, - "message-level": {{ ENV.TRANSMISSION__MESSAGE_LEVEL | default(2) }}, - "peer-congestion-algorithm": {{ ENV.TRANSMISSION__PEER_CONGESTION_ALGORITHM }}, - "peer-id-ttl-hours": {{ ENV.TRANSMISSION__PEER_ID_TTL_HOURS | default(6) }}, - "peer-limit-global": {{ ENV.TRANSMISSION__PEER_LIMIT_GLOBAL | default(200) }}, - "peer-limit-per-torrent": {{ ENV.TRANSMISSION__PEER_LIMIT_PER_TORRENT | default(50) }}, - "peer-port": {{ ENV.TRANSMISSION__PEER_PORT | default(51413) }}, - "peer-port-random-high": {{ ENV.TRANSMISSION__PEER_PORT_RANDOM_HIGH | default(65535) }}, - "peer-port-random-low": {{ ENV.TRANSMISSION__PEER_PORT_RANDOM_LOW | default(49152) }}, - "peer-port-random-on-start": {{ ENV.TRANSMISSION__PEER_PORT_RANDOM_ON_START | default(false) }}, - "peer-socket-tos": {{ ENV.TRANSMISSION__PEER_SOCKET_TOS | default('le') }}, - "pex-enabled": {{ ENV.TRANSMISSION__PEX_ENABLED | default(true) }}, - "port-forwarding-enabled": {{ ENV.TRANSMISSION__PORT_FORWARDING_ENABLED | default(false) }}, - "preallocation": {{ ENV.TRANSMISSION__PREALLOCATION | default(1) }}, - "prefetch-enabled": {{ ENV.TRANSMISSION__PREFETCH_ENABLED | default(true) }}, - "queue-stalled-enabled": {{ ENV.TRANSMISSION__QUEUE_STALLED_ENABLED | default(true) }}, - "queue-stalled-minutes": {{ ENV.TRANSMISSION__QUEUE_STALLED_MINUTES | default(30) }}, - "ratio-limit": {{ ENV.TRANSMISSION__RATIO_LIMIT | default(2) }}, - "ratio-limit-enabled": {{ ENV.TRANSMISSION__RATIO_LIMIT_ENABLED | default(false) }}, - "rename-partial-files": {{ ENV.TRANSMISSION__RENAME_PARTIAL_FILES | default(true) }}, - "rpc-authentication-required": {{ ENV.TRANSMISSION__RPC_AUTHENTICATION_REQUIRED | default(false) }}, - "rpc-bind-address": {{ ENV.TRANSMISSION__RPC_BIND_ADDRESS | default('0.0.0.0') }}, - "rpc-enabled": {{ ENV.TRANSMISSION__RPC_ENABLED | default(true) }}, - "rpc-host-whitelist": {{ ENV.TRANSMISSION__RPC_HOST_WHITELIST }}, - "rpc-host-whitelist-enabled": {{ ENV.TRANSMISSION__RPC_HOST_WHITELIST_ENABLED | default(false) }}, - "rpc-password": {{ ENV.TRANSMISSION__RPC_PASSWORD }}, - "rpc-port": {{ ENV.TRANSMISSION__RPC_PORT | default(9091) }}, - "rpc-socket-mode": {{ ENV.TRANSMISSION__RPC_SOCKET_MODE | default(0750) }}, - "rpc-url": {{ ENV.TRANSMISSION__RPC_URL | default('/transmission/') }}, - "rpc-username": {{ ENV.TRANSMISSION__RPC_USERNAME }}, - "rpc-whitelist": {{ ENV.TRANSMISSION__RPC_WHITELIST }}, - "rpc-whitelist-enabled": {{ ENV.TRANSMISSION__RPC_WHITELIST_ENABLED | default(false) }}, - "scrape-paused-torrents-enabled": {{ ENV.TRANSMISSION__SCRAPE_PAUSED_TORRENTS_ENABLED | default(true) }}, - "script-torrent-added-enabled": {{ ENV.TRANSMISSION__SCRIPT_TORRENT_ADDED_ENABLED | default(false) }}, - "script-torrent-added-filename": {{ ENV.TRANSMISSION__SCRIPT_TORRENT_ADDED_FILENAME }}, - "script-torrent-done-enabled": {{ ENV.TRANSMISSION__SCRIPT_TORRENT_DONE_ENABLED | default(false) }}, - "script-torrent-done-filename": {{ ENV.TRANSMISSION__SCRIPT_TORRENT_DONE_FILENAME }}, - "script-torrent-done-seeding-enabled": {{ ENV.TRANSMISSION__SCRIPT_TORRENT_DONE_SEEDING_ENABLED | default(false) }}, - "script-torrent-done-seeding-filename": {{ ENV.TRANSMISSION__SCRIPT_TORRENT_DONE_SEEDING_FILENAME }}, - "seed-queue-enabled": {{ ENV.TRANSMISSION__SEED_QUEUE_ENABLED | default(false) }}, - "seed-queue-size": {{ ENV.TRANSMISSION__SEED_QUEUE_SIZE | default(10) }}, - "speed-limit-down": {{ ENV.TRANSMISSION__SPEED_LIMIT_DOWN | default(100) }}, - "speed-limit-down-enabled": {{ ENV.TRANSMISSION__SPEED_LIMIT_DOWN_ENABLED | default(false) }}, - "speed-limit-up": {{ ENV.TRANSMISSION__SPEED_LIMIT_UP | default(100) }}, - "speed-limit-up-enabled": {{ ENV.TRANSMISSION__SPEED_LIMIT_UP_ENABLED | default(false) }}, - "start-added-torrents": {{ ENV.TRANSMISSION__START_ADDED_TORRENTS | default(true) }}, - "tcp-enabled": {{ ENV.TRANSMISSION__TCP_ENABLED | default(true) }}, - "torrent-added-verify-mode": {{ ENV.TRANSMISSION__TORRENT_ADDED_VERIFY_MODE | default('fast') }}, - "trash-original-torrent-files": {{ ENV.TRANSMISSION__TRASH_ORIGINAL_TORRENT_FILES | default(false) }}, - "umask": {{ ENV.TRANSMISSION__UMASK | default(002) }}, - "upload-slots-per-torrent": {{ ENV.TRANSMISSION__UPLOAD_SLOTS_PER_TORRENT | default(14) }}, - "utp-enabled": {{ ENV.TRANSMISSION__UTP_ENABLED | default(true) }}, - "watch-dir": {{ ENV.TRANSMISSION__WATCH_DIR | default('/watch') }}, - "watch-dir-enabled": {{ ENV.TRANSMISSION__WATCH_DIR_ENABLED | default(false) }}, - "watch-dir-force-generic": {{ ENV.TRANSMISSION__WATCH_FORCE_GENERIC | default(false) }} -} diff --git a/apps/transmission/docker-bake.hcl b/apps/transmission/docker-bake.hcl deleted file mode 100644 index 9a708f510..000000000 --- a/apps/transmission/docker-bake.hcl +++ /dev/null @@ -1,43 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "transmission" -} - -variable "VERSION" { - // NOTE: Alpine version is tied to the version of the base image in the Dockerfile - // renovate: datasource=repology depName=alpine_3_22/transmission-daemon versioning=loose - default = "4.0.6-r4" -} - -variable "SOURCE" { - default = "https://github.com/transmission/transmission" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/transmission/entrypoint.sh b/apps/transmission/entrypoint.sh deleted file mode 100755 index ff19c5de3..000000000 --- a/apps/transmission/entrypoint.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -# Only template the config file if our custom env variables are present -if env | grep -q "^TRANSMISSION__"; then - minijinja-cli --env /defaults/settings.json.j2 > /config/settings.json -fi - -exec \ - /usr/bin/transmission-daemon \ - --foreground \ - --config-dir /config \ - --log-level "${TRANSMISSION_LOG_LEVEL:-info}" \ - "$@" diff --git a/apps/transmission/tests.yaml b/apps/transmission/tests.yaml deleted file mode 100644 index e4d5107f1..000000000 --- a/apps/transmission/tests.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -process: - transmission-da: - running: true -port: - tcp:9091: - listening: true -http: - http://localhost:9091: - status: 200 -file: - /usr/local/bin/python: - exists: true - /usr/bin/unrar: - exists: true diff --git a/apps/webhook/Dockerfile b/apps/webhook/Dockerfile deleted file mode 100644 index 91807deec..000000000 --- a/apps/webhook/Dockerfile +++ /dev/null @@ -1,54 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/python:3.13-alpine3.22 -ARG TARGETARCH -ARG VERSION - -ENV \ - CRYPTOGRAPHY_DONT_BUILD_RUST=1 \ - PIP_BREAK_SYSTEM_PACKAGES=1 \ - PIP_DISABLE_PIP_VERSION_CHECK=1 \ - PIP_NO_CACHE_DIR=1 \ - PIP_ROOT_USER_ACTION=ignore \ - PYTHONDONTWRITEBYTECODE=1 \ - PYTHONUNBUFFERED=1 \ - UV_NO_CACHE=true \ - UV_SYSTEM_PYTHON=true \ - UV_EXTRA_INDEX_URL="https://wheel-index.linuxserver.io/alpine-3.22/" - -ENV \ - WEBHOOK__PORT="9000" \ - WEBHOOK__URLPREFIX="hooks" - -USER root -WORKDIR /app - -RUN \ - apk add --no-cache \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - jo \ - jq \ - trurl \ - tzdata \ - && mkdir -p /app/bin \ - && \ - curl -fsSL "https://github.com/adnanh/webhook/releases/download/${VERSION}/webhook-linux-${TARGETARCH}.tar.gz" \ - | tar xzf - -C /app/bin --strip-components=1 \ - && \ - pip install uv \ - && uv pip install "apprise>=1, <2" \ - && chown -R root:root /app && chmod -R 755 /app \ - && pip uninstall --yes uv \ - && rm -rf /tmp/* - -COPY . / - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] diff --git a/apps/webhook/docker-bake.hcl b/apps/webhook/docker-bake.hcl deleted file mode 100644 index 7808c63a3..000000000 --- a/apps/webhook/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "webhook" -} - -variable "VERSION" { - // renovate: datasource=github-releases depName=adnanh/webhook - default = "2.8.2" -} - -variable "SOURCE" { - default = "https://github.com/adnanh/webhook" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/webhook/entrypoint.sh b/apps/webhook/entrypoint.sh deleted file mode 100755 index 508bb2236..000000000 --- a/apps/webhook/entrypoint.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash - -HOOKS_FILE="/config/hooks.yaml" -if [[ -f /config/hooks.json ]]; then - HOOKS_FILE="/config/hooks.json" -fi - -exec \ - /app/bin/webhook \ - -port "${WEBHOOK__PORT}" \ - -urlprefix "${WEBHOOK__URLPREFIX}" \ - -hooks "${HOOKS_FILE}" \ - -template \ - -verbose \ - "$@" diff --git a/apps/webhook/tests.yaml b/apps/webhook/tests.yaml deleted file mode 100644 index dfb7454d1..000000000 --- a/apps/webhook/tests.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - webhook: - running: true -port: - tcp6:9000: - listening: true -http: - http://localhost:9000: - status: 200 diff --git a/apps/whisparr/Dockerfile b/apps/whisparr/Dockerfile deleted file mode 100644 index eed62d338..000000000 --- a/apps/whisparr/Dockerfile +++ /dev/null @@ -1,42 +0,0 @@ -# syntax=docker/dockerfile:1 - -FROM docker.io/library/alpine:3.22 -ARG TARGETARCH -ARG VENDOR -ARG VERSION - -ENV COMPlus_EnableDiagnostics=0 \ - WHISPARR__UPDATE__BRANCH=nightly - -USER root -WORKDIR /app - -RUN \ - apk add --no-cache \ - bash \ - ca-certificates \ - catatonit \ - coreutils \ - curl \ - icu-libs \ - jq \ - libintl \ - nano \ - sqlite-libs \ - tzdata \ - && mkdir -p /app/bin \ - && curl -fsSL "https://whisparr.servarr.com/v1/update/${WHISPARR__UPDATE__BRANCH}/updatefile?version=${VERSION}&os=linuxmusl&runtime=netcore&arch=${TARGETARCH/amd64/x64}" \ - | tar xzf - -C /app/bin --strip-components=1 \ - && printf "UpdateMethod=docker\nBranch=%s\nPackageVersion=%s\nPackageAuthor=[%s](https://github.com/%s)\n" "${WHISPARR__UPDATE__BRANCH}" "${VERSION}" "${VENDOR}" "${VENDOR}" > /app/package_info \ - && chown -R root:root /app && chmod -R 755 /app \ - && rm -rf /tmp/* /app/bin/Whisparr.Update - -COPY . / - -USER nobody:nogroup -WORKDIR /config -VOLUME ["/config"] - -ENTRYPOINT ["/usr/bin/catatonit", "--", "/entrypoint.sh"] - -LABEL org.opencontainers.image.source="https://github.com/Whisparr/Whisparr" diff --git a/apps/whisparr/docker-bake.hcl b/apps/whisparr/docker-bake.hcl deleted file mode 100644 index 67d3faaf6..000000000 --- a/apps/whisparr/docker-bake.hcl +++ /dev/null @@ -1,42 +0,0 @@ -target "docker-metadata-action" {} - -variable "APP" { - default = "whisparr" -} - -variable "VERSION" { - // renovate: datasource=custom.servarr-nightly depName=whisparr versioning=loose - default = "2.0.0.1222" -} - -variable "SOURCE" { - default = "https://github.com/Whisparr/Whisparr" -} - -group "default" { - targets = ["image-local"] -} - -target "image" { - inherits = ["docker-metadata-action"] - args = { - VERSION = "${VERSION}" - } - labels = { - "org.opencontainers.image.source" = "${SOURCE}" - } -} - -target "image-local" { - inherits = ["image"] - output = ["type=docker"] - tags = ["${APP}:${VERSION}"] -} - -target "image-all" { - inherits = ["image"] - platforms = [ - "linux/amd64", - "linux/arm64" - ] -} diff --git a/apps/whisparr/entrypoint.sh b/apps/whisparr/entrypoint.sh deleted file mode 100755 index 24af3ed06..000000000 --- a/apps/whisparr/entrypoint.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -exec \ - /app/bin/Whisparr \ - --nobrowser \ - --data=/config \ - "$@" diff --git a/apps/whisparr/tests.yaml b/apps/whisparr/tests.yaml deleted file mode 100644 index 97bf1a826..000000000 --- a/apps/whisparr/tests.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -# yaml-language-server: $schema=https://raw.githubusercontent.com/goss-org/goss/master/docs/schema.yaml -process: - Whisparr: - running: true -port: - tcp6:6969: - listening: true -http: - http://localhost:6969: - status: 200 - timeout: 5000