Files
appstore/.github/renovate-docker.json
T
okxlin b3cced6539 Harden Renovate blocked update handling
Freeze superseded app tracks, prevent independent Dify and uuWAF sidecar bumps, and group SafeLine release images. Add policy regressions and label the retained Immich community-image versions.
2026-07-26 00:40:56 +08:00

757 lines
19 KiB
JSON

{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended"
],
"enabledManagers": [
"docker-compose"
],
"gitIgnoredAuthors": [
"githubaction@githubaction.com"
],
"rebaseWhen": "never",
"prHourlyLimit": 30,
"prConcurrentLimit": 80,
"branchConcurrentLimit": 120,
"ignorePaths": [
"apps/mysql-cluster/**",
"apps/redis-cluster/**",
"apps/postgresql-cluster/**",
"**/Dockerfile"
],
"packageRules": [
{
"matchPackageNames": [
"docker-compose"
],
"automerge": true
},
{
"description": "Keep the 1Panel V1 LTS package on the V1 LTS image line",
"matchFileNames": [
"apps/1panel/1.*-lts/docker-compose.yml"
],
"matchPackageNames": [
"moelin/1panel"
],
"allowedVersions": "/^v1\\.10\\.\\d+-lts$/"
},
{
"description": "Keep the 1Panel V2 fixed package on the V2 image line",
"matchFileNames": [
"apps/1panel/2.*/docker-compose.yml"
],
"matchPackageNames": [
"moelin/1panel"
],
"allowedVersions": "/^v2\\.\\d+\\.\\d+$/"
},
{
"description": "Keep the Global 1Panel V1 LTS package on the Global V1 LTS image line",
"matchFileNames": [
"apps/1panel/global-1.*-lts/docker-compose.yml"
],
"matchPackageNames": [
"moelin/1panel"
],
"allowedVersions": "/^global-v1\\.10\\.\\d+-lts$/"
},
{
"description": "Keep the Global 1Panel V2 fixed package on the Global V2 image line",
"matchFileNames": [
"apps/1panel/global-2.*/docker-compose.yml"
],
"matchPackageNames": [
"moelin/1panel"
],
"allowedVersions": "/^global-v2\\.\\d+\\.\\d+$/"
},
{
"description": "Keep floating 1Panel aliases as separate install-only versions",
"matchFileNames": [
"apps/1panel/v1/docker-compose.yml",
"apps/1panel/v2/docker-compose.yml",
"apps/1panel/global-v1/docker-compose.yml",
"apps/1panel/global-v2/docker-compose.yml"
],
"matchPackageNames": [
"moelin/1panel"
],
"enabled": false
},
{
"matchFileNames": [
"apps/php-unofficial/7.4.*/*.yml"
],
"allowedVersions": "/^7.4.*/"
},
{
"matchFileNames": [
"apps/php-unofficial/8.1.*/*.yml"
],
"allowedVersions": "/^8.1.*/"
},
{
"matchFileNames": [
"apps/mysql/5.6.*/*.yml"
],
"allowedVersions": "/^5.6.*/"
},
{
"matchFileNames": [
"apps/mysql/5.7.*/*.yml"
],
"allowedVersions": "/^5.7.*/"
},
{
"matchFileNames": [
"apps/mysql/8.0.*/*.yml"
],
"allowedVersions": "/^8.0.*/"
},
{
"matchFileNames": [
"apps/mysql/8.4.*/*.yml"
],
"allowedVersions": "/^8.4.*/"
},
{
"matchFileNames": [
"apps/redis/6.*/*.yml"
],
"allowedVersions": "/^6.*/"
},
{
"matchFileNames": [
"apps/redis/7.*/*.yml"
],
"allowedVersions": "/^7.*/"
},
{
"matchFileNames": [
"apps/redis/8.*/*.yml"
],
"allowedVersions": "/^8.*/"
},
{
"matchFileNames": [
"apps/mariadb/10.6.*/*.yml"
],
"allowedVersions": "/^10.6.*/"
},
{
"matchFileNames": [
"apps/mariadb/10.11.*/*.yml"
],
"allowedVersions": "/^10.11.*/"
},
{
"matchFileNames": [
"apps/mariadb/11.4.*/*.yml"
],
"allowedVersions": "/^11.4.*/"
},
{
"matchFileNames": [
"apps/mariadb/11.8.*/*.yml"
],
"allowedVersions": "/^11.8.*/"
},
{
"matchFileNames": [
"apps/postgresql/12.*/*.yml"
],
"allowedVersions": "/^12.*/"
},
{
"matchFileNames": [
"apps/postgresql/13.*/*.yml"
],
"allowedVersions": "/^13.*/"
},
{
"matchFileNames": [
"apps/postgresql/14.*/*.yml"
],
"allowedVersions": "/^14.*/"
},
{
"matchFileNames": [
"apps/postgresql/15.*/*.yml"
],
"allowedVersions": "/^15.*/"
},
{
"matchFileNames": [
"apps/postgresql/16.*/*.yml"
],
"allowedVersions": "/^16.*/"
},
{
"matchFileNames": [
"apps/postgresql/17.*/*.yml"
],
"allowedVersions": "/^17.*/"
},
{
"matchFileNames": [
"apps/postgresql/18.*/*.yml"
],
"allowedVersions": "/^18.*/"
},
{
"matchFileNames": [
"apps/maxkb/1.*/*.yml"
],
"allowedVersions": "/^1.*/"
},
{
"matchFileNames": [
"apps/maxkb/2.*/*.yml"
],
"allowedVersions": "/^2.*/"
},
{
"matchFileNames": [
"apps/elasticsearch/7.*/*.yml"
],
"allowedVersions": "/^7.*/"
},
{
"matchFileNames": [
"apps/elasticsearch/8.*/*.yml"
],
"allowedVersions": "/^8.*/"
},
{
"matchFileNames": [
"apps/tomcat/8.*/*.yml"
],
"allowedVersions": "/^8.*/"
},
{
"matchFileNames": [
"apps/tomcat/9.*/*.yml"
],
"allowedVersions": "/^9.*/"
},
{
"matchFileNames": [
"apps/tomcat/10.*/*.yml"
],
"allowedVersions": "/^10.*/"
},
{
"matchFileNames": [
"apps/mongodb/6.*/*.yml"
],
"allowedVersions": "/^6.*/"
},
{
"matchFileNames": [
"apps/mongodb/7.*/*.yml"
],
"allowedVersions": "/^7.*/"
},
{
"matchFileNames": [
"apps/mongodb/8.*/*.yml"
],
"allowedVersions": "/^8.*/"
},
{
"matchFileNames": [
"apps/sonarqube/9.*/*.yml"
],
"allowedVersions": "/^9.*/"
},
{
"matchFileNames": [
"apps/sonarqube/10.*/*.yml"
],
"allowedVersions": "/^10.*/"
},
{
"matchFileNames": [
"apps/mssql/2017-*/*.yml"
],
"allowedVersions": "/^2017-*/"
},
{
"matchFileNames": [
"apps/mssql/2019-*/*.yml"
],
"allowedVersions": "/^2019-*/"
},
{
"matchFileNames": [
"apps/mssql/2022-*/*.yml"
],
"allowedVersions": "/^2022-*/"
},
{
"matchFileNames": [
"apps/mssql/2025-*/*.yml"
],
"allowedVersions": "/^2025-*/"
},
{
"matchFileNames": [
"apps/zitadel/2.*/*.yml"
],
"allowedVersions": "/^2.*/"
},
{
"matchFileNames": [
"apps/zitadel/3.*/*.yml"
],
"allowedVersions": "/^3.*/"
},
{
"matchFileNames": [
"apps/odoo/18.*/*.yml"
],
"allowedVersions": "/^18.*/"
},
{
"matchFileNames": [
"apps/odoo/19.*/*.yml"
],
"allowedVersions": "/^19.*/"
},
{
"matchFileNames": [
"apps/onedev/12.*/*.yml"
],
"allowedVersions": "/^12.*/"
},
{
"matchFileNames": [
"apps/onedev/13.*/*.yml"
],
"allowedVersions": "/^13.*/"
},
{
"matchFileNames": [
"apps/uptime-kuma/1.*/*.yml"
],
"allowedVersions": "/^1.*/"
},
{
"matchFileNames": [
"apps/uptime-kuma/2.*/*.yml"
],
"allowedVersions": "/^2.*/"
},
{
"matchFileNames": [
"apps/umami/2.*/*.yml"
],
"allowedVersions": "/^2.*/"
},
{
"matchFileNames": [
"apps/umami/3.*/*.yml"
],
"allowedVersions": "/^3.*/"
},
{
"matchFileNames": [
"apps/n8n/2.2.*/*.yml"
],
"allowedVersions": "/^2.2.*/"
},
{
"matchFileNames": [
"apps/n8n/2.3.*/*.yml"
],
"allowedVersions": "/^2.3.*/"
},
{
"matchFileNames": [
"apps/n8n/2.4.*/*.yml"
],
"allowedVersions": "/^2.4.*/"
},
{
"matchFileNames": [
"apps/n8n/2.5.*/*.yml"
],
"allowedVersions": "/^2.5.*/"
},
{
"description": "Keep Zabbix Server 6.4 historical tracks on 6.4 Alpine images",
"matchFileNames": [
"apps/zabbix-server/6.4.*/*.yml"
],
"matchPackageNames": [
"zabbix/zabbix-server-mysql",
"zabbix/zabbix-web-nginx-mysql",
"zabbix/zabbix-java-gateway",
"zabbix/zabbix-snmptraps",
"zabbix/zabbix-server-pgsql",
"zabbix/zabbix-web-nginx-pgsql"
],
"allowedVersions": "/^alpine-6\\.4\\..*/"
},
{
"description": "Keep Zabbix Server 7.4 tracks on 7.4 Alpine images",
"matchFileNames": [
"apps/zabbix-server/7.4.*/*.yml"
],
"matchPackageNames": [
"zabbix/zabbix-server-mysql",
"zabbix/zabbix-web-nginx-mysql",
"zabbix/zabbix-java-gateway",
"zabbix/zabbix-snmptraps",
"zabbix/zabbix-server-pgsql",
"zabbix/zabbix-web-nginx-pgsql"
],
"allowedVersions": "/^alpine-7\\.4\\..*/"
},
{
"description": "Keep bundled Zabbix MySQL on the 8.0 line",
"matchFileNames": [
"apps/zabbix-server/*&mysql/*.yml"
],
"matchPackageNames": [
"mysql"
],
"allowedVersions": "/^8\\.0\\..*/"
},
{
"description": "Keep bundled Teldrive PostgreSQL on the 17.x line until the 18.x upgrade path is validated",
"matchFileNames": [
"apps/teldrive/**/docker-compose.yml"
],
"matchPackageNames": [
"ghcr.io/tgdrive/postgres"
],
"allowedVersions": "/^17.*/"
},
{
"description": "Keep Fast Note Sync database variants on manually tested releases",
"matchFileNames": [
"apps/fast-note-sync-service/*&database/docker-compose.yml"
],
"matchPackageNames": [
"haierkeys/fast-note-sync-service"
],
"enabled": false
},
{
"description": "Keep historical application tracks immutable",
"matchFileNames": [
"apps/geekbench/4/**",
"apps/geekbench/5/**",
"apps/headscale/0.23.0-alpha3/**",
"apps/headscale/0.26.1/**",
"apps/headscale/0.27.1/**",
"apps/headscale/0.28.0/**",
"apps/immich/1.122.3/**",
"apps/mysql/5.5.62/**",
"apps/safeline/7.3.1/**",
"apps/safeline/newnet-7.3.1/**"
],
"enabled": false
},
{
"description": "Group Kibana and Elasticsearch application images",
"matchFileNames": [
"apps/kibana/**/docker-compose.yml"
],
"matchPackageNames": [
"docker.elastic.co/elasticsearch/elasticsearch",
"docker.elastic.co/kibana/kibana"
],
"groupName": "Kibana application images"
},
{
"description": "Group ClearFlask application images",
"matchFileNames": [
"apps/clearflask/**/docker-compose.yml"
],
"matchPackageNames": [
"ghcr.io/clearflask/clearflask-connect",
"ghcr.io/clearflask/clearflask-server"
],
"groupName": "ClearFlask application images"
},
{
"description": "Group SafeLine release images so all application components update together",
"matchFileNames": [
"apps/safeline/**/docker-compose.yml"
],
"matchPackageNames": [
"chaitin/safeline-chaos",
"chaitin/safeline-detector",
"chaitin/safeline-fvm",
"chaitin/safeline-luigi",
"chaitin/safeline-mgt",
"chaitin/safeline-tengine"
],
"groupName": "SafeLine application images"
},
{
"description": "Disable bundled database-only updates for LinuxServer multi-service apps",
"matchFileNames": [
"apps/*-linuxserver/**/docker-compose.yml"
],
"matchPackageNames": [
"mariadb",
"mongo"
],
"enabled": false
},
{
"description": "Disable bundled MongoDB-only updates for Overleaf",
"matchFileNames": [
"apps/overleaf/**/docker-compose.yml"
],
"matchPackageNames": [
"mongo"
],
"enabled": false
},
{
"description": "Disable bundled MySQL-only updates for Traccar",
"matchFileNames": [
"apps/traccar/**/docker-compose.yml"
],
"matchPackageNames": [
"mysql"
],
"enabled": false
},
{
"description": "Keep Flux Panel on upstream stable 1.4.3 while the project is paused",
"matchFileNames": [
"apps/flux-panel/**/docker-compose.yml"
],
"enabled": false
},
{
"description": "Disable sidecar-only Renovate updates for ClearFlask multi-service tracks",
"matchFileNames": [
"apps/clearflask/**/docker-compose.yml"
],
"matchPackageNames": [
"axllent/mailpit",
"localstack/localstack",
"mariadb"
],
"enabled": false
},
{
"description": "Disable sidecar-only Renovate updates for Dify multi-service tracks",
"matchFileNames": [
"apps/dify/**/docker-compose.yml"
],
"matchPackageNames": [
"busybox",
"langgenius/dify-plugin-daemon",
"nginx",
"semitechnologies/weaviate",
"ubuntu/squid"
],
"enabled": false
},
{
"description": "Keep uuWAF on the upstream-supported Percona 5.7 database line",
"matchFileNames": [
"apps/uuwaf/**/docker-compose.yml"
],
"matchPackageNames": [
"percona/percona-server"
],
"enabled": false
},
{
"description": "Disable sidecar-only Renovate updates for DooTask multi-service tracks",
"matchFileNames": [
"apps/dootask/**/docker-compose.yml"
],
"matchPackageNames": [
"nginx"
],
"enabled": false
},
{
"description": "Keep Langflow on the tested 1.10 security line pending baseline x86_64 support",
"matchFileNames": [
"apps/langflow/**/docker-compose.yml"
],
"matchPackageNames": [
"langflowai/langflow"
],
"enabled": false
},
{
"description": "Disable sidecar-only Renovate updates for Diskover multi-service tracks",
"matchFileNames": [
"apps/diskover-linuxserver/**/docker-compose.yml"
],
"matchPackageNames": [
"alpine",
"docker.elastic.co/elasticsearch/elasticsearch"
],
"enabled": false
},
{
"description": "Disable sidecar-only Renovate updates for Karakeep multi-service tracks",
"matchFileNames": [
"apps/karakeep/**/docker-compose.yml"
],
"matchPackageNames": [
"gcr.io/zenika-hub/alpine-chrome",
"getmeili/meilisearch"
],
"enabled": false
},
{
"description": "Disable sidecar-only Renovate updates for LibreChat multi-service tracks",
"matchFileNames": [
"apps/librechat/**/docker-compose.yml"
],
"matchPackageNames": [
"getmeili/meilisearch",
"mongo",
"pgvector/pgvector"
],
"enabled": false
},
{
"description": "Disable sidecar-only Renovate updates for Paopao CE multi-service tracks",
"matchFileNames": [
"apps/paopao-ce/**/docker-compose.yml"
],
"matchPackageNames": [
"getmeili/meilisearch",
"mysql",
"redis/redis-stack"
],
"enabled": false
},
{
"description": "Disable sidecar-only Renovate updates for Rocket.Chat multi-service tracks",
"matchFileNames": [
"apps/rocketchat/**/docker-compose.yml"
],
"matchPackageNames": [
"docker.io/mongodb/mongodb-community-server",
"docker.io/nats"
],
"enabled": false
},
{
"description": "Disable sidecar-only Renovate updates for Teldrive multi-service tracks",
"matchFileNames": [
"apps/teldrive/**/docker-compose.yml"
],
"matchPackageNames": [
"ghcr.io/tgdrive/postgres"
],
"enabled": false
},
{
"description": "Keep Immich 1.132.3 as the pgvecto.rs to VectorChord migration bridge",
"matchFileNames": [
"apps/immich/1.132.3/docker-compose.yml"
],
"enabled": false
},
{
"description": "Group Immich server and machine-learning images",
"matchFileNames": [
"apps/immich/3.*/docker-compose.yml"
],
"matchPackageNames": [
"ghcr.io/immich-app/immich-server",
"ghcr.io/immich-app/immich-machine-learning"
],
"groupName": "Immich application images"
},
{
"description": "Disable sidecar-only Renovate updates for Immich multi-service tracks",
"matchFileNames": [
"apps/immich/3.*/docker-compose.yml"
],
"matchPackageNames": [
"docker.io/valkey/valkey",
"ghcr.io/immich-app/postgres"
],
"enabled": false
},
{
"description": "Disable sidecar-only Prometheus updates for the fixed WuKongIM 2.0.5 stack",
"matchFileNames": [
"apps/wukongim/2.0.5/docker-compose.yml"
],
"matchPackageNames": [
"prom/prometheus"
],
"enabled": false
},
{
"description": "Require dashboard approval for major updates of stateful Docker sidecars",
"matchDatasources": [
"docker"
],
"matchUpdateTypes": [
"major"
],
"matchPackageNames": [
"docker.elastic.co/elasticsearch/elasticsearch",
"docker.elastic.co/kibana/kibana",
"docker.io/mongodb/mongodb-community-server",
"docker.io/nats",
"getmeili/meilisearch",
"ghcr.io/tgdrive/postgres",
"localstack/localstack",
"mariadb",
"mongo",
"pgvector/pgvector",
"redis/redis-stack",
"semitechnologies/weaviate"
],
"dependencyDashboardApproval": true
},
{
"description": "Require dashboard approval for multi-service multi-image compose apps",
"matchFileNames": [
"apps/safeline/**/docker-compose.yml",
"apps/aurora/**/docker-compose.yml",
"apps/immich/**/docker-compose.yml",
"apps/udyk-ce/**/docker-compose.yml",
"apps/zabbix-server/**/docker-compose.yml",
"apps/next-terminal/**/docker-compose.yml",
"apps/uuwaf/**/docker-compose.yml"
],
"dependencyDashboardApproval": true
},
{
"description": "Disable Renovate updates for alist 3.44.0",
"matchFileNames": [
"apps/alist/3.44.0/*.yml"
],
"enabled": false
},
{
"description": "Keep NPS/NPC on the actively maintained 0.26 image line; upstream v0.27.01 is an older build",
"matchDatasources": [
"docker"
],
"matchFileNames": [
"apps/nps/**/docker-compose.yml",
"apps/npc/**/docker-compose.yml"
],
"matchPackageNames": [
"yisier1/nps",
"yisier1/npc"
],
"allowedVersions": "/^v0\\.26\\..*/"
}
],
"prCreation": "immediate"
}