Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ab4d6c2242 |
@@ -1,42 +0,0 @@
|
||||
name: List of Services README Generation
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: 30 */2 * * *
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
readme-services:
|
||||
name: Generate Services List
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
with:
|
||||
ref: 'main'
|
||||
|
||||
- name: Install yq
|
||||
uses: dcarbone/install-yq-action@4075b4dca348d74bd83f2bf82d30f25d7c54539b # v1.3.1
|
||||
|
||||
- name: Generate service list
|
||||
run: |
|
||||
yq 'explode(.) | .services | to_entries | map({"service": .key, "image": .value.image, "description": (.value.labels."homepage.description" // "")})' docker-compose.yml > services.yml
|
||||
|
||||
- name: Generate Markdown Table
|
||||
uses: gazab/create-markdown-table@6686233d7008e8d8b9d4bbdbfd1fb1ae510019f0 # v1.0.7
|
||||
id: service-table
|
||||
with:
|
||||
file: ./services.yml
|
||||
|
||||
- name: Regenerate README
|
||||
run: |
|
||||
echo "# List of Services" > README.md
|
||||
echo -e "\n\n" >> README.md
|
||||
echo "${{ steps.service-table.outputs.table }}" >> README.md
|
||||
|
||||
- name: Add/Commit README.md
|
||||
id: commit-readme
|
||||
uses: EndBug/add-and-commit@a94899bca583c204427a224a7af87c02f9b325d5 # v9.1.4
|
||||
with:
|
||||
message: "chore: Update README"
|
||||
add: "README.md"
|
||||
@@ -0,0 +1,128 @@
|
||||
name: Gitea Branch PR, SonarQube Analyze, and Merge Workflow
|
||||
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
# Job 1: Check if PR exists and create one if the branch is new
|
||||
check-and-create-pr:
|
||||
name: Check and Create PR
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: PR list
|
||||
id: list-prs
|
||||
run: |
|
||||
pr_check=$(curl ${{ vars.RINOA_GITEA_URL }}/api/v1/repos/${{ github.repository }}/pulls/main/${{ github.ref_name }} \
|
||||
-X 'GET' \
|
||||
-H 'Accept: application/json' \
|
||||
-H 'Authorization: token ${{ secrets.BOT_GITEA_TOKEN }}' \
|
||||
-sS | jq '{index: .number, state: .state}')
|
||||
pr_state=$(echo ${pr_check} | jq -r '.state')
|
||||
|
||||
- name: Create PR
|
||||
if: steps.list-prs.outputs.pr_state != 'open'
|
||||
uses: arifer612/Gitea-PR-action@v1.2.0
|
||||
with:
|
||||
url: ${{ gitea.server_url }}
|
||||
token: ${{ secrets.BOT_GITEA_TOKEN }}
|
||||
pr-label: 'auto-deploy-pr'
|
||||
|
||||
docker-compose-test:
|
||||
name: Docker Compose Test
|
||||
needs: [check-and-create-pr]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Generate ephemeral .env compose file
|
||||
id: generate-env-file-pr
|
||||
run: |
|
||||
echo "${{ secrets.RINOA_ENV }}" > .env
|
||||
|
||||
- name: Docker Compose Lint
|
||||
uses: yu-ichiro/spin-up-docker-compose-action@v1
|
||||
with:
|
||||
file: docker-compose.yml
|
||||
pull: true
|
||||
pull-opts: --dry-run
|
||||
up: true
|
||||
up-opts: --dry-run -d --remove-orphans
|
||||
env:
|
||||
DOCKER_HOST: tcp://dockerproxy:2375
|
||||
|
||||
cloudflare-dns-setup:
|
||||
name: Cloudflare DNS Setup
|
||||
needs: [docker-compose-test]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install jq
|
||||
uses: dcarbone/install-jq-action@v3.0.1
|
||||
|
||||
- name: Install yq
|
||||
uses: dcarbone/install-yq-action@v1
|
||||
|
||||
- name: Install flarectl
|
||||
uses: supplypike/setup-bin@v4
|
||||
with:
|
||||
uri: 'https://github.com/cloudflare/cloudflare-go/releases/download/v0.113.0/flarectl_0.113.0_linux_amd64.tar.gz'
|
||||
name: 'flarectl'
|
||||
version: '0.113.0'
|
||||
|
||||
- name: Grab Subdomains from Docker Compose & Cloudflare
|
||||
id: grab-subdomains
|
||||
env:
|
||||
CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
|
||||
CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }}
|
||||
run: |
|
||||
echo "Grabbing subdomains from docker-compose.yml..."
|
||||
yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt
|
||||
echo "Grabbing subdomains from Cloudflare..."
|
||||
flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt
|
||||
|
||||
- name: Compare Subdomains
|
||||
id: compare-subdomains
|
||||
uses: LouisBrunner/diff-action@v2.2.0
|
||||
with:
|
||||
old: compose_subdomains.txt
|
||||
new: cloudflare_subdomains.txt
|
||||
mode: addition
|
||||
tolerance: mixed-better
|
||||
output: domain_compare.txt
|
||||
|
||||
- name: Create Subdomains
|
||||
if: steps.compare-subdomains.outputs.output != ''
|
||||
env:
|
||||
CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
|
||||
CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }}
|
||||
run: |
|
||||
cat domain_compare.txt | egrep '^-[a-z]' | sed -e 's|-||g' | while read -r subdomain; do
|
||||
echo "Creating $subdomain.trez.wtf..."
|
||||
flarectl dns create --zone "trez.wtf" --name "${subdomain}" --type=CNAME --content "trez.wtf"
|
||||
done
|
||||
|
||||
merge-pr:
|
||||
name: PR Merge
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ always() }}
|
||||
needs: [cloudflare-dns-setup]
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Tea CLI Setup & PR Merge
|
||||
run: |
|
||||
curl -sSL https://dl.gitea.com/tea/main/tea-main-linux-amd64 -o /usr/local/bin/tea
|
||||
chmod +x /usr/local/bin/tea
|
||||
echo "Merging PR..."
|
||||
tea login add --name gitea-rinoa --url ${{ vars.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }}
|
||||
pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g')
|
||||
tea pr m --repo ${{ github.repository }} --title "${{ github.ref_name }} Auto Merge" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index}
|
||||
@@ -1,466 +0,0 @@
|
||||
name: Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches-ignore:
|
||||
- "main"
|
||||
- "renovate/**"
|
||||
paths:
|
||||
- "**/docker-compose.yml"
|
||||
|
||||
env:
|
||||
FLARECTL_VERSION: "0.116.0"
|
||||
HC_VAULT_VERSION: "1.21.0"
|
||||
TEA_VERSION: "0.10.1"
|
||||
|
||||
jobs:
|
||||
check-and-create-pr:
|
||||
name: Check and Create PR
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Gotify Notification
|
||||
uses: https://git.trez.wtf/Trez/gotify-action@main
|
||||
with:
|
||||
gotify_api_base: "${{ secrets.RUNNER_GOTIFY_URL }}"
|
||||
gotify_app_token: "${{ secrets.RUNNER_GOTIFY_TOKEN }}"
|
||||
notification_title: "GITEA: PR Check @ Rinoa"
|
||||
notification_message: "Checking for existing PR... 🔍"
|
||||
|
||||
- name: PR Check/Creation
|
||||
uses: https://git.trez.wtf/Trez/gitea-auto-pr@main
|
||||
with:
|
||||
url: ${{ secrets.TREZ_GITEA_URL }}
|
||||
token: ${{ secrets.BOT_GITEA_TOKEN }}
|
||||
pr-label: docker-compose,manual
|
||||
assignee: ${{ github.actor }}
|
||||
|
||||
- name: Gotify Notification
|
||||
uses: https://git.trez.wtf/Trez/gotify-action@main
|
||||
with:
|
||||
gotify_api_base: "${{ secrets.RUNNER_GOTIFY_URL }}"
|
||||
gotify_app_token: "${{ secrets.RUNNER_GOTIFY_TOKEN }}"
|
||||
notification_title: "GITEA: PR Check @ Rinoa"
|
||||
notification_message: "PR Check done 🎟️"
|
||||
|
||||
generate-service-list:
|
||||
name: Generate list of added/modified/deleted services
|
||||
runs-on: ubuntu-latest
|
||||
needs: [check-and-create-pr]
|
||||
outputs:
|
||||
svc_deploy_list: ${{ steps.detect_services.outputs.docker_svc_list }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
|
||||
- name: Fetch base branch
|
||||
run: |
|
||||
git fetch origin ${{ github.event.pull_request.base.ref }}
|
||||
|
||||
- name: Gotify Notification
|
||||
uses: https://git.trez.wtf/Trez/gotify-action@main
|
||||
with:
|
||||
gotify_api_base: "${{ secrets.RUNNER_GOTIFY_URL }}"
|
||||
gotify_app_token: "${{ secrets.RUNNER_GOTIFY_TOKEN }}"
|
||||
notification_title: "GITEA: Services TBD"
|
||||
notification_message: "Generating list of services to deploy..."
|
||||
|
||||
- name: Save both versions of docker-compose.yml
|
||||
run: |
|
||||
git show origin/main:docker-compose.yml > docker-compose-main.yml || touch docker-compose-main.yml
|
||||
cp docker-compose.yml docker-compose-head.yml
|
||||
|
||||
- name: Detect added, deleted, and modified services
|
||||
id: detect_services
|
||||
run: |
|
||||
set +e # prevent failure on non-zero exit codes
|
||||
|
||||
echo "Getting services from main and ${{ github.ref_name }}"
|
||||
yq '.services | keys | .[]' docker-compose-main.yml | sort > services_main.txt
|
||||
yq '.services | keys | .[]' docker-compose-head.yml | sort > services_head.txt
|
||||
|
||||
echo "Creating list of service changes..."
|
||||
touch service_changes.txt
|
||||
|
||||
# Detect newly added services
|
||||
comm -13 services_main.txt services_head.txt 2>/dev/null | while read service; do
|
||||
[ -n "$service" ] && echo "$service: added" >> service_changes.txt
|
||||
done
|
||||
|
||||
# Detect removed services
|
||||
comm -23 services_main.txt services_head.txt 2>/dev/null | while read service; do
|
||||
[ -n "$service" ] && echo "$service: removed" >> service_changes.txt
|
||||
done
|
||||
|
||||
# Detect modified services
|
||||
comm -12 services_main.txt services_head.txt 2>/dev/null | while read service; do
|
||||
yq ".services[\"$service\"]" docker-compose-main.yml > tmp_main.yml
|
||||
yq ".services[\"$service\"]" docker-compose-head.yml > tmp_head.yml
|
||||
if ! diff -q tmp_main.yml tmp_head.yml > /dev/null; then
|
||||
echo "$service: modified" >> service_changes.txt
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Detected service changes:"
|
||||
cat service_changes.txt || echo "None"
|
||||
|
||||
# Separate categories safely
|
||||
added_svcs=$(grep -E ': added' service_changes.txt 2>/dev/null | cut -d':' -f1 | sort | uniq)
|
||||
modified_svcs=$(grep -E ': modified' service_changes.txt 2>/dev/null | cut -d':' -f1 | sort | uniq)
|
||||
removed_svcs=$(grep -E ': removed' service_changes.txt 2>/dev/null | cut -d':' -f1 | sort | uniq)
|
||||
|
||||
# Gather list of modified/added services
|
||||
mod_svcs=$( (echo "$added_svcs"; echo "$modified_svcs") | tr ' ' '\n' | sort -u | grep -v '^$' || true)
|
||||
|
||||
if [ -z "$mod_svcs" ]; then
|
||||
echo "No modified or added services detected."
|
||||
echo "docker_svc_list<<EOF" >> "$GITHUB_OUTPUT"
|
||||
echo "" >> "$GITHUB_OUTPUT"
|
||||
echo "EOF" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "Modified/added services:"
|
||||
echo "$mod_svcs"
|
||||
|
||||
# Include direct dependencies (only if head file exists)
|
||||
if [ -f docker-compose-head.yml ]; then
|
||||
echo "Resolving direct dependencies..."
|
||||
deps_list=""
|
||||
for svc in $mod_svcs; do
|
||||
deps=$(yq -r ".services[\"$svc\"].depends_on | keys | .[]" docker-compose-head.yml 2>/dev/null || true)
|
||||
if [ -n "$deps" ]; then
|
||||
echo "$svc depends on:"
|
||||
echo "$deps"
|
||||
deps_list="$deps_list $deps"
|
||||
fi
|
||||
done
|
||||
|
||||
all_svcs=$( (echo "$mod_svcs"; echo "$deps_list") | tr ' ' '\n' | sort -u)
|
||||
else
|
||||
all_svcs="$mod_svcs"
|
||||
fi
|
||||
|
||||
echo "Final service list (including direct dependencies):"
|
||||
echo "$all_svcs"
|
||||
|
||||
echo "docker_svc_list<<EOF" >> "$GITHUB_OUTPUT"
|
||||
echo "$all_svcs" >> "$GITHUB_OUTPUT"
|
||||
echo "EOF" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
# Output removed services separately
|
||||
echo "Removed services:"
|
||||
echo "${removed_svcs:-None}"
|
||||
echo "removed_svc_list<<EOF" >> "$GITHUB_OUTPUT"
|
||||
echo "$removed_svcs" >> "$GITHUB_OUTPUT"
|
||||
echo "EOF" >> "$GITHUB_OUTPUT"
|
||||
|
||||
# Always exit cleanly
|
||||
exit 0
|
||||
|
||||
docker-compose-dry-run:
|
||||
name: Docker Compose Dry Run
|
||||
needs: [generate-service-list]
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
VAULT_ADDR: ${{ secrets.TREZ_VAULT_ADDR }}
|
||||
VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
|
||||
VAULT_NAMESPACE: ""
|
||||
RINOA_REGISTRY_PASSWORD: ${{ secrets.BOT_GITEA_PASSWORD }}
|
||||
DOCKER_SVC_LIST: ${{ needs.generate-service-list.outputs.svc_deploy_list }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USER }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.GHCR_USER }}
|
||||
password: ${{ secrets.GHCR_LOGIN_TOKEN }}
|
||||
|
||||
- name: Login to Private Gitea Registry
|
||||
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
||||
with:
|
||||
registry: git.trez.wtf
|
||||
username: ${{ secrets.BOT_GITEA_USER }}
|
||||
password: ${{ secrets.BOT_GITEA_PASSWORD }}
|
||||
|
||||
- name: Gotify Notification
|
||||
uses: https://git.trez.wtf/Trez/gotify-action@main
|
||||
with:
|
||||
gotify_api_base: "${{ secrets.RUNNER_GOTIFY_URL }}"
|
||||
gotify_app_token: "${{ secrets.RUNNER_GOTIFY_TOKEN }}"
|
||||
notification_title: "GITEA: Docker Compose Dry Run @ Rinoa"
|
||||
notification_message: "Starting Docker Compose dry run..."
|
||||
|
||||
- name: Generate .env from Hashicorp Vault
|
||||
uses: https://git.trez.wtf/Trez/hc-vault-env@main
|
||||
with:
|
||||
HC_VAULT_VERSION: ${{ env.HC_VAULT_VERSION }}
|
||||
HC_VAULT_ADDR: ${{ secrets.TREZ_VAULT_ADDR }}
|
||||
HC_VAULT_AUTH: token
|
||||
HC_VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
|
||||
HC_VAULT_SECRETS_PATH: rinoa-docker/env
|
||||
|
||||
- name: Check services
|
||||
env:
|
||||
DSLIST: ${{ env.DOCKER_SVC_LIST }}
|
||||
run: |
|
||||
if [ -z ${DSLIST} ]; then
|
||||
echo "DOCKER_SVC_LIST=" >> $GITHUB_ENV
|
||||
else
|
||||
echo "${DLIST}"
|
||||
fi
|
||||
|
||||
- name: Pre-pull/build service images in parallel
|
||||
continue-on-error: true
|
||||
uses: https://git.trez.wtf/Trez/docker-select-image-pull@main
|
||||
env:
|
||||
DOCKER_HOST: tcp://dockerproxy:2375
|
||||
with:
|
||||
services: ${{ env.DOCKER_SVC_LIST }}
|
||||
compose_profile: "rinoa-apps"
|
||||
|
||||
- name: Docker Compose Dry Run
|
||||
uses: hoverkraft-tech/compose-action@3846bcd61da338e9eaaf83e7ed0234a12b099b72 # v2.4.1
|
||||
env:
|
||||
DOCKER_HOST: tcp://dockerproxy:2375
|
||||
with:
|
||||
services: |
|
||||
${{ needs.generate-service-list.outputs.svc_deploy_list }}
|
||||
up-flags: -d --remove-orphans --dry-run
|
||||
compose-flags: --dry-run --profile rinoa-apps
|
||||
services-log-level: debug
|
||||
|
||||
- name: Gotify Notification
|
||||
uses: https://git.trez.wtf/Trez/gotify-action@main
|
||||
with:
|
||||
gotify_api_base: "${{ secrets.RUNNER_GOTIFY_URL }}"
|
||||
gotify_app_token: "${{ secrets.RUNNER_GOTIFY_TOKEN }}"
|
||||
notification_title: "GITEA: Docker Compose Dry Run @ Rinoa"
|
||||
notification_message: "Docker Compose dry run completed successfully."
|
||||
|
||||
cloudflare-dns-setup:
|
||||
name: Cloudflare DNS Setup
|
||||
needs: [docker-compose-dry-run]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Install flarectl
|
||||
uses: supplypike/setup-bin@8e3f88b4f143d9b5c3497f0fc12d45c83c123787 # v4.0.1
|
||||
with:
|
||||
uri: https://github.com/cloudflare/cloudflare-go/releases/download/v${{ env.FLARECTL_VERSION }}/flarectl_${{ env.FLARECTL_VERSION }}_linux_amd64.tar.gz
|
||||
name: flarectl
|
||||
version: ${{ env.FLARECTL_VERSION }}
|
||||
|
||||
- name: Grab Subdomains from Docker Compose & Cloudflare
|
||||
id: grab-subdomains
|
||||
env:
|
||||
CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
|
||||
CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }}
|
||||
run: |
|
||||
yq -r '.services[].labels.swag_url' docker-compose.yml | \
|
||||
egrep -v 'null' | \
|
||||
awk -F'.' '{print $1}' | \
|
||||
sort > compose_subdomains.txt
|
||||
|
||||
flarectl --json dns list \
|
||||
--zone "trez.wtf" \
|
||||
--type=CNAME \
|
||||
--content "trez.wtf" \
|
||||
| jq -r '.[].Name' | awk -F"." '{print $1}' | \
|
||||
sort > cloudflare_subdomains.txt
|
||||
|
||||
- name: Gotify Notification
|
||||
uses: https://git.trez.wtf/Trez/gotify-action@main
|
||||
with:
|
||||
gotify_api_base: "${{ secrets.RUNNER_GOTIFY_URL }}"
|
||||
gotify_app_token: "${{ secrets.RUNNER_GOTIFY_TOKEN }}"
|
||||
notification_title: "GITEA: Cloudflare Setup @ Rinoa"
|
||||
notification_message: "Starting Cloudflare DNS setup..."
|
||||
|
||||
- name: Compare Subdomains
|
||||
id: compare-subdomains
|
||||
uses: LouisBrunner/diff-action@9ea7b75986aa27143ad4928974c98a5a1bd92170 # v2.2.0
|
||||
with:
|
||||
old: compose_subdomains.txt
|
||||
new: cloudflare_subdomains.txt
|
||||
mode: addition
|
||||
tolerance: mixed-better
|
||||
output: domain_compare.txt
|
||||
|
||||
- name: Create Subdomains
|
||||
if: steps.compare-subdomains.outputs.output != ''
|
||||
continue-on-error: true
|
||||
env:
|
||||
CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
|
||||
CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }}
|
||||
run: |
|
||||
cat domain_compare.txt | egrep '^-[a-z]' | sed -e 's|-||g' | while read -r subdomain; do
|
||||
echo "Creating $subdomain.trez.wtf..."
|
||||
flarectl dns create --zone "trez.wtf" --name "${subdomain}" --type=CNAME --content "trez.wtf" --proxy true
|
||||
done
|
||||
|
||||
- name: Gotify Notification
|
||||
uses: https://git.trez.wtf/Trez/gotify-action@main
|
||||
with:
|
||||
gotify_api_base: "${{ secrets.RUNNER_GOTIFY_URL }}"
|
||||
gotify_app_token: "${{ secrets.RUNNER_GOTIFY_TOKEN }}"
|
||||
notification_title: "GITEA: Cloudflare Setup @ Rinoa"
|
||||
notification_message: "Cloudflare DNS setup completed successfully."
|
||||
|
||||
pr-merge:
|
||||
name: PR Merge
|
||||
needs: [generate-service-list, docker-compose-dry-run]
|
||||
if: github.ref != 'refs/heads/main'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
|
||||
- name: Install tea
|
||||
uses: supplypike/setup-bin@8e3f88b4f143d9b5c3497f0fc12d45c83c123787 # v4.0.1
|
||||
with:
|
||||
uri: https://gitea.com/gitea/tea/releases/download/v${{ env.TEA_VERSION }}/tea-${{ env.TEA_VERSION }}-linux-amd64
|
||||
name: tea
|
||||
version: ${{ env.TEA_VERSION }}
|
||||
|
||||
- name: PR Merge
|
||||
id: pr_merge
|
||||
run: |
|
||||
tea login add \
|
||||
--name gitea-rinoa \
|
||||
--url "${{ secrets.TREZ_GITEA_URL }}" \
|
||||
--user gitea-sonarqube-bot \
|
||||
--password "${{ secrets.BOT_GITEA_PASSWORD }}" \
|
||||
--token ${{ secrets.BOT_GITEA_TOKEN }}
|
||||
|
||||
tea login default gitea-rinoa
|
||||
|
||||
echo "Merging PR..."
|
||||
|
||||
pr_index=$(tea pr ls \
|
||||
--repo ${{ github.repository }} \
|
||||
--state open --fields index,title,head,state \
|
||||
--output csv | \
|
||||
egrep ${{ github.ref_name }} | awk -F"," '{print $1}' | sed -e 's|"||g')
|
||||
|
||||
tea pr m \
|
||||
--repo ${{ github.repository }} \
|
||||
--title "Auto Merge of PR ${pr_index} - ${{ github.ref_name }}" \
|
||||
--message "Merged by ${{ github.actor }}" ${pr_index}
|
||||
|
||||
echo "pr_index=${pr_index}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Gotify Notification
|
||||
uses: https://git.trez.wtf/Trez/gotify-action@main
|
||||
with:
|
||||
gotify_api_base: "${{ secrets.RUNNER_GOTIFY_URL }}"
|
||||
gotify_app_token: "${{ secrets.RUNNER_GOTIFY_TOKEN }}"
|
||||
notification_title: "GITEA: PR Merge Successful"
|
||||
notification_message: "PR #${{ steps.pr_merge.outputs.pr_index }} merged."
|
||||
|
||||
docker-compose-deploy:
|
||||
name: Docker Compose Deployment
|
||||
runs-on: ubuntu-latest
|
||||
needs: [generate-service-list, docker-compose-dry-run, pr-merge]
|
||||
env:
|
||||
VAULT_ADDR: ${{ secrets.TREZ_VAULT_ADDR }}
|
||||
VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
|
||||
DOCKER_HOST: tcp://dockerproxy:2375
|
||||
RINOA_REGISTRY_PASSWORD: ${{ secrets.BOT_GITEA_PASSWORD }}
|
||||
DOCKER_SVC_LIST: ${{ needs.generate-service-list.outputs.svc_deploy_list }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
with:
|
||||
ref: main
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USER }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.GHCR_USER }}
|
||||
password: ${{ secrets.GHCR_LOGIN_TOKEN }}
|
||||
|
||||
- name: Login to Private Gitea Registry
|
||||
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
||||
with:
|
||||
registry: git.trez.wtf
|
||||
username: ${{ secrets.BOT_GITEA_USER }}
|
||||
password: ${{ secrets.BOT_GITEA_PASSWORD }}
|
||||
|
||||
- name: Gotify Notification
|
||||
uses: https://git.trez.wtf/Trez/gotify-action@main
|
||||
with:
|
||||
gotify_api_base: "${{ secrets.RUNNER_GOTIFY_URL }}"
|
||||
gotify_app_token: "${{ secrets.RUNNER_GOTIFY_TOKEN }}"
|
||||
notification_title: "GITEA: Docker Compose Deployment @ Rinoa"
|
||||
notification_message: "Starting Docker Compose run..."
|
||||
|
||||
- name: Generate .env from Hashicorp Vault
|
||||
uses: https://git.trez.wtf/Trez/hc-vault-env@main
|
||||
with:
|
||||
HC_VAULT_VERSION: ${{ env.HC_VAULT_VERSION }}
|
||||
HC_VAULT_ADDR: ${{ secrets.TREZ_VAULT_ADDR }}
|
||||
HC_VAULT_AUTH: token
|
||||
HC_VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
|
||||
HC_VAULT_SECRETS_PATH: rinoa-docker/env
|
||||
|
||||
- name: Pre-pull/build service images in parallel
|
||||
uses: https://git.trez.wtf/Trez/docker-select-image-pull@main
|
||||
env:
|
||||
DOCKER_HOST: tcp://dockerproxy:2375
|
||||
with:
|
||||
services: ${{ env.DOCKER_SVC_LIST }}
|
||||
compose_profile: "rinoa-apps"
|
||||
|
||||
- name: Docker Compose Deployment
|
||||
uses: hoverkraft-tech/compose-action@3846bcd61da338e9eaaf83e7ed0234a12b099b72 # v2.4.1
|
||||
env:
|
||||
DOCKER_HOST: tcp://dockerproxy:2375
|
||||
with:
|
||||
services: |
|
||||
${{ needs.generate-service-list.outputs.svc_deploy_list }}
|
||||
up-flags: -d --remove-orphans
|
||||
down-flags: --dry-run
|
||||
compose-flags: --profile rinoa-apps
|
||||
services-log-level: debug
|
||||
|
||||
- name: Docker Compose Healthcheck
|
||||
uses: jaracogmbh/docker-compose-health-check-action@973fbdccf7c8e396b652d3501984c8e530a9fa80 # v1.0.0
|
||||
with:
|
||||
max-retries: 30
|
||||
retry-interval: 10
|
||||
compose-file: "docker-compose.yml"
|
||||
skip-exited: "true"
|
||||
skip-no-healthcheck: "true"
|
||||
|
||||
- name: Gotify Notification
|
||||
uses: https://git.trez.wtf/Trez/gotify-action@main
|
||||
with:
|
||||
gotify_api_base: "${{ secrets.RUNNER_GOTIFY_URL }}"
|
||||
gotify_app_token: "${{ secrets.RUNNER_GOTIFY_TOKEN }}"
|
||||
notification_title: "GITEA: Docker Compose Deployment @ Rinoa"
|
||||
notification_message: "Deployment completed successfully."
|
||||
@@ -1,172 +0,0 @@
|
||||
name: Renovate Image Tag Deployment
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
types: [closed]
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- "**/docker-compose.yml"
|
||||
|
||||
env:
|
||||
HC_VAULT_VERSION: "1.21.0"
|
||||
VAULT_ADDR: ${{ secrets.TREZ_VAULT_ADDR }}
|
||||
VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
name: Renovate PR Deployment
|
||||
if: |
|
||||
github.event.pull_request.merged == true &&
|
||||
github.event.pull_request.user.login == 'renovate-bot'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout full repository
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
with:
|
||||
fetch-depth: 0 # required so we can access main^1
|
||||
|
||||
- name: Save docker-compose.yml before merge (old)
|
||||
run: |
|
||||
git fetch origin main
|
||||
if git ls-tree -r origin/main^1 --name-only | grep -q '^docker-compose.yml$'; then
|
||||
git show origin/main^1:docker-compose.yml > docker-compose-old.yml
|
||||
else
|
||||
echo "services: {}" > docker-compose-old.yml
|
||||
fi
|
||||
|
||||
- name: Save docker-compose.yml after merge (new)
|
||||
run: |
|
||||
git show origin/main:docker-compose.yml > docker-compose-new.yml
|
||||
|
||||
- name: Detect services with image tag/digest changes
|
||||
id: detect_services
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
echo "Flattening docker-compose files..."
|
||||
yq eval '... comments=""' docker-compose-old.yml > docker-compose-old-flat.yml
|
||||
yq eval '... comments=""' docker-compose-new.yml > docker-compose-new-flat.yml
|
||||
|
||||
echo "Getting service names..."
|
||||
yq eval '.services | keys | .[]' docker-compose-old-flat.yml | sort > services_old.txt
|
||||
yq eval '.services | keys | .[]' docker-compose-new-flat.yml | sort > services_new.txt
|
||||
|
||||
echo "Checking for image changes..."
|
||||
: > service_changes.txt
|
||||
|
||||
comm -12 services_old.txt services_new.txt | while read service; do
|
||||
old_image=$(yq eval-all --yaml-fix-merge-anchor-to-spec=true ".services[\"$service\"].image // \"\"" docker-compose-old-flat.yml)
|
||||
new_image=$(yq eval-all --yaml-fix-merge-anchor-to-spec=true ".services[\"$service\"].image // \"\"" docker-compose-new-flat.yml)
|
||||
|
||||
if [ "$old_image" != "$new_image" ]; then
|
||||
echo "$service" >> service_changes.txt
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Detected services with changed images:"
|
||||
cat service_changes.txt || echo "None"
|
||||
|
||||
changed_svcs=$(sort -u service_changes.txt | xargs || true)
|
||||
if [ -z "$changed_svcs" ]; then
|
||||
echo "No image tag/digest changes detected."
|
||||
echo "docker_svc_list<<EOF" >> "$GITHUB_OUTPUT"
|
||||
echo "" >> "$GITHUB_OUTPUT"
|
||||
echo "EOF" >> "$GITHUB_OUTPUT"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Collecting direct dependencies..."
|
||||
deps_list=""
|
||||
for svc in $changed_svcs; do
|
||||
deps=$(yq -r ".services[\"$svc\"].depends_on | keys | .[]" docker-compose-new-flat.yml 2>/dev/null || true)
|
||||
if [ -n "$deps" ]; then
|
||||
echo "$svc depends on:"
|
||||
echo "$deps"
|
||||
deps_list="$deps_list $deps"
|
||||
fi
|
||||
done
|
||||
|
||||
# Combine changed services and their dependencies, deduplicate
|
||||
all_svcs=$( (echo "$changed_svcs"; echo "$deps_list") | tr ' ' '\n' | sort -u )
|
||||
|
||||
echo "Final service list (including direct dependencies):"
|
||||
echo "$all_svcs"
|
||||
|
||||
# Prepare multiline output for GitHub Actions
|
||||
echo "docker_svc_list<<EOF" >> "$GITHUB_OUTPUT"
|
||||
echo "$all_svcs" >> "$GITHUB_OUTPUT"
|
||||
echo "EOF" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Stop if no image changes
|
||||
if: steps.detect_services.outputs.docker_svc_list == ''
|
||||
run: |
|
||||
echo "No image tag/digest changes detected. Exiting."
|
||||
exit 1
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USER }}
|
||||
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ secrets.GHCR_USER }}
|
||||
password: ${{ secrets.GHCR_LOGIN_TOKEN }}
|
||||
|
||||
- name: Login to Private Gitea Registry
|
||||
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
||||
with:
|
||||
registry: git.trez.wtf
|
||||
username: ${{ secrets.BOT_GITEA_USER }}
|
||||
password: ${{ secrets.BOT_GITEA_PASSWORD }}
|
||||
|
||||
- name: Gotify Notification (Start)
|
||||
uses: eikendev/gotify-action@master
|
||||
with:
|
||||
gotify_api_base: "${{ secrets.RUNNER_GOTIFY_URL }}"
|
||||
gotify_app_token: "${{ secrets.RUNNER_GOTIFY_TOKEN }}"
|
||||
notification_title: "GITEA: [RENOVATE] Docker Compose Deployment @ Rinoa"
|
||||
notification_message: "Starting Docker Compose run..."
|
||||
|
||||
- name: Generate .env from Hashicorp Vault
|
||||
uses: https://git.trez.wtf/Trez/hc-vault-env@main
|
||||
with:
|
||||
HC_VAULT_VERSION: ${{ env.HC_VAULT_VERSION }}
|
||||
HC_VAULT_ADDR: ${{ secrets.TREZ_VAULT_ADDR }}
|
||||
HC_VAULT_AUTH: token
|
||||
HC_VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
|
||||
HC_VAULT_SECRETS_PATH: rinoa-docker/env
|
||||
|
||||
- name: Docker Compose Deployment
|
||||
uses: hoverkraft-tech/compose-action@3846bcd61da338e9eaaf83e7ed0234a12b099b72 # v2.4.1
|
||||
env:
|
||||
DOCKER_HOST: tcp://dockerproxy:2375
|
||||
with:
|
||||
services: |
|
||||
${{ steps.detect_services.outputs.docker_svc_list }}
|
||||
up-flags: -d --remove-orphans
|
||||
down-flags: --dry-run
|
||||
services-log-level: debug
|
||||
|
||||
- name: Docker Compose Healthcheck
|
||||
id: health
|
||||
uses: jaracogmbh/docker-compose-health-check-action@973fbdccf7c8e396b652d3501984c8e530a9fa80 # v1.0.0
|
||||
with:
|
||||
max-retries: 30
|
||||
retry-interval: 10
|
||||
compose-file: "docker-compose.yml"
|
||||
skip-exited: "true"
|
||||
skip-no-healthcheck: "true"
|
||||
|
||||
- name: Gotify Notification (Finish)
|
||||
uses: eikendev/gotify-action@master
|
||||
with:
|
||||
gotify_api_base: "${{ secrets.RUNNER_GOTIFY_URL }}"
|
||||
gotify_app_token: "${{ secrets.RUNNER_GOTIFY_TOKEN }}"
|
||||
notification_title: "GITEA: [RENOVATE] Docker Compose Deployment @ Rinoa"
|
||||
notification_message: "Deployment completed successfully."
|
||||
@@ -1,65 +0,0 @@
|
||||
name: Renovate
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0/30 * * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
RENOVATE_VERSION: "41.168.6"
|
||||
|
||||
jobs:
|
||||
renovate:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
|
||||
- name: Renovate Run
|
||||
env:
|
||||
DOCKER_HOST: tcp://dockerproxy:2375
|
||||
RENOVATE_PLATFORM: gitea
|
||||
RENOVATE_ENDPOINT: https://git.trez.wtf/api/v1
|
||||
RENOVATE_TOKEN: ${{ secrets.RENOVATE_BOT_TOKEN }}
|
||||
LOG_LEVEL: ${{ vars.RENOVATE_LOG_LEVEL }}
|
||||
RENOVATE_GITHUB_COM_TOKEN: ${{ secrets.RENOVATE_GITHUB_TOKEN }}
|
||||
RENOVATE_CONFIG_FILE: renovate.json
|
||||
RENOVATE_REPOSITORIES: trez/rinoa-docker
|
||||
RENOVATE_HOST_RULES: |
|
||||
[
|
||||
{
|
||||
"description": "Docker Hub authentication",
|
||||
"hostType": "docker",
|
||||
"matchHost": "docker.io",
|
||||
"username": "${{ secrets.DOCKERHUB_USER }}",
|
||||
"password": "${{ secrets.DOCKERHUB_PASSWORD }}"
|
||||
},
|
||||
{
|
||||
"description": "GitHub Container Registry (GHCR)",
|
||||
"hostType": "docker",
|
||||
"matchHost": "ghcr.io",
|
||||
"username": "${{ secrets.GHCR_USER }}",
|
||||
"password": "${{ secrets.GHCR_LOGIN_TOKEN }}"
|
||||
},
|
||||
{
|
||||
"description": "Self-hosted Gitea Docker Registry",
|
||||
"hostType": "docker",
|
||||
"matchHost": "git.trez.wtf",
|
||||
"username": "${{ secrets.BOT_GITEA_USER }}",
|
||||
"password": "${{ secrets.BOT_GITEA_PASSWORD }}"
|
||||
}
|
||||
]
|
||||
run: |
|
||||
docker run --rm \
|
||||
-e RENOVATE_PLATFORM \
|
||||
-e RENOVATE_ENDPOINT \
|
||||
-e RENOVATE_TOKEN \
|
||||
-e LOG_LEVEL \
|
||||
-e RENOVATE_GITHUB_COM_TOKEN \
|
||||
-e RENOVATE_CONFIG_FILE \
|
||||
-e RENOVATE_REPOSITORIES \
|
||||
-e RENOVATE_HOST_RULES \
|
||||
--volumes-from ${{ env.JOB_CONTAINER_NAME }} \
|
||||
-w ${GITHUB_WORKSPACE} \
|
||||
renovate/renovate:${{ env.RENOVATE_VERSION }}-full
|
||||
+2
-2
@@ -1,2 +1,2 @@
|
||||
**/.cache_ggshield
|
||||
**/.env
|
||||
**/.env*
|
||||
**/*env*
|
||||
|
||||
@@ -1,197 +1,588 @@
|
||||
# List of Services
|
||||
|
||||
```json
|
||||
~> yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml
|
||||
|
||||
|
||||
| Service | Image | Description |
|
||||
| --- | --- | --- |
|
||||
| 13ft | ghcr.io/wasi-master/13ft:latest@sha256:563ce7794a7173250c25c9162495bf2f510dd714067d74363c9ab2bd0e5a994f | Web interface for blocking ads and paywalls |
|
||||
| actual_server | docker.io/actualbudget/actual-server:latest@sha256:8f72d73e68958566850325c1f9fe780a4477340979969bd6979649dc519723ab | Privacy-focused app for managing finances |
|
||||
| adguard | adguard/adguardhome:v0.107.69@sha256:8a4107ec812023842ccab9e04600c5d39d3be6b15e907c34a36339c184c8fccf | Ad-blocking/DNS |
|
||||
| apcupsd-cgi | bnhf/apcupsd-cgi:latest@sha256:e8733930739719aca608fd97aecfb0aa5f53aaf7681bf4bbccd49dbf67132bf8 | Web interface for apcupsd |
|
||||
| apprise-api | lscr.io/linuxserver/apprise-api:latest@sha256:21295ffabb1e93ac751662160aaa514c6d7f6acc8dfcbe956c9fb32384d51be6 | Multi-channel notification API |
|
||||
| archivebox | archivebox/archivebox:latest@sha256:fdf2936192aa1e909b0c3f286f60174efa24078555be4b6b90a07f2cef1d4909 | Open-source and self-hosted web archiving |
|
||||
| asciinema | ghcr.io/asciinema/asciinema-server:latest@sha256:fad89accd5cedb366cd9213ed90e02c4f3c069458771122a9065bc7ffb2e93e1 | Platform for hosting and sharing terminal session recordings |
|
||||
| asciinema-pg-db | postgres:14-alpine@sha256:cb54bb67c0fca8b439f18c1daadb315ad67de1faf8c387988c63080d15a54145 | |
|
||||
| audiobookshelf | ghcr.io/advplyr/audiobookshelf:latest@sha256:6fbd7dc95d53c6e168ce69e760b87c334e3b9ba88bf7b8531ed5a116d5d6da03 | Podcasts, eBooks, & Audiobooks |
|
||||
| audiomuse-ai-flask | ghcr.io/neptunehub/audiomuse-ai:0.7.9-beta@sha256:2a4bfc79f0ebd4f11881a4817276dbf4ef5981fa1b3cd6adbbfc6a3ea54b25a4 | Platform for hosting and sharing terminal session recordings |
|
||||
| audiomuse-ai-pg | postgres:15-alpine@sha256:64583b3cb4f2010277bdd9749456de78e5c36f8956466ba14b0b96922e510950 | |
|
||||
| audiomuse-ai-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| audiomuse-ai-worker | ghcr.io/neptunehub/audiomuse-ai:0.7.9-beta@sha256:2a4bfc79f0ebd4f11881a4817276dbf4ef5981fa1b3cd6adbbfc6a3ea54b25a4 | |
|
||||
| authelia | authelia/authelia:master@sha256:886ba562fc20afa83945c5a6ba86a06d1c5e8784745911312b259f5d244c93f0 | Authentication/authorization server with MFA & SSO |
|
||||
| authelia-pg | postgres:16-alpine@sha256:029660641a0cfc575b14f336ba448fb8a75fd595d42e1fa316b9fb4378742297 | |
|
||||
| authelia-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| backrest | garethgeorge/backrest:latest@sha256:1308397161321b3c5aeca8acc6bf26eccb990df385f2532d3ce0eaa8b483dedf | Data backup |
|
||||
| bazarr | lscr.io/linuxserver/bazarr:latest@sha256:a42fef2a5ffa1dca8714e12892ba0b8de5c6c513f1bcdb1ffe4143e715cffb45 | Subtitle automation for TV shows/movies |
|
||||
| beszel | henrygd/beszel:latest@sha256:37858df37c29cc532d9af103b90a4f2645bc7555f6a291ed3f15c9096a00731e | Lightweight server monitoring hub |
|
||||
| beszel-agent | henrygd/beszel-agent:latest@sha256:bc6c4068ce99d20e66ea28830d853339145552704497496d1d0cfd6999413070 | |
|
||||
| bitwarden | vaultwarden/server:latest@sha256:84fd8a47f58d79a1ad824c27be0a9492750c0fa5216b35c749863093bfa3c3d7 | Credential/Information Vault |
|
||||
| bluesky-pds | code.modernleft.org/gravityfargo/bluesky-pds:v0.4.158@sha256:44810dc5cf9c78135d20dfd60e0999e2db0dfc5fd56dc7e45e8844d1b57c54bd | |
|
||||
| browserless | ghcr.io/browserless/chromium:latest@sha256:3c467f68e3b588b89faa6d27556a798121defc46509100386cd100248599fd3f | |
|
||||
| bytestash | ghcr.io/jordan-dalby/bytestash:latest@sha256:9c17b5510ca45c976fe23b0d4705ad416aa58d4bf756a70e03ef1f08cf7801fd | Code Gists/Snippets |
|
||||
| changedetection | ghcr.io/dgtlmoon/changedetection.io@sha256:a3684335bc4806b305b40271abc787687e716fbf68bfdb8e7e069ee19c599670 | Page change monitoring with alerts |
|
||||
| changedetection-chrome | dgtlmoon/sockpuppetbrowser:latest@sha256:9f2df6791a4cd9b2c3138cb62b5a8de7f27953cab84729fe09d28cbd341a8973 | |
|
||||
| chrome | gcr.io/zenika-hub/alpine-chrome:123@sha256:e38563d4475a3d791e986500a2e4125c9afd13798067138881cf770b1f6f3980 | |
|
||||
| clipcascade | sathvikrao/clipcascade:latest@sha256:0f7aadec03af6b22a157466ade3ed1730dfd3b390d2989e55c0180e1d12d736f | Online file converter |
|
||||
| cloudflareddns | ghcr.io/hotio/cloudflareddns:latest@sha256:b64687779bbe0dcd41f9854129ce8fa9d6c5f009e1992a79bed97c85fe253eaf | |
|
||||
| convertx | ghcr.io/c4illin/convertx@sha256:53f2c04ebe63fdfb4d812ee66b78a5db9360c729f3defe3dcc864256ff91a7cb | Online file converter |
|
||||
| crowdsec | crowdsecurity/crowdsec:latest@sha256:4beb1633cf4f41bb6f9e64d065d151d3aa5e3aa7082d5c3061a243037db0d890 | |
|
||||
| crowdsec-dashboard | metabase/metabase@sha256:7cde7e7129ed13ec153ba7f5d08d79f4cb7db84dc06d9a47d411e66f65fd6933 | Real-time & crowdsourced protection against aggressive IPs |
|
||||
| cyber-chef | mpepping/cyberchef:latest@sha256:1772a04fd261f971da89cf6212147afe55a37b4a93421db928a78e01de3d65ea | Web app for encryption, encoding, compression, and data analysis |
|
||||
| czkawka | jlesage/czkawka@sha256:03109f40d1bc41ebe24c2fd3ee81429950338591bbb64c4cf39ec6160fee75a4 | Smart file management |
|
||||
| dagu | ghcr.io/dagu-org/dagu:alpine@sha256:ae9860d40944346fb9441ac3db3700f99da34f0052d7902b9cd1292efce8ae58 | Cron alternative with a web UI |
|
||||
| dawarich-app | freikin/dawarich:latest@sha256:1269069eac00f53ca1327aaabc34cb692084738129a35e8274adacaab8197d0b | Self-hosted alternative to Google Location History |
|
||||
| dawarich-pg-db | postgis/postgis:17-3.5-alpine@sha256:470d7569e6aa821a503eac1f1c3e9851582281db9c1b2fa239ddcc01624fa19a | |
|
||||
| dawarich-sidekiq | freikin/dawarich:latest@sha256:1269069eac00f53ca1327aaabc34cb692084738129a35e8274adacaab8197d0b | |
|
||||
| dawarich-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| dead-man-hand | ghcr.io/bkupidura/dead-man-hand:latest@sha256:31905f19678f60d55ecdfa63dad009c07e2055cb5db0c608c8cab5de4467050e | |
|
||||
| docker-socket-proxy | ghcr.io/tecnativa/docker-socket-proxy:latest@sha256:3400c429c5f9e1b21d62130fb93b16e2e772d4fb7695bd52fc2b743800b9fe9e | |
|
||||
| dockflare | alplat/dockflare:stable@sha256:d5d77c1caeb3a82467499371dd5e7c9ab7c2c03c527d4f1465062b755aa7c8ca | Cloudflare Tunnel controller |
|
||||
| dockpeek | ghcr.io/dockpeek/dockpeek:v1.7.2@sha256:87654d0104eacff48a70c7c1eea6126f19f5803b21bfdace842ae765351593b4 | Real-time port monitoring and discovery |
|
||||
| duplicati | lscr.io/linuxserver/duplicati:latest@sha256:ed6cee6ea5d9ebe28f7eae68adb8a8760869d316d42c2a56eec489dbf2f95232 | Data backup |
|
||||
| excalidraw | excalidraw/excalidraw:latest@sha256:b0b28b8d822519bf7fb9e2fab4a1e74754a557a4f6f42d36756ce95d281d62c5 | Virtual whiteboard for sketching hand-drawn like diagrams |
|
||||
| explo | ghcr.io/lumepart/explo:latest@sha256:4d8870ea033cb27e078772e60c4ca7b92f8c3ece062de8ceaec047e46e79f1df | |
|
||||
| fastenhealth | ghcr.io/fastenhealth/fasten-onprem:main@sha256:ed5353eb49d0dbd3e3e30aeb1b71d430a35aebe6823637dcd3dca7aa9b7fa3c3 | Open-source, self-hosted, personal/family electronic medical record aggregator |
|
||||
| flaresolverr | ghcr.io/flaresolverr/flaresolverr:latest@sha256:06c76759d062c185d8ac0b48f302258645b8d99db86109a3d6dce3209d93de51 | |
|
||||
| garage | dxflrs/garage:v2.1.0@sha256:4c9b34c113e61358466e83fd6e7d66e6d18657ede14b776eb78a93ee8da7cf6a | |
|
||||
| garage-webui | khairul169/garage-webui:latest@sha256:17c793551873155065bf9a022dabcde874de808a1f26e648d4b82e168806439c | S3-compatible storage backend |
|
||||
| ghost | ghost:latest@sha256:1e243c833aaa518c6f0786037e83ebe3a8567f8aeac0aa71a38f6fe9d7790935 | Personal blog |
|
||||
| gitea | gitea/gitea:1.25.1@sha256:b3aee0f6fa4ff3271180a2388bb796be5cced8828685b968a310d70e881fcbb3 | Private Code Repo |
|
||||
| gitea-db | postgres:14@sha256:962ffbe9f6418387643411b127c1db27465e5a23b9a8849bfaf45fa6323963ce | |
|
||||
| gitea-runner | gitea/act_runner:latest@sha256:8477d5b61b655caad4449888bae39f1f34bebd27db56cb15a62dccb3dcf3a944 | |
|
||||
| gitea-sonarqube-bot | justusbunsi/gitea-sonarqube-bot:v0.4.0@sha256:18dd43b470d9a470e27d5999dd7dcbb44423d5c4466ae56dd7c1722f23115673 | |
|
||||
| gitignore-io | guog/gitignore.io:latest@sha256:27b0bc3e9eb81adaee39fb6f77169ea9cbef164bcab049d29bcab68d154013ad | .gitignore generator |
|
||||
| gluetun | qmcgaw/gluetun:latest@sha256:ffc080cc41f2b9cc55d413aa5779de96f0c760100879152c7b296d590b1e8a46 | |
|
||||
| gotify | gotify/server@sha256:2ae0e4e689f183137c8247884382fcb174d5a72253ce1897e7e5267090093fc8 | Notification System |
|
||||
| guacamole | flcontainers/guacamole:latest@sha256:81a420f386ef8cbb4697208e13ea90f6a10a54619981241bed672e4a41b5f77f | Client-less remote desktop gateway |
|
||||
| homepage | ghcr.io/gethomepage/homepage:latest@sha256:8c7ec6a3c9094af7ac0686aa361fed3129264a8ed2c17594d5114a5e8342f7c9 | |
|
||||
| hugo | hugomods/hugo:exts@sha256:86b9a9ee8915be9cd5e9b555082352ab502daebf12c0bdae0a513f5340586496 | Static site |
|
||||
| immich-server | ghcr.io/immich-app/immich-server:release@sha256:4504d794123c3f5410cc45bbc61e4d7dbcacec1e1b0cd2e599691430c94e5849 | High performance self-hosted photo and video management solution |
|
||||
| immich-machine-learning | ghcr.io/immich-app/immich-machine-learning:release@sha256:bf339cbb44af6c2ef25d9128e1da51b2bec0cfd524846a83e3017c21bd71ddb4 | |
|
||||
| immich-pg-db | tensorchord/pgvecto-rs:pg14-v0.2.1@sha256:9172feae86a211bc502db4ec2d3309a57329060b031d91796d39f45d1d698ef3 | |
|
||||
| immich-public-proxy | alangrainger/immich-public-proxy:latest@sha256:ed5c7cc406bd26bb1cff327b8a3d8aad35210e45830b620d55f280773b528f3b | Immich Proxy for public sharing |
|
||||
| immich-power-tools | ghcr.io/varun-raj/immich-power-tools:latest@sha256:2abdc8a73cd7438006e16f7a9b50f51ca6806332f8855404375e8bbdd5b024f7 | |
|
||||
| immich-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| influxdb2 | influxdb:2-alpine@sha256:b4dbe25bb8f8be38f9cf5a12cbca453318a1ad3475954e9d37c38f6e5bc5006b | Scalable datastore for metrics, events, and real-time analytics |
|
||||
| invidious | quay.io/invidious/invidious:latest@sha256:2836b5b8226a53a9cc2afdbd5f5fe6bccdd200f2e17cd92a828b4dc8d8b5cc06 | Alternative YouTube frontend (privacy-focused, ad-blocking) |
|
||||
| invidious-companion | quay.io/invidious/invidious-companion:latest@sha256:4f589b8eedf3c2d49de4a256ee018d7e4ff54fcce683f9005a31dbb7d1bf870f | |
|
||||
| invidious-db | docker.io/library/postgres:14@sha256:962ffbe9f6418387643411b127c1db27465e5a23b9a8849bfaf45fa6323963ce | |
|
||||
| it-tools | ghcr.io/corentinth/it-tools:latest@sha256:8b8128748339583ca951af03dfe02a9a4d7363f61a216226fc28030731a5a61f | Useful tools for developers and people working in IT |
|
||||
| jellyfin | jellyfin/jellyfin@sha256:d43a8878689311f841a1967f899f54db56877bf6b426fd7ff870ac1a6fd1dce4 | Movie/TV Streaming |
|
||||
| jitsi-etherpad | etherpad/etherpad:1.9.7@sha256:d1d6a772dd49e2d920fda874cdae2d4a43f24ba5713a1e330b6342fbab3eb5ec | |
|
||||
| jitsi-jibri | jitsi/jibri:stable | |
|
||||
| jitsi-jicofo | jitsi/jicofo:stable | |
|
||||
| jitsi-jigasi | jitsi/jigasi:stable | |
|
||||
| jitsi-jvb | jitsi/jvb:stable | |
|
||||
| jitsi-prosody | jitsi/prosody:stable | |
|
||||
| jitsi-web | jitsi/web:stable | Web Conferencing |
|
||||
| joplin-db | postgres:17-alpine@sha256:ef257d85f76e48da1c64832459b59fcaba1a4dac97bf5d7450c77753542eee94 | |
|
||||
| joplin | joplin/server:latest@sha256:95b67dc6a4e77a974ac2bcc86818cbbfe5495e7b62d06a66f848a877878dce53 | Open-source note taking & to-do |
|
||||
| karakeep | ghcr.io/karakeep-app/karakeep:release@sha256:cd2348520ba25bbee64199468cd41758ab325eecd6a3a5c40cd6443a1607f9e9 | Self-hosted bookmark-everything app with a touch of AI for data hoarders |
|
||||
| languagetool | elestio/languagetool:latest@sha256:85a32bdef9e7d87125977a201bfe7aa4310e67cab8abfa370157a9fc67cda4cd | |
|
||||
| libretranslate | libretranslate/libretranslate@sha256:4330ec7f3b397572f1e891cefa94b3b113e79df7f7539aaecaae1feadb4d1bcf | Open-source machine translation API |
|
||||
| lidarr | lscr.io/linuxserver/lidarr:latest@sha256:1d49ebdfaae525d9e1e4ad5b7fa1753e364da44ac1b5e6acae241a2173ac09a4 | Music Automation |
|
||||
| lidify | thewicklowwolf/lidify:latest@sha256:958eaddeef8195470b974ee03512d9a5c31ad2af3167f7824448fb026fa9c94a | Music Discovery a la Last.fm, Spotify, Pandora, etc. |
|
||||
| linkstack | linkstackorg/linkstack:latest@sha256:abd691b4293b020a317de8794737671e0315159efcb868e8a4124d6f0611f7ae | Personal profile |
|
||||
| lldap | lldap/lldap:stable@sha256:9e605a66c02514bfcffd1b67cafb1e98d50992216bb2871d7ae44622047dd09d | LDAP made easy |
|
||||
| loggifly | ghcr.io/clemcer/loggifly:latest@sha256:6faa4d4964994a9213494f879b58085acc04cafa2927cadfde98657676dfd199 | |
|
||||
| maloja | krateng/maloja:latest@sha256:4ecea26058d2ca5168a8d53820279942d28f0606664cea6425f42371d5d88f95 | Simple self-hosted music scrobble database to create personal listening statistics |
|
||||
| manyfold | lscr.io/linuxserver/manyfold:latest@sha256:d1641224025e227201b6110a9cb699b324395b0980d35f2808769f4ea79846f1 | Self-hosted digital asset manager for 3D print files |
|
||||
| manyfold-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| mariadb | linuxserver/mariadb@sha256:195b6be2d3e2dd0744a54ba2542a136c572b3375bc7f019e37a505da5da3022b | |
|
||||
| mastodon | lscr.io/linuxserver/mastodon:latest@sha256:b15c78b3bdaeb84bac40a6900dc2e37d188e0b9b512299e5b2f99766106a38d8 | Open-source social network |
|
||||
| mastodon-pg-db | postgres:17-alpine@sha256:ef257d85f76e48da1c64832459b59fcaba1a4dac97bf5d7450c77753542eee94 | |
|
||||
| mastodon-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| maxun-backend | getmaxun/maxun-backend:latest@sha256:d9c5f3036d2bccde7387cd3ab06f6cb9f23fb9f8094a9bf83eb194683724430e | |
|
||||
| maxun-frontend | getmaxun/maxun-frontend:latest@sha256:fd6f977affa245a2b7d93ffada7c9a5d36657b1948d2374914d6a71e0df63dd6 | No-code web data extraction platform |
|
||||
| maxun-pg-db | postgres:17-alpine@sha256:ef257d85f76e48da1c64832459b59fcaba1a4dac97bf5d7450c77753542eee94 | |
|
||||
| maxun-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| meilisearch | getmeili/meilisearch:v1.24@sha256:d991eb07331e9d1f9cec7bc0f9523fd5d51aee3b223d997e0e66206361952056 | |
|
||||
| meme-search-pro | ghcr.io/neonwatty/meme_search_pro:latest@sha256:bf3c20a6a0407ffa594d3e2fe8611073c0499659c90f44a28decd5e701e9e1f6 | Meme search engine built with Python and Ruby |
|
||||
| meme-search-pro-img2txt-gen | ghcr.io/neonwatty/image_to_text_generator:latest@sha256:e8445afab38e2eae1fcb95101dd26cf66708ef72127b291cab748050b4700cb8 | |
|
||||
| meme-search-db | pgvector/pgvector:pg17@sha256:9ae02a756ba16a2d69dd78058e25915e36e189bb36ddf01ceae86390d7ed786a | |
|
||||
| mini-qr | ghcr.io/lyqht/mini-qr:latest@sha256:babe90594f88cb3e8463a7622b1aac46defff7ef5c8d991299c5df4ca8514f66 | Scan and generate customized QR codes easily |
|
||||
| minio | minio/minio:RELEASE.2025-04-22T22-12-26Z@sha256:a1ea29fa28355559ef137d71fc570e508a214ec84ff8083e39bc5428980b015e | S3-compatible storage backend |
|
||||
| mixpost | inovector/mixpost:latest@sha256:088a0eed84289e9a408294acea969c1eebf80dff803d165629fe20c3442b0f8c | Multi-channel social media manager |
|
||||
| mixpost-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| mgob | stefanprodan/mgob@sha256:d089c6d105d7d0f9db5222786cb93d85b1bf61e28b21ad717cea90f92570c8f3 | Headless Automated MongoDB Backups |
|
||||
| mongodb | mongo:7@sha256:a814f930db8c4514f5fe5dc3e489f58637fb7ee32a7b9bb0b7064d3274e90b8e | |
|
||||
| mongodb-exporter | percona/mongodb_exporter:0.47.1@sha256:8ba5d6e25fe7e30912f10b01a9e16e14c6c3af05f36dcaed0659690d70dc1670 | |
|
||||
| multi-scrobbler | foxxmd/multi-scrobbler@sha256:e1e4832256f5fca895dc3e2f377abfb1476230eb6b30da97fbc32840f21d1e7f | JS App for scrobbling/recording play history from/to multiple sources |
|
||||
| n8n | docker.n8n.io/n8nio/n8n@sha256:a17dbca282c95d2aa5021f0860ca136c1bda529daaa37dbece117c029d65ca39 | Extendable workflow automation tool to easily automate tasks |
|
||||
| navidrome | deluan/navidrome:latest@sha256:648ebd45c50c58edc7ad9f0cc3b4411a1bece16c81f0b3630a0ab0a739c6d7ec | Music Streaming |
|
||||
| netalertx | jokobsk/netalertx:latest@sha256:9304e29cd71bf9ddc9f33d6a7ddb3d71bab71815e077ab330f86bcc081598a79 | Network Monitoring |
|
||||
| nextcloud | nextcloud/all-in-one:latest@sha256:090f59bbef2c6753b2ac58163d3bece84b15af19d9d83d02c33da83080cb6400 | Private Cloud |
|
||||
| nocodb | nocodb/nocodb:latest@sha256:8fd57018accf775fb5390392910e4b0ef6bb154f17c5732b478eb76c40ee8d1e | Turn any SQL-based database into a smart spreadsheet |
|
||||
| nocodb-pg-db | postgres:16-alpine@sha256:029660641a0cfc575b14f336ba448fb8a75fd595d42e1fa316b9fb4378742297 | |
|
||||
| nocodb-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| ollama | ollama/ollama:latest@sha256:e8c3d1f6ad16323bc40dc63eff0701d4fc32113f75a86b54b3e836eef8290de6 | |
|
||||
| ombi | lscr.io/linuxserver/ombi:latest@sha256:edd574de14131cfc1e641904684ff7aa7a98defedd42b8cfdff6159cb2917db1 | Media Requests |
|
||||
| omnitools | iib0011/omni-tools:latest@sha256:66027051e7fcf25ca898f3ddddb1e7a7a6682fea4985ca4b96444a7b9d5a984c | Tools for common tasks |
|
||||
| omnipoly | kweg/omnipoly:latest@sha256:fa133d5ac6534ee45e393fab85ad61098a0826351724996e0d29ba61033dde7d | Open-source language translation with LanguageTool, LibreTranslate, & Ollama |
|
||||
| open-webui | ghcr.io/open-webui/open-webui:main@sha256:53a4d2fc8c7a7cc620cd18e6fe416ed9940f2db87fddf837e3aa55111bec6995 | User-friendly and extensible AI interface |
|
||||
| open-webui-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| paperless-ngx | ghcr.io/paperless-ngx/paperless-ngx:latest@sha256:5f2a72fd7be42c6b1d8fa1751606a140452d4c3e6e829ae6b1b15e3c95129481 | Document indexer & archiver with OCR |
|
||||
| paperless-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| pgbackweb | eduardolat/pgbackweb:latest@sha256:56358e7adff53250ec0b43cf2764e723e45872fa2b92b9608fdddfeebaafbed7 | Backups for PostgreSQL |
|
||||
| pgbackweb-db | postgres:17-alpine@sha256:ef257d85f76e48da1c64832459b59fcaba1a4dac97bf5d7450c77753542eee94 | |
|
||||
| planka | ghcr.io/plankanban/planka:2.0.0-rc.3@sha256:5a2a69ec7159a2f9c6679c31698e4b5b17ccf254d5bfc6e9be43e411b6de0c3d | Kanban board |
|
||||
| planka-pg-db | postgres:16-alpine@sha256:029660641a0cfc575b14f336ba448fb8a75fd595d42e1fa316b9fb4378742297 | |
|
||||
| plant-it | msdeluise/plant-it-server:latest@sha256:23ddf8660087d6b9f5dbdca2ca09817b84db45cb2d9d6e2e0176e70f514629e7 | 🪴 Self-hosted, open source gardening companion app |
|
||||
| plant-it-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| plantuml-server | plantuml/plantuml-server:jetty@sha256:ac656ab4215fd80554c59330fd365a3b29041e317f232563c7fc807680ec4ef0 | Textual diagram generator for UML & other visualizations. |
|
||||
| portainer | portainer/portainer-ce:alpine@sha256:adcb33ce6a1debd31918a215ebfd08bca84259b907466d93cea63bd538d20f02 | Service delivery platform for containerized applications |
|
||||
| portchecker-web | ghcr.io/dsgnr/portcheckerio-web:latest@sha256:8bea203e8785541c0acac7860de9f70849b05806e0c6db1d83dfc1b8407a6077 | Service delivery platform for containerized applications |
|
||||
| portchecker-api | ghcr.io/dsgnr/portcheckerio-api:latest@sha256:7783796d791c3e10aedba9d5f7fc2b934bb0e7afa75bc89054b70b886ed39e5c | |
|
||||
| postal-smtp | ghcr.io/postalserver/postal:latest@sha256:ff9a42deeda9b236ac36df012dab843b14726da8f3c2464c18c371f23107d986 | |
|
||||
| postal-web | ghcr.io/postalserver/postal:latest@sha256:ff9a42deeda9b236ac36df012dab843b14726da8f3c2464c18c371f23107d986 | OSS Mail delivery platform |
|
||||
| postal-worker | ghcr.io/postalserver/postal:latest@sha256:ff9a42deeda9b236ac36df012dab843b14726da8f3c2464c18c371f23107d986 | |
|
||||
| protonmail-bridge | shenxn/protonmail-bridge@sha256:3717b4441130675dc9131196de9f9c5287d2ea21b138d83b0486429e1737638a | |
|
||||
| prowlarr | lscr.io/linuxserver/prowlarr:latest@sha256:643220338204525524db787ff38a607261597f49d1f550694acdb3e908e2b43e | Index aggregator |
|
||||
| qbit-manage | ghcr.io/stuffanthings/qbit_manage:latest@sha256:64f749b97604d607747fc8b790821cf0317d8107385ea111afe1ed1c9d1d5b11 | |
|
||||
| qbittorrentvpn | ghcr.io/binhex/arch-qbittorrentvpn:latest@sha256:e6556875ffa483ff603c0ed76c0c10122efad1edee2d9f5e4a94244accd5b3a3 | Fast and stable torrent client |
|
||||
| radarec | thewicklowwolf/radarec:latest@sha256:df726f35e3a1ef2f0cd482a6cf993bac8782804efd38ee8004c8694f7e8f526e | Movie discovery based on library/tastes |
|
||||
| radarr | lscr.io/linuxserver/radarr:latest@sha256:c984533510abe0219a70e80d15bd0d212b7df21baa0913759c4ce6cc9092240b | Movie Automation |
|
||||
| reactive-resume | amruthpillai/reactive-resume:latest@sha256:f1b27f567b2a1b57fb6b2a81f7b9cec0af577b6be945820c1599a0a8b6b91f8b | Open-source resume builder |
|
||||
| reactive-resume-pg | postgres:16-alpine@sha256:029660641a0cfc575b14f336ba448fb8a75fd595d42e1fa316b9fb4378742297 | |
|
||||
| readarr | lscr.io/linuxserver/readarr:develop@sha256:eb37f58646a901dc7727cf448cae36daaefaba79de33b5058dab79aa4c04aefb | eBook/Audiobook Automation |
|
||||
| redlib | quay.io/redlib/redlib:latest@sha256:25dbb5466ebd22e58277d4aa54897899b044f02f7219ca3054784aecc0be34e1 | Redlib is a private front-end like Invidious but for Reddit |
|
||||
| rocketchat | registry.rocket.chat/rocketchat/rocket.chat:latest | Fully customizable communications platform with high standards of data protection |
|
||||
| romm | rommapp/romm:latest@sha256:1895c339b3c7ca62d52f809f5e4c747d78fc8291ea5ee88b3b57df84acf33449 | Beautiful, powerful, self-hosted ROM manager |
|
||||
| romm-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| sabnzbdvpn | ghcr.io/binhex/arch-sabnzbdvpn:latest@sha256:411ed4ba589529960690c08de64fb2791c76d37d9a4278a99d30d7d32fc701f5 | NZB Downloader over VPN |
|
||||
| sablier | sablierapp/sablier:latest@sha256:4d4096b59a6e1496bd3106c1a90a7fdd161aafb73d58539b8c749c69380dedae | |
|
||||
| scraparr | ghcr.io/thecfu/scraparr:2@sha256:cfe07f005aa6e93221dd0bb540600aaa51ea1215968595806863f9df3dc3b26c | |
|
||||
| scrutiny | ghcr.io/analogj/scrutiny:master-omnibus@sha256:e5638d8580adba40f7c03464cde8420866188b9e48cddb9fc3866ec3243163d5 | WebUI for smartd S.M.A.R.T monitoring |
|
||||
| searxng | searxng/searxng:latest@sha256:5a5d0e69819757e3fa23392a687c63851250bc13d2486a1f1711804b1691dc12 | Anonymized Meta-Search Engine |
|
||||
| searxng-valkey | docker.io/valkey/valkey:9-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 | |
|
||||
| semaphore-ui | semaphoreui/semaphore:v2.16.45@sha256:979a5924ed459d5169178197fc7b4d849bcb6fbb4aded1f1d1c0b279717b5187 | Modern UI for Ansible, Terraform, OpenTofu, PowerShell and other DevOps tools |
|
||||
| signoz-app | signoz/signoz:v0.96.1@sha256:e2cded000c87adb0366c9ae4f292e034515458552d151879195071ba4f078b4e | Logs, metrics, and traces in a single pane |
|
||||
| signoz-clickhouse | clickhouse/clickhouse-server:25.5.6-alpine | |
|
||||
| signoz-init-clickhouse | clickhouse/clickhouse-server:25.5.6-alpine | |
|
||||
| signoz-logspout | pavanputhra/logspout-signoz@sha256:6da8ce12279a5262de8b2d5c083ce82d4c878c4eab702b4d328afe147ed7553b | |
|
||||
| signoz-otel-collector | signoz/signoz-otel-collector:v0.129.8@sha256:1beda534e337767597c3fdc83fcca8593a98b6db89bc34032e8fec7c58b7c900 | |
|
||||
| signoz-schema-migrator-async | signoz/signoz-schema-migrator:v0.129.8@sha256:eb20e69025373e0d9749d3a88e34d74654ea4c03be694eebdb5b76a6cbeadfdc | |
|
||||
| signoz-schema-migrator-sync | signoz/signoz-schema-migrator:v0.129.8@sha256:eb20e69025373e0d9749d3a88e34d74654ea4c03be694eebdb5b76a6cbeadfdc | |
|
||||
| signoz-zookeeper-1 | signoz/zookeeper:3.7.1@sha256:fcc4a3288154ccaa3bdb5ae6dc10180c084d29a8a6a26b62ac8e30a8940dc2e6 | |
|
||||
| sonarqube | mc1arke/sonarqube-with-community-branch-plugin:lts@sha256:70b055c294a2a751357ee65d5d55139c93f87faed436d0075034da38b2edafa1 | Code/DevOps quality/security |
|
||||
| sonarqube-pg-db | postgres:17-alpine@sha256:ef257d85f76e48da1c64832459b59fcaba1a4dac97bf5d7450c77753542eee94 | |
|
||||
| sonarr | lscr.io/linuxserver/sonarr:latest@sha256:4b8a853b76337cd5de5f69961e23b7d0792ce7bf0a8be083dd7202ef670bfc34 | TV Show Automation |
|
||||
| sonashow | thewicklowwolf/sonashow:latest@sha256:4b40df407bf31577668bfb3191e007ac78c349d81bfde7463ec8433d417ebd3d | TV show discovery based on library/tastes |
|
||||
| soularr | mrusse08/soularr:latest@sha256:71a0b9e5a522d76bb0ffdb6d720d681fde22417b3a5acc9ecae61c89d05d8afc | |
|
||||
| soularr-dashboard | ghcr.io/mrusse/soularr:main@sha256:61181c5809845d2c49c8c3c182c0280c5c91069cd2e5d7c341ddd8bfa2c01598 | Dashboard for monitoring Soularr |
|
||||
| soulseek | slskd/slskd@sha256:239ccb871fa1a624aa8ad4f11a712b4ec6c7a2ff570bf5800abae2cf91030834 | Modern client-server application for the Soulseek file-sharing network. |
|
||||
| speedtest-tracker | lscr.io/linuxserver/speedtest-tracker:latest@sha256:f09edeb0c1dbb63db9c0bf256e8cb41cea48943d97881dba4522991051ebd28c | Self-hosted internet performance tracking |
|
||||
| stable-diffusion-webui | ghcr.io/neggles/sd-webui-docker:latest@sha256:1795fe796e1dad0d8d3baa9ef7c38a255b69c0878b76869feecc617bfd015e53 | |
|
||||
| stirling-pdf | docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest@sha256:bfe2b8dd378c4f3d5fc1d2fc7649a357d0916b3a713022aa70ac3f08d6302cbc | PDF Operations |
|
||||
| swag | lscr.io/linuxserver/swag:latest@sha256:19c0853e19c0446a45e84773ee4b2ff94ed643fc30d7e49070145601e378a0b3 | SWAG Dashboard for proxies |
|
||||
| tandoor | vabene1111/recipes@sha256:af6bd76e703d644748a93d581da05c25159d742b94b2da9eddadaaec93555858 | Recipes, cookbooks, meal-planning, & grocery lists |
|
||||
| tandoor-pg | postgres:16-alpine@sha256:029660641a0cfc575b14f336ba448fb8a75fd595d42e1fa316b9fb4378742297 | |
|
||||
| unmanic | josh5/unmanic:latest@sha256:998f2dd5cbf6379a85e3427d0339dcfd3500f93e7a2ad089b968803d3fe05fbe | Library Optimizer |
|
||||
| uptimekuma | louislam/uptime-kuma:latest@sha256:431fee3be822b04861cf0e35daf4beef6b7cb37391c5f26c3ad6e12ce280fe18 | HTTP Endpoint Monitoring |
|
||||
| vault | hashicorp/vault:latest@sha256:62dd55c9ccbdc0af0a9269e87481a64650258907434d5ddb5e795e2eb2ac5780 | HashiCorp Vault for secrets, key/value stores, etc. |
|
||||
| wallos | bellamy/wallos:latest@sha256:1277c83dc626853ac14658c1b0aaf003e1bced213c37370d149fdd9622b5747f | Subscription Tracking |
|
||||
| web-check | lissy93/web-check@sha256:f2d1dc726958c1d79ac459cac84eb26eb4f203a4d27447f336695a8c1884f1e3 | Site scanner for attack vectors, architecture, security configs, and more |
|
||||
| whodb | clidey/whodb@sha256:9bdd46c7d37c2cf6aa57a689749eb28acd5ea6b63519c58d59cb25a1ee8f57ae | Lightweight next-gen database explorer |
|
||||
| wizarr | ghcr.io/wizarrrr/wizarr@sha256:dbf51675f35cd39db92d0a6522b461eec5e28f65357d804c60daca60ba1f3dd8 | User invitation management system for Jellyfin, Plex, and Emby |
|
||||
| youtubedl | nbr23/youtube-dl-server:latest@sha256:a5274ded39024da2fe8c3116747e9b906a867ffea8307a6cd4220215f1dfefed | YouTube Downloader |
|
||||
|
||||
[
|
||||
{
|
||||
"service": "actual_server",
|
||||
"image": "docker.io/actualbudget/actual-server:latest"
|
||||
},
|
||||
{
|
||||
"service": "adguard",
|
||||
"image": "adguard/adguardhome:latest"
|
||||
},
|
||||
{
|
||||
"service": "apprise",
|
||||
"image": "lscr.io/linuxserver/apprise-api:latest"
|
||||
},
|
||||
{
|
||||
"service": "audiobookshelf",
|
||||
"image": "ghcr.io/advplyr/audiobookshelf:latest"
|
||||
},
|
||||
{
|
||||
"service": "authelia",
|
||||
"image": "authelia/authelia:master"
|
||||
},
|
||||
{
|
||||
"service": "authelia-pg",
|
||||
"image": "postgres:16-alpine"
|
||||
},
|
||||
{
|
||||
"service": "bazarr",
|
||||
"image": "lscr.io/linuxserver/bazarr:latest"
|
||||
},
|
||||
{
|
||||
"service": "bitmagnet",
|
||||
"image": "ghcr.io/bitmagnet-io/bitmagnet:latest"
|
||||
},
|
||||
{
|
||||
"service": "bitmagnet-pg-db",
|
||||
"image": "postgres:17-alpine"
|
||||
},
|
||||
{
|
||||
"service": "bitwarden",
|
||||
"image": "vaultwarden/server:latest"
|
||||
},
|
||||
{
|
||||
"service": "bluesky-pds",
|
||||
"image": "ghcr.io/bluesky-social/pds:latest"
|
||||
},
|
||||
{
|
||||
"service": "browserless",
|
||||
"image": "ghcr.io/browserless/chromium:latest"
|
||||
},
|
||||
{
|
||||
"service": "castopod",
|
||||
"image": "castopod/castopod:latest"
|
||||
},
|
||||
{
|
||||
"service": "cloudflared",
|
||||
"image": "cloudflare/cloudflared:latest"
|
||||
},
|
||||
{
|
||||
"service": "cloudflareddns",
|
||||
"image": "ghcr.io/hotio/cloudflareddns:latest"
|
||||
},
|
||||
{
|
||||
"service": "crowdsec",
|
||||
"image": "crowdsecurity/crowdsec:latest"
|
||||
},
|
||||
{
|
||||
"service": "crowdsec-dashboard",
|
||||
"image": "metabase/metabase"
|
||||
},
|
||||
{
|
||||
"service": "czkawka",
|
||||
"image": "jlesage/czkawka"
|
||||
},
|
||||
{
|
||||
"service": "dagu-scheduler",
|
||||
"image": "ghcr.io/dagu-org/dagu:latest"
|
||||
},
|
||||
{
|
||||
"service": "dagu-server",
|
||||
"image": "ghcr.io/dagu-org/dagu:latest"
|
||||
},
|
||||
{
|
||||
"service": "delugevpn",
|
||||
"image": "ghcr.io/binhex/arch-delugevpn:latest"
|
||||
},
|
||||
{
|
||||
"service": "docker-socket-proxy",
|
||||
"image": "ghcr.io/tecnativa/docker-socket-proxy:latest"
|
||||
},
|
||||
{
|
||||
"service": "docuseal",
|
||||
"image": "docuseal/docuseal:latest"
|
||||
},
|
||||
{
|
||||
"service": "duplicati",
|
||||
"image": "lscr.io/linuxserver/duplicati:latest"
|
||||
},
|
||||
{
|
||||
"service": "fastenhealth",
|
||||
"image": "ghcr.io/fastenhealth/fasten-onprem:main"
|
||||
},
|
||||
{
|
||||
"service": "flaresolverr",
|
||||
"image": "ghcr.io/flaresolverr/flaresolverr:latest"
|
||||
},
|
||||
{
|
||||
"service": "ghost",
|
||||
"image": "ghost:latest"
|
||||
},
|
||||
{
|
||||
"service": "gitea",
|
||||
"image": "gitea/gitea:1.22.2"
|
||||
},
|
||||
{
|
||||
"service": "gitea-db",
|
||||
"image": "postgres:14"
|
||||
},
|
||||
{
|
||||
"service": "gitea-opengist",
|
||||
"image": "ghcr.io/thomiceli/opengist:latest"
|
||||
},
|
||||
{
|
||||
"service": "gitea-runner",
|
||||
"image": "gitea/act_runner:latest"
|
||||
},
|
||||
{
|
||||
"service": "gitea-sonarqube-bot",
|
||||
"image": "justusbunsi/gitea-sonarqube-bot:v0.4.0"
|
||||
},
|
||||
{
|
||||
"service": "gluetun",
|
||||
"image": "qmcgaw/gluetun:latest"
|
||||
},
|
||||
{
|
||||
"service": "gotify",
|
||||
"image": "gotify/server"
|
||||
},
|
||||
{
|
||||
"service": "grafana",
|
||||
"image": "grafana/grafana-enterprise:latest"
|
||||
},
|
||||
{
|
||||
"service": "grafana-alloy",
|
||||
"image": "grafana/alloy:latest"
|
||||
},
|
||||
{
|
||||
"service": "grafana-loki",
|
||||
"image": "grafana/loki:latest"
|
||||
},
|
||||
{
|
||||
"service": "grafana-mimir",
|
||||
"image": "grafana/mimir:latest"
|
||||
},
|
||||
{
|
||||
"service": "grafana-mimir-memcached",
|
||||
"image": "memcached"
|
||||
},
|
||||
{
|
||||
"service": "grafana-pyroscope",
|
||||
"image": "grafana/pyroscope:latest"
|
||||
},
|
||||
{
|
||||
"service": "grafana-tempo",
|
||||
"image": "grafana/tempo:latest"
|
||||
},
|
||||
{
|
||||
"service": "homepage",
|
||||
"image": "ghcr.io/gethomepage/homepage:latest"
|
||||
},
|
||||
{
|
||||
"service": "hortusfox",
|
||||
"image": "ghcr.io/danielbrendel/hortusfox-web:latest"
|
||||
},
|
||||
{
|
||||
"service": "hugo",
|
||||
"image": "hugomods/hugo:exts"
|
||||
},
|
||||
{
|
||||
"service": "invidious",
|
||||
"image": "quay.io/invidious/invidious:latest"
|
||||
},
|
||||
{
|
||||
"service": "invidious-db",
|
||||
"image": "docker.io/library/postgres:14"
|
||||
},
|
||||
{
|
||||
"service": "invoice_ninja",
|
||||
"image": "invoiceninja/invoiceninja:5"
|
||||
},
|
||||
{
|
||||
"service": "invoice_ninja_proxy",
|
||||
"image": "nginx"
|
||||
},
|
||||
{
|
||||
"service": "it-tools",
|
||||
"image": "ghcr.io/corentinth/it-tools:latest"
|
||||
},
|
||||
{
|
||||
"service": "jellyfin",
|
||||
"image": "jellyfin/jellyfin"
|
||||
},
|
||||
{
|
||||
"service": "jitsi-etherpad",
|
||||
"image": "etherpad/etherpad:1.8.6"
|
||||
},
|
||||
{
|
||||
"service": "jitsi-jibri",
|
||||
"image": "jitsi/jibri:${JITSI_IMAGE_VERSION:-stable}"
|
||||
},
|
||||
{
|
||||
"service": "jitsi-jicofo",
|
||||
"image": "jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable}"
|
||||
},
|
||||
{
|
||||
"service": "jitsi-jigasi",
|
||||
"image": "jitsi/jigasi:${JITSI_IMAGE_VERSION:-stable}"
|
||||
},
|
||||
{
|
||||
"service": "jitsi-jvb",
|
||||
"image": "jitsi/jvb:${JITSI_IMAGE_VERSION:-stable}"
|
||||
},
|
||||
{
|
||||
"service": "jitsi-prosody",
|
||||
"image": "jitsi/prosody:${JITSI_IMAGE_VERSION:-stable}"
|
||||
},
|
||||
{
|
||||
"service": "jitsi-web",
|
||||
"image": "jitsi/web:${JITSI_IMAGE_VERSION:-stable}"
|
||||
},
|
||||
{
|
||||
"service": "joplin-db",
|
||||
"image": "postgres:17-alpine"
|
||||
},
|
||||
{
|
||||
"service": "joplin",
|
||||
"image": "joplin/server:latest"
|
||||
},
|
||||
{
|
||||
"service": "komodo-core",
|
||||
"image": "ghcr.io/mbecker20/komodo:latest"
|
||||
},
|
||||
{
|
||||
"service": "komodo-ferretdb",
|
||||
"image": "ghcr.io/ferretdb/ferretdb"
|
||||
},
|
||||
{
|
||||
"service": "komodo-periphery",
|
||||
"image": "ghcr.io/mbecker20/periphery:latest"
|
||||
},
|
||||
{
|
||||
"service": "komodo-pg-db",
|
||||
"image": "postgres:17-alpine"
|
||||
},
|
||||
{
|
||||
"service": "librespeed",
|
||||
"image": "lscr.io/linuxserver/librespeed:latest"
|
||||
},
|
||||
{
|
||||
"service": "lidarr",
|
||||
"image": "lscr.io/linuxserver/lidarr:latest"
|
||||
},
|
||||
{
|
||||
"service": "lidify",
|
||||
"image": "thewicklowwolf/lidify:latest"
|
||||
},
|
||||
{
|
||||
"service": "lldap",
|
||||
"image": "lldap/lldap:stable"
|
||||
},
|
||||
{
|
||||
"service": "localai",
|
||||
"image": "localai/localai:latest-aio-cpu"
|
||||
},
|
||||
{
|
||||
"service": "maloja",
|
||||
"image": "krateng/maloja:latest"
|
||||
},
|
||||
{
|
||||
"service": "mariadb",
|
||||
"image": "ghcr.io/linuxserver/mariadb"
|
||||
},
|
||||
{
|
||||
"service": "meshcentral",
|
||||
"image": "ghcr.io/ylianst/meshcentral:master"
|
||||
},
|
||||
{
|
||||
"service": "minio",
|
||||
"image": "minio/minio"
|
||||
},
|
||||
{
|
||||
"service": "mongodb",
|
||||
"image": "mongo:7.0"
|
||||
},
|
||||
{
|
||||
"service": "multi-scrobbler",
|
||||
"image": "foxxmd/multi-scrobbler"
|
||||
},
|
||||
{
|
||||
"service": "n8n",
|
||||
"image": "docker.n8n.io/n8nio/n8n"
|
||||
},
|
||||
{
|
||||
"service": "navidrome",
|
||||
"image": "deluan/navidrome:latest"
|
||||
},
|
||||
{
|
||||
"service": "netbox",
|
||||
"image": "lscr.io/linuxserver/netbox:latest"
|
||||
},
|
||||
{
|
||||
"service": "netbox-db",
|
||||
"image": "postgres:17-alpine"
|
||||
},
|
||||
{
|
||||
"service": "nextcloud",
|
||||
"image": "lscr.io/linuxserver/nextcloud:latest"
|
||||
},
|
||||
{
|
||||
"service": "ollama",
|
||||
"image": "ollama/ollama"
|
||||
},
|
||||
{
|
||||
"service": "ombi",
|
||||
"image": "lscr.io/linuxserver/ombi:latest"
|
||||
},
|
||||
{
|
||||
"service": "paperless-ngx",
|
||||
"image": "ghcr.io/paperless-ngx/paperless-ngx:latest"
|
||||
},
|
||||
{
|
||||
"service": "plausible",
|
||||
"image": "ghcr.io/plausible/community-edition:v2.1.0"
|
||||
},
|
||||
{
|
||||
"service": "plausible_db",
|
||||
"image": "postgres:16-alpine"
|
||||
},
|
||||
{
|
||||
"service": "plausible_events_db",
|
||||
"image": "clickhouse/clickhouse-server:24.3.3.102-alpine"
|
||||
},
|
||||
{
|
||||
"service": "postal-smtp",
|
||||
"image": "ghcr.io/postalserver/postal:latest"
|
||||
},
|
||||
{
|
||||
"service": "postal-web",
|
||||
"image": "ghcr.io/postalserver/postal:latest"
|
||||
},
|
||||
{
|
||||
"service": "postal-worker",
|
||||
"image": "ghcr.io/postalserver/postal:latest"
|
||||
},
|
||||
{
|
||||
"service": "prowlarr",
|
||||
"image": "lscr.io/linuxserver/prowlarr:latest"
|
||||
},
|
||||
{
|
||||
"service": "radarec",
|
||||
"image": "thewicklowwolf/radarec:latest"
|
||||
},
|
||||
{
|
||||
"service": "radarr",
|
||||
"image": "lscr.io/linuxserver/radarr:latest"
|
||||
},
|
||||
{
|
||||
"service": "reactive-resume",
|
||||
"image": "amruthpillai/reactive-resume:latest"
|
||||
},
|
||||
{
|
||||
"service": "reactive-resume-pg",
|
||||
"image": "postgres:16-alpine"
|
||||
},
|
||||
{
|
||||
"service": "readarr",
|
||||
"image": "lscr.io/linuxserver/readarr:develop"
|
||||
},
|
||||
{
|
||||
"service": "redis",
|
||||
"image": "redis:alpine"
|
||||
},
|
||||
{
|
||||
"service": "redlib",
|
||||
"image": "quay.io/redlib/redlib:latest"
|
||||
},
|
||||
{
|
||||
"service": "sabnzbdvpn",
|
||||
"image": "ghcr.io/binhex/arch-sabnzbdvpn:latest"
|
||||
},
|
||||
{
|
||||
"service": "scraperr",
|
||||
"image": "jpyles0524/scraperr:latest"
|
||||
},
|
||||
{
|
||||
"service": "scraperr-api",
|
||||
"image": "jpyles0524/scraperr_api:latest"
|
||||
},
|
||||
{
|
||||
"service": "scrutiny",
|
||||
"image": "ghcr.io/analogj/scrutiny:master-omnibus"
|
||||
},
|
||||
{
|
||||
"service": "searxng",
|
||||
"image": "searxng/searxng:latest"
|
||||
},
|
||||
{
|
||||
"service": "semaphore",
|
||||
"image": "semaphoreui/semaphore:v2.10.32"
|
||||
},
|
||||
{
|
||||
"service": "slurpit-portal",
|
||||
"image": "slurpit/portal:latest"
|
||||
},
|
||||
{
|
||||
"service": "slurpit-scanner",
|
||||
"image": "slurpit/scanner:latest"
|
||||
},
|
||||
{
|
||||
"service": "slurpit-scraper",
|
||||
"image": "slurpit/scraper:latest"
|
||||
},
|
||||
{
|
||||
"service": "slurpit-warehouse",
|
||||
"image": "slurpit/warehouse:latest"
|
||||
},
|
||||
{
|
||||
"service": "sonarqube",
|
||||
"image": "mc1arke/sonarqube-with-community-branch-plugin:lts"
|
||||
},
|
||||
{
|
||||
"service": "sonarqube-pg-db",
|
||||
"image": "postgres:17-alpine"
|
||||
},
|
||||
{
|
||||
"service": "sonarr",
|
||||
"image": "lscr.io/linuxserver/sonarr:latest"
|
||||
},
|
||||
{
|
||||
"service": "sonashow",
|
||||
"image": "thewicklowwolf/sonashow:latest"
|
||||
},
|
||||
{
|
||||
"service": "soulseek",
|
||||
"image": "slskd/slskd"
|
||||
},
|
||||
{
|
||||
"service": "spotisub",
|
||||
"image": "blastbeng/spotisub:latest"
|
||||
},
|
||||
{
|
||||
"service": "swag",
|
||||
"image": "lscr.io/linuxserver/swag:latest"
|
||||
},
|
||||
{
|
||||
"service": "synapse",
|
||||
"image": "docker.io/matrixdotorg/synapse:latest"
|
||||
},
|
||||
{
|
||||
"service": "synapse-db",
|
||||
"image": "postgres:16-alpine"
|
||||
},
|
||||
{
|
||||
"service": "tandoor",
|
||||
"image": "vabene1111/recipes"
|
||||
},
|
||||
{
|
||||
"service": "tandoor-pg",
|
||||
"image": "postgres:16-alpine"
|
||||
},
|
||||
{
|
||||
"service": "traccar",
|
||||
"image": "traccar/traccar:latest"
|
||||
},
|
||||
{
|
||||
"service": "traccar-pg",
|
||||
"image": "postgres:16-alpine"
|
||||
},
|
||||
{
|
||||
"service": "unmanic",
|
||||
"image": "josh5/unmanic:latest"
|
||||
},
|
||||
{
|
||||
"service": "uptimekuma",
|
||||
"image": "louislam/uptime-kuma:latest"
|
||||
},
|
||||
{
|
||||
"service": "vault",
|
||||
"image": "hashicorp/vault:latest"
|
||||
},
|
||||
{
|
||||
"service": "wallabag",
|
||||
"image": "wallabag/wallabag"
|
||||
},
|
||||
{
|
||||
"service": "wallos",
|
||||
"image": "bellamy/wallos:latest"
|
||||
},
|
||||
{
|
||||
"service": "watchtower",
|
||||
"image": "ghcr.io/containrrr/watchtower:latest"
|
||||
},
|
||||
{
|
||||
"service": "wazuh.agent",
|
||||
"image": "opennix/wazuh-agent:latest"
|
||||
},
|
||||
{
|
||||
"service": "wazuh.dashboard",
|
||||
"image": "wazuh/wazuh-dashboard:${WAZUH_VERSION}"
|
||||
},
|
||||
{
|
||||
"service": "wazuh.indexer",
|
||||
"image": "wazuh/wazuh-indexer:${WAZUH_VERSION}"
|
||||
},
|
||||
{
|
||||
"service": "wazuh.manager",
|
||||
"image": "wazuh/wazuh-manager:${WAZUH_VERSION}"
|
||||
},
|
||||
{
|
||||
"service": "web-check",
|
||||
"image": "lissy93/web-check"
|
||||
},
|
||||
{
|
||||
"service": "whodb",
|
||||
"image": "clidey/whodb"
|
||||
},
|
||||
{
|
||||
"service": "your_spotify",
|
||||
"image": "lscr.io/linuxserver/your_spotify:latest"
|
||||
},
|
||||
{
|
||||
"service": "youtubedl",
|
||||
"image": "nbr23/youtube-dl-server:latest"
|
||||
},
|
||||
{
|
||||
"service": "zammad-backup",
|
||||
"image": "postgres:${ZAMMAD_POSTGRES_VERSION}"
|
||||
},
|
||||
{
|
||||
"service": "zammad-elasticsearch",
|
||||
"image": "bitnami/elasticsearch:${ZAMMAD_ELASTICSEARCH_VERSION}"
|
||||
},
|
||||
{
|
||||
"service": "zammad-init",
|
||||
"image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}"
|
||||
},
|
||||
{
|
||||
"service": "zammad-memcached",
|
||||
"image": "memcached:${ZAMMAD_MEMCACHE_VERSION}"
|
||||
},
|
||||
{
|
||||
"service": "zammad-nginx",
|
||||
"image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}"
|
||||
},
|
||||
{
|
||||
"service": "zammad-postgresql",
|
||||
"image": "postgres:${ZAMMAD_POSTGRES_VERSION}"
|
||||
},
|
||||
{
|
||||
"service": "zammad-railsserver",
|
||||
"image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}"
|
||||
},
|
||||
{
|
||||
"service": "zammad-redis",
|
||||
"image": "redis:${ZAMMAD_REDIS_VERSION}"
|
||||
},
|
||||
{
|
||||
"service": "zammad-scheduler",
|
||||
"image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}"
|
||||
},
|
||||
{
|
||||
"service": "zammad-websocket",
|
||||
"image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}"
|
||||
},
|
||||
{
|
||||
"service": "zitadel",
|
||||
"image": "ghcr.io/zitadel/zitadel:latest"
|
||||
},
|
||||
{
|
||||
"service": "zitadel-pg-db",
|
||||
"image": "postgres:16-alpine"
|
||||
}
|
||||
]
|
||||
```
|
||||
+4364
-4173
File diff suppressed because it is too large
Load Diff
+842
@@ -0,0 +1,842 @@
|
||||
# Global Settings
|
||||
COMPOSE_HTTP_TIMEOUT=''
|
||||
DOCKER_GID=''
|
||||
DOCKER_HOSTNAME=''
|
||||
DOCKER_VOLUME_CONFIG=''
|
||||
DOCKER_VOLUME_STORAGE=''
|
||||
PGID=''
|
||||
PUID=''
|
||||
TZ=''
|
||||
MY_TLD=''
|
||||
# END OF DEFAULT SETTINGS
|
||||
|
||||
##
|
||||
## ADDY
|
||||
##
|
||||
ADDY_ANONADDY_ADDITIONAL_USERNAME_LIMIT=''
|
||||
ADDY_ANONADDY_ADMIN_USERNAME=''
|
||||
ADDY_ANONADDY_ALL_DOMAINS=''
|
||||
ADDY_ANONADDY_BANDWIDTH_LIMIT=''
|
||||
ADDY_ANONADDY_DKIM_SELECTOR=''
|
||||
ADDY_ANONADDY_DKIM_SIGNING_KEY=''
|
||||
ADDY_ANONADDY_DNS_RESOLVER=''
|
||||
ADDY_ANONADDY_DOMAIN=''
|
||||
ADDY_ANONADDY_HOSTNAME=''
|
||||
ADDY_ANONADDY_LIMIT=''
|
||||
ADDY_ANONADDY_NEW_ALIAS_LIMIT=''
|
||||
ADDY_ANONADDY_RETURN_PATH=''
|
||||
ADDY_ANONADDY_SECRET=''
|
||||
ADDY_ANONADDY_SIGNING_KEY_FINGERPRINT=''
|
||||
ADDY_APP_KEY=''
|
||||
ADDY_APP_URL=''
|
||||
ADDY_DB_PASSWORD=''
|
||||
ADDY_MAIL_ENCRYPTION=''
|
||||
ADDY_MAIL_FROM_ADDRESS=''
|
||||
ADDY_MAIL_FROM_NAME=''
|
||||
ADDY_POSTFIX_DEBUG=''
|
||||
ADDY_POSTFIX_MESSAGE_SIZE_LIMIT=''
|
||||
ADDY_POSTFIX_RELAYHOST=''
|
||||
ADDY_POSTFIX_RELAYHOST_AUTH_ENABLE=''
|
||||
ADDY_POSTFIX_SMTPD_TLS_CERT_FILE=''
|
||||
ADDY_POSTFIX_SMTPD_TLS_KEY_FILE=''
|
||||
ADDY_POSTFIX_SPAMHAUS_DQS_KEY=''
|
||||
ADDY_REDIS_PASSWORD=''
|
||||
ADDY_RSPAMD_NO_LOCAL_ADDRS=''
|
||||
ADDY_RSPAMD_WEB_PASSWORD=''
|
||||
|
||||
##
|
||||
## ADGUARD
|
||||
##
|
||||
ADGUARD_CONTAINER_NAME=''
|
||||
ADGUARD_ENABLED=''
|
||||
ADGUARD_ENVIRONMENT_SERVERIP=''
|
||||
ADGUARD_NETWORK_MODE=''
|
||||
ADGUARD_PORT_3000=''
|
||||
ADGUARD_PORT_443=''
|
||||
ADGUARD_PORT_53=''
|
||||
ADGUARD_PORT_67=''
|
||||
ADGUARD_PORT_68=''
|
||||
ADGUARD_PORT_80=''
|
||||
ADGUARD_PORT_853=''
|
||||
ADGUARD_RESTART=''
|
||||
ADGUARD_TAG=''
|
||||
|
||||
##
|
||||
## ADGUARD
|
||||
##
|
||||
ADGUARD_CF_TUNNEL_PASSWORD=''
|
||||
ADGUARD_PASSWORD=''
|
||||
|
||||
##
|
||||
## ANYTHINGLLM
|
||||
##
|
||||
ANYTHINGLLM_JWT_SECRET=''
|
||||
|
||||
##
|
||||
## APPRISE
|
||||
##
|
||||
APPRISE_CONTAINER_NAME=''
|
||||
APPRISE_ENABLED=''
|
||||
APPRISE_NETWORK_MODE=''
|
||||
APPRISE_PORT_8000=''
|
||||
APPRISE_RESTART=''
|
||||
APPRISE_TAG=''
|
||||
|
||||
##
|
||||
## AUDIOBOOKSHELF
|
||||
##
|
||||
AUDIOBOOKSHELF_CONTAINER_NAME=''
|
||||
AUDIOBOOKSHELF_ENABLED=''
|
||||
AUDIOBOOKSHELF_NETWORK_MODE=''
|
||||
AUDIOBOOKSHELF_PORT_80=''
|
||||
AUDIOBOOKSHELF_RESTART=''
|
||||
AUDIOBOOKSHELF_TAG=''
|
||||
|
||||
##
|
||||
## AUDIOBOOKSHELF
|
||||
##
|
||||
AUDIOBOOKSHELF_ROOT_API_KEY=''
|
||||
|
||||
##
|
||||
## AUTHELIA
|
||||
##
|
||||
AUTHELIA_AUTH_BIND_LDAP_PASSWORD=''
|
||||
AUTHELIA_JWT_SECRET=''
|
||||
AUTHELIA_SESSION_SECRET=''
|
||||
AUTHELIA_STORAGE_ENCRYPTION_KEY=''
|
||||
AUTHELIA_STORAGE_POSTGRES_PASSWORD=''
|
||||
|
||||
##
|
||||
## BAZARR
|
||||
##
|
||||
BAZARR_CONTAINER_NAME=''
|
||||
BAZARR_ENABLED=''
|
||||
BAZARR_NETWORK_MODE=''
|
||||
BAZARR_PORT_6767=''
|
||||
BAZARR_RESTART=''
|
||||
BAZARR_TAG=''
|
||||
BAZARR_API_KEY=''
|
||||
##
|
||||
## BITMAGNET
|
||||
##
|
||||
BITMAGNET_POSTGRESQL_PASSWORD=''
|
||||
|
||||
##
|
||||
## BITWARDEN
|
||||
##
|
||||
BITWARDEN_CONTAINER_NAME=''
|
||||
BITWARDEN_ENABLED=''
|
||||
BITWARDEN_ENVIRONMENT_ADMIN_TOKEN=''
|
||||
BITWARDEN_ENVIRONMENT_DATABASE_URL=''
|
||||
BITWARDEN_ENVIRONMENT_DISABLE_ADMIN_TOKEN=''
|
||||
BITWARDEN_ENVIRONMENT_DOMAIN=''
|
||||
BITWARDEN_ENVIRONMENT_ENABLE_DB_WAL=''
|
||||
BITWARDEN_ENVIRONMENT_INVITATIONS_ALLOWED=''
|
||||
BITWARDEN_ENVIRONMENT_SHOW_PASSWORD_HINT=''
|
||||
BITWARDEN_ENVIRONMENT_SIGNUPS_ALLOWED=''
|
||||
BITWARDEN_ENVIRONMENT_SIGNUPS_VERIFY=''
|
||||
BITWARDEN_ENVIRONMENT_WEBSOCKET_ENABLE=''
|
||||
BITWARDEN_NETWORK_MODE=''
|
||||
BITWARDEN_PORT_3012=''
|
||||
BITWARDEN_PORT_80=''
|
||||
BITWARDEN_RESTART=''
|
||||
BITWARDEN_TAG=''
|
||||
|
||||
##
|
||||
## CHROMIUM
|
||||
##
|
||||
CHROMIUM_TOKEN=''
|
||||
|
||||
##
|
||||
## CLOUDFLARE
|
||||
##
|
||||
CLOUDFLARE_ACCOUNT_ID=''
|
||||
CLOUDFLARE_DNS_API_TOKEN=''
|
||||
CLOUDFLARE_ZONE_ID=''
|
||||
|
||||
##
|
||||
## CLOUDFLAREDDNS
|
||||
##
|
||||
CLOUDFLAREDDNS_CONTAINER_NAME=''
|
||||
CLOUDFLAREDDNS_ENABLED=''
|
||||
CLOUDFLAREDDNS_ENVIRONMENT_APIKEY=''
|
||||
CLOUDFLAREDDNS_ENVIRONMENT_APITOKEN=''
|
||||
CLOUDFLAREDDNS_ENVIRONMENT_ARGS=''
|
||||
CLOUDFLAREDDNS_ENVIRONMENT_DETECTION_MODE=''
|
||||
CLOUDFLAREDDNS_ENVIRONMENT_HOSTS=''
|
||||
CLOUDFLAREDDNS_ENVIRONMENT_INTERVAL=''
|
||||
CLOUDFLAREDDNS_ENVIRONMENT_LOG_LEVEL=''
|
||||
CLOUDFLAREDDNS_ENVIRONMENT_RECORDTYPES=''
|
||||
CLOUDFLAREDDNS_ENVIRONMENT_USER=''
|
||||
CLOUDFLAREDDNS_ENVIRONMENT_ZONES=''
|
||||
CLOUDFLAREDDNS_RESTART=''
|
||||
CLOUDFLAREDDNS_TAG=''
|
||||
|
||||
##
|
||||
## CROWDSEC
|
||||
##
|
||||
CROWDSEC_API_KEY=''
|
||||
CROWDSEC_LOCAL_API_KEY=''
|
||||
|
||||
##
|
||||
## DELUGEVPN
|
||||
##
|
||||
DELUGEVPN_CONTAINER_NAME=''
|
||||
DELUGEVPN_ENABLED=''
|
||||
DELUGEVPN_ENVIRONMENT_ENABLE_PRIVOXY=''
|
||||
DELUGEVPN_ENVIRONMENT_LAN_NETWORK=''
|
||||
DELUGEVPN_ENVIRONMENT_NAME_SERVERS=''
|
||||
DELUGEVPN_ENVIRONMENT_VPN_CLIENT=''
|
||||
DELUGEVPN_ENVIRONMENT_VPN_ENABLE=''
|
||||
DELUGEVPN_ENVIRONMENT_VPN_INPUT_PORTS=''
|
||||
DELUGEVPN_ENVIRONMENT_VPN_OPTIONS=''
|
||||
DELUGEVPN_ENVIRONMENT_VPN_OUTPUT_PORTS=''
|
||||
DELUGEVPN_ENVIRONMENT_VPN_PASS=''
|
||||
DELUGEVPN_ENVIRONMENT_VPN_PROV=''
|
||||
DELUGEVPN_ENVIRONMENT_VPN_USER=''
|
||||
DELUGEVPN_NETWORK_MODE=''
|
||||
DELUGEVPN_PORT_58846=''
|
||||
DELUGEVPN_PORT_58946=''
|
||||
DELUGEVPN_PORT_8112=''
|
||||
DELUGEVPN_PORT_8118=''
|
||||
DELUGEVPN_RESTART=''
|
||||
DELUGEVPN_TAG=''
|
||||
|
||||
##
|
||||
## DELUGEVPN
|
||||
##
|
||||
DELUGEVPN_PASSWORD=''
|
||||
DELUGEVPN_PORT_51413=''
|
||||
DELUGEVPN_PORT_6881=''
|
||||
|
||||
##
|
||||
## DUPLICATI
|
||||
##
|
||||
DUPLICATI_CONTAINER_NAME=''
|
||||
DUPLICATI_ENABLED=''
|
||||
DUPLICATI_NETWORK_MODE=''
|
||||
DUPLICATI_PORT_8200=''
|
||||
DUPLICATI_RESTART=''
|
||||
DUPLICATI_TAG=''
|
||||
DUPLICATI_VOLUME_BACKUPSDIR=''
|
||||
DUPLICATI_VOLUME_SOURCEDIR=''
|
||||
|
||||
##
|
||||
## DUPLICATI
|
||||
##
|
||||
DUPLICATI_CF_TUNNEL_PASSWORD=''
|
||||
|
||||
##
|
||||
## EMBY
|
||||
##
|
||||
EMBY_CONTAINER_NAME=''
|
||||
EMBY_ENABLED=''
|
||||
EMBY_NETWORK_MODE=''
|
||||
EMBY_PORT_8096=''
|
||||
EMBY_PORT_8920=''
|
||||
EMBY_RESTART=''
|
||||
EMBY_TAG=''
|
||||
EMBY_VOLUME_TRANSCODEDIR=''
|
||||
|
||||
##
|
||||
## EMBY
|
||||
##
|
||||
EMBY_HOMEPAGE_API_KEY=''
|
||||
|
||||
##
|
||||
## FLARESOLVERR
|
||||
##
|
||||
FLARESOLVERR_CONTAINER_NAME=''
|
||||
FLARESOLVERR_ENABLED=''
|
||||
FLARESOLVERR_ENVIRONMENT_CAPTCHA_SOLVER=''
|
||||
FLARESOLVERR_ENVIRONMENT_LOG_HTML=''
|
||||
FLARESOLVERR_ENVIRONMENT_LOG_LEVEL=''
|
||||
FLARESOLVERR_NETWORK_MODE=''
|
||||
FLARESOLVERR_PORT_8191=''
|
||||
FLARESOLVERR_RESTART=''
|
||||
FLARESOLVERR_TAG=''
|
||||
|
||||
##
|
||||
## GHOST
|
||||
##
|
||||
GHOST_DB_PASSWORD=''
|
||||
GHOST_DB_USER=''
|
||||
|
||||
##
|
||||
## GITEA
|
||||
##
|
||||
GITEA_HOMEPAGE_API_KEY=''
|
||||
GITEA_PG_DB_PASSWORD=''
|
||||
GITEA_RUNNER_REGISTRATION_TOKEN=''
|
||||
|
||||
##
|
||||
## GLUETUN
|
||||
##
|
||||
GLUETUN_SERVER_REGIONS=''
|
||||
|
||||
##
|
||||
## GOTIFY
|
||||
##
|
||||
GOTIFY_HOMEPAGE_CLIENT_KEY=''
|
||||
GOTIFY_PASSWORD=''
|
||||
|
||||
##
|
||||
## GRAFANA
|
||||
##
|
||||
GRAFANA_CONTAINER_NAME=''
|
||||
GRAFANA_ENABLED=''
|
||||
GRAFANA_ENVIRONMENT_GF_INSTALL_PLUGINS=''
|
||||
GRAFANA_NETWORK_MODE=''
|
||||
GRAFANA_PORT_3000=''
|
||||
GRAFANA_RESTART=''
|
||||
GRAFANA_TAG=''
|
||||
|
||||
##
|
||||
## GRAFANA
|
||||
##
|
||||
GRAFANA_ADMIN_PASSWORD=''
|
||||
GRAFANA_MIMIR_HTTP_AUTH_PASSWORD=''
|
||||
|
||||
##
|
||||
## GUID
|
||||
##
|
||||
GUID=''
|
||||
|
||||
##
|
||||
## HORTUSFOX
|
||||
##
|
||||
HORTUSFOX_ADMIN_PASSWORD=''
|
||||
HORTUSFOX_DB_PASSWORD=''
|
||||
|
||||
##
|
||||
## HUGINN
|
||||
##
|
||||
HUGINN_CONTAINER_NAME=''
|
||||
HUGINN_ENABLED=''
|
||||
HUGINN_ENVIRONMENT_DATABASE_HOST=''
|
||||
HUGINN_ENVIRONMENT_DATABASE_NAME=''
|
||||
HUGINN_ENVIRONMENT_DATABASE_PASSWORD=''
|
||||
HUGINN_ENVIRONMENT_DATABASE_PORT=''
|
||||
HUGINN_ENVIRONMENT_DATABASE_USERNAME=''
|
||||
HUGINN_NETWORK_MODE=''
|
||||
HUGINN_PORT_3000=''
|
||||
HUGINN_RESTART=''
|
||||
HUGINN_TAG=''
|
||||
|
||||
##
|
||||
## IN
|
||||
##
|
||||
IN_APP_KEY=''
|
||||
IN_MYSQL_PASSWORD=''
|
||||
IN_PASSWORD=''
|
||||
|
||||
##
|
||||
## JAN
|
||||
##
|
||||
JAN_AI_S3_ACCESS_KEY=''
|
||||
JAN_AI_S3_SECRET_KEY=''
|
||||
|
||||
##
|
||||
## JITSI
|
||||
##
|
||||
JITSI__ADMIN_DB_PASSWORD=''
|
||||
JITSI__ADMIN_JWT_SECRET=''
|
||||
JITSI__ETHERPAD_DEFAULT_PAD_TEXT=''
|
||||
JITSI__ETHERPAD_SKIN_NAME=''
|
||||
JITSI__ETHERPAD_SKIN_VARIANTS=''
|
||||
JITSI__ETHERPAD_TITLE=''
|
||||
JITSI__ETHERPAD_URL_BASE=''
|
||||
JITSI__HTTP_PORT=''
|
||||
JITSI__HTTPS_PORT=''
|
||||
JITSI__JIBRI_RECORDER_PASSWORD=''
|
||||
JITSI__JIBRI_XMPP_PASSWORD=''
|
||||
JITSI__JICOFO_AUTH_PASSWORD=''
|
||||
JITSI__JIGAGI_SIP_PASSWORD=''
|
||||
JITSI__JIGAGI_SIP_PORT=''
|
||||
JITSI__JIGAGI_SIP_SERVER=''
|
||||
JITSI__JIGAGI_SIP_TRANSPORT=''
|
||||
JITSI__JIGAGI_SIP_URI=''
|
||||
JITSI__JIGASI_XMPP_PASSWORD=''
|
||||
JITSI__JVB_AUTH_PASSWORD=''
|
||||
JITSI__PUBLIC_URL=''
|
||||
JITSI__SIP_URI=''
|
||||
JITSI__TZ=''
|
||||
JITSI__WEBSOCKET_SECRET=''
|
||||
|
||||
##
|
||||
## JOPLIN
|
||||
##
|
||||
JOPLIN_APP_BASE_URL=''
|
||||
JOPLIN_APP_PORT=''
|
||||
JOPLIN_POSTGRES_DATABASE=''
|
||||
JOPLIN_POSTGRES_PASSWORD=''
|
||||
JOPLIN_POSTGRES_PORT=''
|
||||
JOPLIN_POSTGRES_USER=''
|
||||
JOPLIN_S3_ACCESS_KEY=''
|
||||
JOPLIN_S3_SECRET_KEY=''
|
||||
|
||||
##
|
||||
## KEYCLOAK
|
||||
##
|
||||
KEYCLOAK_ADMIN_PASSWORD=''
|
||||
|
||||
##
|
||||
## LAN
|
||||
##
|
||||
LAN_NETWORK=''
|
||||
|
||||
##
|
||||
## LASTFM
|
||||
##
|
||||
LASTFM_API_KEY=''
|
||||
LASTFM_API_SECRET=''
|
||||
LASTFM_PASSWORD=''
|
||||
LASTFM_USERNAME=''
|
||||
|
||||
##
|
||||
## LIBRESPEED
|
||||
##
|
||||
LIBRESPEED_CONTAINER_NAME=''
|
||||
LIBRESPEED_ENABLED=''
|
||||
LIBRESPEED_ENVIRONMENT_DB_HOSTNAME=''
|
||||
LIBRESPEED_ENVIRONMENT_DB_NAME=''
|
||||
LIBRESPEED_ENVIRONMENT_DB_PASSWORD=''
|
||||
LIBRESPEED_ENVIRONMENT_DB_TYPE=''
|
||||
LIBRESPEED_ENVIRONMENT_DB_USERNAME=''
|
||||
LIBRESPEED_ENVIRONMENT_PASSWORD=''
|
||||
LIBRESPEED_NETWORK_MODE=''
|
||||
LIBRESPEED_PORT_80=''
|
||||
LIBRESPEED_RESTART=''
|
||||
LIBRESPEED_TAG=''
|
||||
|
||||
##
|
||||
## LIDARR
|
||||
##
|
||||
LIDARR_CONTAINER_NAME=''
|
||||
LIDARR_ENABLED=''
|
||||
LIDARR_NETWORK_MODE=''
|
||||
LIDARR_PORT_8686=''
|
||||
LIDARR_RESTART=''
|
||||
LIDARR_TAG=''
|
||||
|
||||
##
|
||||
## LIDARR
|
||||
##
|
||||
LIDARR_API_KEY=''
|
||||
|
||||
##
|
||||
## LLDAP
|
||||
##
|
||||
LLDAP_JWT_SECRET=''
|
||||
LLDAP_KEY_SEED=''
|
||||
|
||||
##
|
||||
## LOCALAI
|
||||
##
|
||||
LOCALAI_API_KEY=''
|
||||
|
||||
##
|
||||
## MALOJA
|
||||
##
|
||||
MALOJA_FORCE_PASSWORD=''
|
||||
|
||||
##
|
||||
## MARIADB
|
||||
##
|
||||
MARIADB_CONTAINER_NAME=''
|
||||
MARIADB_ENABLED=''
|
||||
MARIADB_ENVIRONMENT_MYSQL_ROOT_PASSWORD=''
|
||||
MARIADB_NETWORK_MODE=''
|
||||
MARIADB_PORT_3306=''
|
||||
MARIADB_RESTART=''
|
||||
MARIADB_TAG=''
|
||||
|
||||
##
|
||||
## MATTERMOST
|
||||
##
|
||||
MATTERMOST_AWS_S3_ACCESSKEY=''
|
||||
MATTERMOST_AWS_S3_SECRETKEY=''
|
||||
MATTERMOST_POSTGRES_CONNECTION_URI=''
|
||||
MATTERMOST_POSTGRES_PASSWORD=''
|
||||
|
||||
##
|
||||
## MAYBE
|
||||
##
|
||||
MAYBE_POSTGRES_PASSWORD=''
|
||||
MAYBE_SECRET_KEY_BASE=''
|
||||
|
||||
##
|
||||
## MEDUSAJS
|
||||
##
|
||||
MEDUSAJS_COOKIE_SECRET=''
|
||||
MEDUSAJS_JWT_TOKEN=''
|
||||
MEDUSAJS_POSTGRES_PASSWORD=''
|
||||
MEDUSAJS_S3_ACCESS_KEY=''
|
||||
MEDUSAJS_S3_SECRET_KEY=''
|
||||
|
||||
##
|
||||
## MINIO
|
||||
##
|
||||
MINIO_MIMIR_STORAGE_ACCESS_KEY=''
|
||||
MINIO_MIMIR_STORAGE_SECRET_KEY=''
|
||||
MINIO_ROOT_PASSWORD=''
|
||||
|
||||
##
|
||||
## MONGO
|
||||
##
|
||||
MONGO_INITDB_ROOT_PASSWORD=''
|
||||
MONGO_INITDB_ROOT_USERNAME=''
|
||||
|
||||
##
|
||||
## NAVIDROME
|
||||
##
|
||||
NAVIDROME_PASSWORD=''
|
||||
NAVIDROME_USERNAME=''
|
||||
|
||||
##
|
||||
## NEXTCLOUD
|
||||
##
|
||||
NEXTCLOUD_CONTAINER_NAME=''
|
||||
NEXTCLOUD_ENABLED=''
|
||||
NEXTCLOUD_NETWORK_MODE=''
|
||||
NEXTCLOUD_PORT_443=''
|
||||
NEXTCLOUD_RESTART=''
|
||||
NEXTCLOUD_TAG=''
|
||||
NEXTCLOUD_VOLUME_DATADIR=''
|
||||
|
||||
##
|
||||
## OMBI
|
||||
##
|
||||
OMBI_CONTAINER_NAME=''
|
||||
OMBI_ENABLED=''
|
||||
OMBI_NETWORK_MODE=''
|
||||
OMBI_PORT_3579=''
|
||||
OMBI_RESTART=''
|
||||
OMBI_TAG=''
|
||||
OMBI_API_KEY=''
|
||||
|
||||
##
|
||||
## OPENGIST
|
||||
##
|
||||
OPENGIST_GITEA_CLIENT_KEY=''
|
||||
OPENGIST_GITEA_SECRET=''
|
||||
|
||||
##
|
||||
## PAPERLESS
|
||||
##
|
||||
PAPERLESS_DBPASS=''
|
||||
PAPERLESS_SECRET_KEY=''
|
||||
|
||||
##
|
||||
## PLAUSIBLE
|
||||
##
|
||||
PLAUSIBLE_PG_PASSWORD=''
|
||||
PLAUSIBLE_SECRET_KEY_BASE=''
|
||||
PLAUSIBLE_TOTP_VAULT_KEY=''
|
||||
|
||||
##
|
||||
## PODINDEX
|
||||
##
|
||||
PODINDEX_API_KEY=''
|
||||
PODINDEX_API_SECRET=''
|
||||
|
||||
##
|
||||
## PORTAINER
|
||||
##
|
||||
PORTAINER_CONTAINER_NAME=''
|
||||
PORTAINER_ENABLED=''
|
||||
PORTAINER_NETWORK_MODE=''
|
||||
PORTAINER_PORT_9000=''
|
||||
PORTAINER_RESTART=''
|
||||
PORTAINER_TAG=''
|
||||
PORTAINER_VOLUME_DOCKER_SOCKET=''
|
||||
PORTAINER_API_KEY=''
|
||||
|
||||
##
|
||||
## POSTAL
|
||||
##
|
||||
POSTAL_MYSQL_PASSWORD=''
|
||||
POSTAL_SMTP_AUTH_PASSWORD=''
|
||||
POSTAL_SMTP_AUTH_USER=''
|
||||
|
||||
##
|
||||
## POSTGRES
|
||||
##
|
||||
POSTGRES_HOST=''
|
||||
POSTGRES_PASSWORD=''
|
||||
POSTGRES_USER=''
|
||||
|
||||
##
|
||||
## PROWLARR
|
||||
##
|
||||
PROWLARR_CONTAINER_NAME=''
|
||||
PROWLARR_ENABLED=''
|
||||
PROWLARR_NETWORK_MODE=''
|
||||
PROWLARR_PORT_9696=''
|
||||
PROWLARR_RESTART=''
|
||||
PROWLARR_TAG=''
|
||||
PROWLARR_API_KEY=''
|
||||
|
||||
##
|
||||
## RADARR
|
||||
##
|
||||
RADARR_CONTAINER_NAME=''
|
||||
RADARR_ENABLED=''
|
||||
RADARR_NETWORK_MODE=''
|
||||
RADARR_PORT_7878=''
|
||||
RADARR_RESTART=''
|
||||
RADARR_TAG=''
|
||||
|
||||
##
|
||||
## RADARR
|
||||
##
|
||||
RADARR_API_KEY=''
|
||||
|
||||
##
|
||||
## REACTIVE
|
||||
##
|
||||
REACTIVE_RESUME_ACCESS_TOKEN_SECRET=''
|
||||
REACTIVE_RESUME_PGSQL_PASSWORD=''
|
||||
REACTIVE_RESUME_REFRESH_TOKEN_SECRET=''
|
||||
REACTIVE_RESUME_S3_ACCESS_KEY=''
|
||||
REACTIVE_RESUME_S3_SECRET_KEY=''
|
||||
|
||||
##
|
||||
## READARR
|
||||
##
|
||||
READARR_CONTAINER_NAME=''
|
||||
READARR_ENABLED=''
|
||||
READARR_NETWORK_MODE=''
|
||||
READARR_PORT_8787=''
|
||||
READARR_RESTART=''
|
||||
READARR_TAG=''
|
||||
READARR_API_KEY=''
|
||||
|
||||
##
|
||||
## REMMINA
|
||||
##
|
||||
REMMINA_CF_TUNNEL_ID=''
|
||||
REMMINA_CF_TUNNEL_PASSWORD=''
|
||||
REMMINA_USER_PASSWORD=''
|
||||
|
||||
##
|
||||
## RUSTDESK
|
||||
##
|
||||
RUSTDESK_CUSTOM_PASSWORD=''
|
||||
|
||||
##
|
||||
## SABNZBDVPN
|
||||
##
|
||||
SABNZBDVPN_CONTAINER_NAME=''
|
||||
SABNZBDVPN_ENABLED=''
|
||||
SABNZBDVPN_ENVIRONMENT_ENABLE_PRIVOXY=''
|
||||
SABNZBDVPN_ENVIRONMENT_LAN_NETWORK=''
|
||||
SABNZBDVPN_ENVIRONMENT_NAME_SERVERS=''
|
||||
SABNZBDVPN_ENVIRONMENT_VPN_CLIENT=''
|
||||
SABNZBDVPN_ENVIRONMENT_VPN_ENABLE=''
|
||||
SABNZBDVPN_ENVIRONMENT_VPN_INPUT_PORTS=''
|
||||
SABNZBDVPN_ENVIRONMENT_VPN_OPTIONS=''
|
||||
SABNZBDVPN_ENVIRONMENT_VPN_OUTPUT_PORTS=''
|
||||
SABNZBDVPN_ENVIRONMENT_VPN_PASS=''
|
||||
SABNZBDVPN_ENVIRONMENT_VPN_PROV=''
|
||||
SABNZBDVPN_ENVIRONMENT_VPN_USER=''
|
||||
SABNZBDVPN_NETWORK_MODE=''
|
||||
SABNZBDVPN_PORT_8080=''
|
||||
SABNZBDVPN_PORT_8090=''
|
||||
SABNZBDVPN_PORT_8118=''
|
||||
SABNZBDVPN_RESTART=''
|
||||
SABNZBDVPN_TAG=''
|
||||
SABNZBDVPN_API_KEY=''
|
||||
|
||||
##
|
||||
## SCRAPERR
|
||||
##
|
||||
SCRAPERR_SECRET_KEY=''
|
||||
|
||||
##
|
||||
## SCRUTINY
|
||||
##
|
||||
SCRUTINY_CF_TUNNEL_PASSWORD=''
|
||||
|
||||
##
|
||||
## SEARXNG
|
||||
##
|
||||
SEARXNG_BASE_URL=''
|
||||
|
||||
##
|
||||
## SLSKD
|
||||
##
|
||||
SLSKD_PASSWORD=''
|
||||
|
||||
##
|
||||
## SONARQUBE
|
||||
##
|
||||
SONARQUBE_POSTGRES_PASSWORD=''
|
||||
SONARQUBE_LDAP_BIND_PASSWORD=''
|
||||
|
||||
##
|
||||
## SONARR
|
||||
##
|
||||
SONARR_CONTAINER_NAME=''
|
||||
SONARR_ENABLED=''
|
||||
SONARR_NETWORK_MODE=''
|
||||
SONARR_PORT_8989=''
|
||||
SONARR_RESTART=''
|
||||
SONARR_TAG=''
|
||||
SONARR_API_KEY=''
|
||||
|
||||
##
|
||||
## SWAG
|
||||
##
|
||||
SWAG_CONTAINER_NAME=''
|
||||
SWAG_ENABLED=''
|
||||
SWAG_ENVIRONMENT_DNSPLUGIN=''
|
||||
SWAG_ENVIRONMENT_EMAIL=''
|
||||
SWAG_ENVIRONMENT_EXTRA_DOMAINS=''
|
||||
SWAG_ENVIRONMENT_ONLY_SUBDOMAINS=''
|
||||
SWAG_ENVIRONMENT_SUBDOMAINS=''
|
||||
SWAG_ENVIRONMENT_URL=''
|
||||
SWAG_ENVIRONMENT_VALIDATION=''
|
||||
SWAG_NETWORK_MODE=''
|
||||
SWAG_PORT_443=''
|
||||
SWAG_PORT_80=''
|
||||
SWAG_RESTART=''
|
||||
SWAG_TAG=''
|
||||
|
||||
##
|
||||
## SWAG
|
||||
##
|
||||
SWAG_CF_TUNNEL_ID=''
|
||||
SWAG_CF_TUNNEL_PASSWORD=''
|
||||
SWAG_DUCKDNSTOKEN=''
|
||||
SWAG_MAXMINDDB_LICENSE_KEY=''
|
||||
|
||||
##
|
||||
## TANDOOR
|
||||
##
|
||||
TANDOOR_API_TOKEN=''
|
||||
TANDOOR_POSTGRES_PASSWORD=''
|
||||
TANDOOR_SECRET_KEY=''
|
||||
|
||||
##
|
||||
## TMDB
|
||||
##
|
||||
TMDB_API_KEY=''
|
||||
|
||||
##
|
||||
## TRACCAR
|
||||
##
|
||||
TRACCAR_POSTGRES_DATABASE=''
|
||||
TRACCAR_POSTGRES_PASSWORD=''
|
||||
TRACCAR_POSTGRES_USER=''
|
||||
|
||||
##
|
||||
## UPTIME
|
||||
##
|
||||
UPTIME_KUMA_PASSWORD=''
|
||||
UPTIME_KUMA_USERNAME=''
|
||||
|
||||
##
|
||||
## UPTIMEKUMA
|
||||
##
|
||||
UPTIMEKUMA_CONTAINER_NAME=''
|
||||
UPTIMEKUMA_ENABLED=''
|
||||
UPTIMEKUMA_NETWORK_MODE=''
|
||||
UPTIMEKUMA_PORT_3001=''
|
||||
UPTIMEKUMA_RESTART=''
|
||||
UPTIMEKUMA_TAG=''
|
||||
|
||||
##
|
||||
## VAULT
|
||||
##
|
||||
VAULT_HASHICORP_AWS_ACCESS_KEY_ID=''
|
||||
VAULT_HASHICORP_AWS_SECRET_ACCESS_KEY=''
|
||||
|
||||
##
|
||||
## VIRUS
|
||||
##
|
||||
VIRUS_TOTAL_API_KEY=''
|
||||
|
||||
##
|
||||
## WALLABAG
|
||||
##
|
||||
WALLABAG_DB=''
|
||||
WALLABAG_DB_PASSWORD=''
|
||||
|
||||
##
|
||||
## WATCHTOWER
|
||||
##
|
||||
WATCHTOWER_CONTAINER_NAME=''
|
||||
WATCHTOWER_ENABLED=''
|
||||
WATCHTOWER_ENVIRONMENT_CLEANUP=''
|
||||
WATCHTOWER_ENVIRONMENT_INCLUDE_STOPPED=''
|
||||
WATCHTOWER_ENVIRONMENT_MONITOR_ONLY=''
|
||||
WATCHTOWER_ENVIRONMENT_NOTIFICATION_TEMPLATE=''
|
||||
WATCHTOWER_ENVIRONMENT_NOTIFICATION_URL=''
|
||||
WATCHTOWER_ENVIRONMENT_NOTIFICATIONS=''
|
||||
WATCHTOWER_ENVIRONMENT_NOTIFICATIONS_LEVEL=''
|
||||
WATCHTOWER_ENVIRONMENT_REPO_PASS=''
|
||||
WATCHTOWER_ENVIRONMENT_REPO_USER=''
|
||||
WATCHTOWER_ENVIRONMENT_SCHEDULE=''
|
||||
WATCHTOWER_ENVIRONMENT_TIMEOUT=''
|
||||
WATCHTOWER_NETWORK_MODE=''
|
||||
WATCHTOWER_RESTART=''
|
||||
WATCHTOWER_TAG=''
|
||||
WATCHTOWER_VOLUME_DOCKER_SOCKET=''
|
||||
|
||||
##
|
||||
## WATCHTOWER
|
||||
##
|
||||
WATCHTOWER_HTTP_API_TOKEN=''
|
||||
WATCHTOWER_NOTIFICATION_GOTIFY_TLS_SKIP_VERIFY=''
|
||||
WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN=''
|
||||
WATCHTOWER_NOTIFICATION_GOTIFY_URL=''
|
||||
|
||||
##
|
||||
## WAZUH
|
||||
##
|
||||
WAZUH_API_PASSWORD=''
|
||||
WAZUH_INDEXER_PASSWORD=''
|
||||
WAZUH_KIBANA_PASSWORD=''
|
||||
WAZUH_VERSION=''
|
||||
|
||||
##
|
||||
## YOUR
|
||||
##
|
||||
YOUR_SPOTIFY_ID=''
|
||||
YOUR_SPOTIFY_PORT_443=''
|
||||
YOUR_SPOTIFY_PORT_80=''
|
||||
YOUR_SPOTIFY_SECRET=''
|
||||
|
||||
##
|
||||
## YOUTUBEDL
|
||||
##
|
||||
YOUTUBEDL_CONTAINER_NAME=''
|
||||
YOUTUBEDL_ENABLED=''
|
||||
YOUTUBEDL_ENVIRONMENT_CONFIG_PATH=''
|
||||
YOUTUBEDL_ENVIRONMENT_DEBUG=''
|
||||
YOUTUBEDL_NETWORK_MODE=''
|
||||
YOUTUBEDL_PORT_8080=''
|
||||
YOUTUBEDL_RESTART=''
|
||||
YOUTUBEDL_TAG=''
|
||||
|
||||
##
|
||||
## ZAMMAD
|
||||
##
|
||||
ZAMMAD_ELASTICSEARCH_VERSION=''
|
||||
ZAMMAD_IMAGE_REPO=''
|
||||
ZAMMAD_MEMCACHE_SERVERS=''
|
||||
ZAMMAD_MEMCACHE_VERSION=''
|
||||
ZAMMAD_POSTGRES_DB=''
|
||||
ZAMMAD_POSTGRES_HOST=''
|
||||
ZAMMAD_POSTGRES_PASS=''
|
||||
ZAMMAD_POSTGRES_PORT=''
|
||||
ZAMMAD_POSTGRES_USER=''
|
||||
ZAMMAD_POSTGRES_VERSION=''
|
||||
ZAMMAD_POSTGRESQL_OPTIONS=''
|
||||
ZAMMAD_REDIS_URL=''
|
||||
ZAMMAD_REDIS_VERSION=''
|
||||
ZAMMAD_RESTART=''
|
||||
ZAMMAD_S3_ACCESS_KEY=''
|
||||
ZAMMAD_S3_SECRET_KEY=''
|
||||
ZAMMAD_VERSION=''
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": ["local>trez/renovate-config"],
|
||||
"packageRules": [
|
||||
{
|
||||
"description": "Freeze ClickHouse and Zookeeper",
|
||||
"matchDatasources": ["docker"],
|
||||
"matchManagers": ["docker-compose"],
|
||||
"matchPackageNames": [
|
||||
"clickhouse/clickhouse-server",
|
||||
"signoz/zookeeper"
|
||||
],
|
||||
"enabled": false
|
||||
},
|
||||
{
|
||||
"description": "Pin Postgres, pgvector, and pgvecto-rs images",
|
||||
"matchDatasources": ["docker"],
|
||||
"matchManagers": ["docker-compose"],
|
||||
"matchPackageNames": ["postgres", "pgvector", "pgvecto-rs"],
|
||||
"pinDigests": true
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user