infra/.claude/reference/upgrade-config.json
Viktor Barzin bcad200a23 chore: add untracked stacks, scripts, and agent configs
- New stacks: beads-server, hermes-agent
- Terragrunt tiers.tf for infra, phpipam, status-page
- Secrets symlinks for vault, phpipam, hermes-agent
- Scripts: cluster_manager, image_pull, containerd pullthrough setup
- Frigate config, audiblez-web app source, n8n workflows dir
- Claude agent: service-upgrade, reference: upgrade-config.json
- Removed: claudeception skill, excalidraw empty submodule, temp listings

[ci skip]

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 09:33:06 +00:00

166 lines
8.7 KiB
JSON

{
"github_repo_overrides": {
"ghcr.io/immich-app/immich-server": "immich-app/immich",
"ghcr.io/immich-app/immich-machine-learning": "immich-app/immich",
"docker.io/vaultwarden/server": "dani-garcia/vaultwarden",
"vaultwarden/server": "dani-garcia/vaultwarden",
"docker.io/mailserver/docker-mailserver": "docker-mailserver/docker-mailserver",
"mailserver/docker-mailserver": "docker-mailserver/docker-mailserver",
"docker.n8n.io/n8nio/n8n": "n8n-io/n8n",
"matrixdotorg/synapse": "element-hq/synapse",
"headscale/headscale": "juanfont/headscale",
"technitium/dns-server": "TechnitiumSoftware/DnsServer",
"ghcr.io/paperless-ngx/paperless-ngx": "paperless-ngx/paperless-ngx",
"ghcr.io/blakeblackshear/frigate": "blakeblackshear/frigate",
"ghcr.io/dgtlmoon/changedetection.io": "dgtlmoon/changedetection.io",
"ghcr.io/linkwarden/linkwarden": "linkwarden/linkwarden",
"ghcr.io/open-webui/open-webui": "open-webui/open-webui",
"ghcr.io/advplyr/audiobookshelf": "advplyr/audiobookshelf",
"ghcr.io/browserless/chromium": "browserless/chromium",
"ghcr.io/rybbit-io/rybbit-backend": "rybbit-io/rybbit",
"ghcr.io/rybbit-io/rybbit-client": "rybbit-io/rybbit",
"ghcr.io/gurucomputing/headscale-ui": "gurucomputing/headscale-ui",
"ghcr.io/dmunozv04/isponsorblocktv": "dmunozv04/iSponsorBlockTV",
"ghcr.io/gramps-project/grampsweb": "gramps-project/gramps-web",
"ghcr.io/project-osrm/osrm-backend": "Project-OSRM/osrm-backend",
"ghcr.io/flaresolverr/flaresolverr": "FlareSolverr/FlareSolverr",
"ghcr.io/therobbiedavis/listenarr": "therobbiedavis/listenarr",
"ghcr.io/immichframe/immichframe": "immichframe/ImmichFrame",
"lscr.io/linuxserver/qbittorrent": "linuxserver/docker-qbittorrent",
"lscr.io/linuxserver/lidarr": "linuxserver/docker-lidarr",
"lscr.io/linuxserver/prowlarr": "linuxserver/docker-prowlarr",
"lscr.io/linuxserver/readarr": "linuxserver/docker-readarr",
"lscr.io/linuxserver/speedtest-tracker": "linuxserver/docker-speedtest-tracker",
"privatebin/nginx-fpm-alpine": "PrivateBin/PrivateBin",
"freshrss/freshrss": "FreshRSS/FreshRSS",
"hackmdio/hackmd": "hackmdio/codimd",
"onlyoffice/documentserver": "ONLYOFFICE/DocumentServer",
"netboxcommunity/netbox": "netbox-community/netbox",
"stirlingtools/stirling-pdf": "Stirling-Tools/Stirling-PDF",
"phpipam/phpipam-www": "phpipam/phpipam",
"rhasspy/wyoming-whisper": "rhasspy/wyoming-addons",
"rhasspy/wyoming-piper": "rhasspy/wyoming-addons",
"clickhouse/clickhouse-server": "ClickHouse/ClickHouse",
"docker.io/athomasson2/ebook2audiobook": "athomasson2/ebook2audiobook",
"amruthpillai/reactive-resume": "AmruthPillworking/Reactive-Resume",
"dpage/pgadmin4": "pgadmin-org/pgadmin4",
"ghcr.io/yourok/torrserver": "YouROK/TorrServer",
"opentripplanner/opentripplanner": "opentripplanner/OpenTripPlanner",
"codeberg.org/forgejo/forgejo": "forgejo/forgejo",
"shlinkio/shlink": "shlinkio/shlink",
"shlinkio/shlink-web-client": "shlinkio/shlink-web-client",
"dgtlmoon/sockpuppetbrowser": "dgtlmoon/sockpuppetbrowser"
},
"helm_chart_repo_overrides": {
"https://charts.goauthentik.io/": "goauthentik/authentik",
"https://traefik.github.io/charts": "traefik/traefik-helm-chart",
"https://kyverno.github.io/kyverno/": "kyverno/kyverno",
"https://mysql.github.io/mysql-operator/": "mysql/mysql-operator",
"https://cloudnative-pg.github.io/charts": "cloudnative-pg/cloudnative-pg",
"https://charts.external-secrets.io": "external-secrets/external-secrets",
"https://metallb.github.io/metallb": "metallb/metallb",
"https://nextcloud.github.io/helm/": "nextcloud/helm",
"https://crowdsecurity.github.io/helm-charts": "crowdsecurity/helm-charts",
"https://helm.releases.hashicorp.com": "hashicorp/vault-helm",
"https://bitnami-labs.github.io/sealed-secrets": "bitnami-labs/sealed-secrets",
"https://grafana.github.io/helm-charts": "grafana/helm-charts",
"https://prometheus-community.github.io/helm-charts": "prometheus-community/helm-charts",
"https://democratic-csi.github.io/charts/": "democratic-csi/democratic-csi",
"https://stakater.github.io/stakater-charts": "stakater/Reloader",
"https://topolvm.github.io/pvc-autoresizer": "topolvm/pvc-autoresizer",
"https://kubernetes-sigs.github.io/descheduler/": "kubernetes-sigs/descheduler",
"https://kubernetes-sigs.github.io/metrics-server/": "kubernetes-sigs/metrics-server",
"https://charts.fairwinds.com/stable": "FairwindsOps/goldilocks",
"https://helm.ngc.nvidia.com/nvidia": "NVIDIA/gpu-operator",
"oci://ghcr.io/woodpecker-ci/helm": "woodpecker-ci/helm",
"oci://10.0.20.10:5000/bitnamicharts": "bitnami/charts"
},
"db_backed_services": {
"affine": { "type": "postgresql", "db_name": "affine", "shared": true },
"claude-memory": { "type": "postgresql", "db_name": "claude_memory", "shared": true },
"crowdsec": { "type": "postgresql", "db_name": "crowdsec", "shared": true },
"dawarich": { "type": "postgresql", "db_name": "dawarich", "shared": true },
"health": { "type": "postgresql", "db_name": "health", "shared": true },
"linkwarden": { "type": "postgresql", "db_name": "linkwarden", "shared": true },
"matrix": { "type": "postgresql", "db_name": "matrix", "shared": true },
"n8n": { "type": "postgresql", "db_name": "n8n", "shared": true },
"netbox": { "type": "postgresql", "db_name": "netbox", "shared": true },
"rybbit": { "type": "postgresql", "db_name": "rybbit", "shared": true },
"tandoor": { "type": "postgresql", "db_name": "tandoor", "shared": true },
"technitium": { "type": "postgresql", "db_name": "technitium", "shared": true },
"trading-bot": { "type": "postgresql", "db_name": "trading_bot", "shared": true },
"woodpecker": { "type": "postgresql", "db_name": "woodpecker", "shared": true },
"immich": { "type": "postgresql", "db_name": "immich", "dedicated": true, "backup_cronjob": "postgresql-backup", "backup_namespace": "immich" },
"authentik": { "type": "postgresql", "dedicated": true, "notes": "Uses PgBouncer, managed by Helm chart" },
"hackmd": { "type": "mysql", "db_name": "codimd", "shared": true },
"mailserver": { "type": "mysql", "db_name": "mailserver", "shared": true },
"monitoring": { "type": "mysql", "db_name": "monitoring", "shared": true, "notes": "Grafana backend" },
"nextcloud": { "type": "mysql", "db_name": "nextcloud", "shared": true },
"onlyoffice": { "type": "mysql", "db_name": "onlyoffice", "shared": true },
"paperless-ngx": { "type": "mysql", "db_name": "paperless_ngx", "shared": true },
"phpipam": { "type": "mysql", "db_name": "phpipam", "shared": true },
"real-estate-crawler": { "type": "mysql", "db_name": "wrongmove", "shared": true },
"speedtest": { "type": "mysql", "db_name": "speedtest", "shared": true },
"url": { "type": "mysql", "db_name": "shlink", "shared": true },
"vault": { "type": "mysql", "db_name": "vault", "shared": true }
},
"backup_infrastructure": {
"postgresql": {
"cronjob_name": "postgresql-backup",
"namespace": "dbaas",
"credential_secret": "pg-cluster-superuser",
"credential_key": "password",
"host": "pg-cluster-rw.dbaas",
"backup_pvc": "dbaas-postgresql-backup-host"
},
"mysql": {
"cronjob_name": "mysql-backup",
"namespace": "dbaas",
"credential_secret": "cluster-secret",
"credential_key": "ROOT_PASSWORD",
"host": "mysql.dbaas",
"backup_pvc": "dbaas-mysql-backup-host"
}
},
"version_jump_always_step": [
"authentik",
"nextcloud",
"immich"
],
"auto_detect_rules": {
"ghcr.io/{org}/{repo}": "Use org/repo directly, strip -server/-backend suffixes if repo 404s",
"docker.io/{org}/{repo}": "Try org/repo on GitHub",
"lscr.io/linuxserver/{app}": "Map to linuxserver/docker-{app}",
"quay.io/{org}/{repo}": "Try org/repo on GitHub",
"registry.gitlab.com/{org}/{repo}": "Try org/repo on GitHub (may be GitLab-only)"
},
"skip_image_patterns": [
"viktorbarzin/*",
"registry.viktorbarzin.me/*",
"ancamilea/*",
"mghee/*",
"*postgres*",
"*mysql*",
"*redis*",
"*clickhouse*",
"*etcd*",
"registry.k8s.io/*",
"quay.io/tigera/*",
"quay.io/metallb/*",
"nvcr.io/*",
"reg.kyverno.io/*"
],
"breaking_change_keywords": [
"breaking",
"BREAKING",
"migration required",
"schema change",
"database migration",
"manual intervention",
"action required",
"removed",
"deprecated",
"renamed",
"incompatible"
]
}