docs/homarr-ticket-index.md
Rama main · réplica de lectura del repositorio original.
# Homarr ticket index
Reconciled **12 October 2026** from live GitHub issue states, PR heads/bodies/review comments and native dependency readbacks. Docs base: `42dd249a4ff348d27139d260d6e3f94c3783c3a8`. The canonical repository is still **private `ajnart/selfhost-skills`**; the intended `ajnart/selfhost` rename/visibility decision remains with the user. This note changes neither.
## Publication provenance
Publication was approved on **11 October 2026**: Immich #262 was the first of 39, followed by **38 unique peer tickets**, labelled `enhancement` and `ready-for-agent`, all immediately linked to parent session `ses_ed44864b8ffe2PmxGEkS22SDwz`. Original readback verified exact bodies, 38 unique App IDs/issues, no duplicate peer titles and 38 native dependencies on #262; no body-only fallback was needed. Those issue/App mappings are retained below. Issue titles follow “Homarr: complete <App> Setup, credentials and verified widgets”.
The [11 October research](homarr-integration-coverage-research.md) is a historical `5aafb4c1833fd4cd9caf0f7beaac31e625aafe22` snapshot. Its missing-39 inventory explains publication, not today's source status. Both original untracked notes and original `.gitignore`/`.ignore` edits are preserved in their original checkout; this docs-only lane copies/reconciles only these two note paths.
## Source status versus native acceptance
**39 App source slices now exist: one merged reference and 38 open draft PRs. Only 1/39 has accepted bounded native evidence.** Source compilation, fake tests, prerequisite-only App proofs, registration or a source-review PASS do not establish real Homarr/rendered/lifecycle acceptance.
- **Immich:** #262 closed; [#309](https://github.com/ajnart/selfhost-skills/pull/309) merged at frozen main `6b82c55fb890c11a1388bd4e5a2f10b632ff4f7c`, evidence head `33e7fbccb7541d2bbf1d81968eb21c35a1b5bfd7`, unchanged production `89301aff17c86b767f5a45076881f2bb7b41db39`. [Final bounded proof](homarr-immich-proof.md#final-bounded-attempt): authenticated Users 1 / Photos 0 / Videos 0 / Storage 0, genuine refresh, rendered data, preservation and owned cleanup. This is empty-library acceptance only; populated media, cross-kind survivor data, Manual key recovery, LAN, migration/restore and actual refresh contention remain outside it. Historical pending-review prose in the proof/contract predates the merged decision.
- **Final-normalized source PASS:** Gatus #321 at `b8ab54070762845e7720e7c16322a6611dc82eaa`, Caddy #315 at `259033989ef44589658a3adbc3c4505175d41ae0`, Prometheus #336 at `2231ee7542a1fe6082ec8f0a568ebb2ffa2dd17b`. Their own PR branches register the leaf and reuse frozen freshness helpers; both independent source axes and reported full local gates pass. All three remain draft, their issues open, with native/rendered/cross-kind/full-lifecycle acceptance held. They are not merged registry coverage on main.
- **Initial source PASS only:** Gotify #325 at `384111f936710bf75cb18707b8d64274772903d7` and Speedtest Tracker #351 at `29659099e33da9bead3aad2414f8f3965efafc27` have both independent source axes passing. Custodian normalization/registration and final normalized-head review remain pending, as does native acceptance.
- **Other 33 peers:** source drafts, not reviewed/accepted as complete native slices. Individual prerequisite evidence and limitations remain attributed to each PR; neither a common baseline nor final normalization/registration of all 39 is claimed. Each live PR head is recorded below.
The proof's Homarr OCI source `3d4150e59f600876b7e308f857b2f21572b75348`, OCI version `main`, authenticated API `2.4.1` and tagged research source `ebbd4876d25a51151444a009ab596e1154d62880` are distinct. The reference's 22-file comparison is scoped, not all-peer equivalence. Follow the [frozen contract](homarr-integration-contract.md) and [merged workflow](agents/homarr-integrations.md); reuse the seam and containment, not Immich's acceptance result.
## Native dependencies and common holds
Live readback retains **all 38 native edges to closed #262**. Its completion satisfies that dependency, but does not close peers or authorize runtime; no edge was removed. Additional open native blockers are [Gluetun #332](https://github.com/ajnart/selfhost-skills/issues/332) for #279 and [PatchMon #350](https://github.com/ajnart/selfhost-skills/issues/350) for #291. Triage readiness labels are not approval.
Every remaining peer needs its own exact-version/image/source contract, final independently reviewed normalized/registered head, approved bounded disposable Project, useful authenticated native and rendered data, both installation orders/late-peer recovery, restart/credential handling and user-safe shared-resource/remove/reinstall lifecycle. Provider/account actions, hardware, outbound discovery, bandwidth-heavy jobs and public Access require their own explicit scope/approval. No broad teardown, socket/host privilege, private-file access or fabricated missing/zero values is permitted. These are holds, not new runtime authorization.
## App source slices
All issue and PR links below were checked live. Heads are the first 12 characters of each returned full SHA. **D** = source draft, not independently accepted; **I** = initial source axes PASS, normalization held; **F** = final-normalized registered source axes/full gate PASS on that PR branch; **R** = merged reference, bounded empty-library acceptance. Every non-R PR is open/draft, every non-R issue open, and native acceptance held. The final column records additional App-specific limits, not an exhaustive substitute for the common holds.
| App / Catalog ID | Issue / state | PR | Head | Source | Native hold / App-specific prerequisite |
| -------------------------------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------- | -------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| AdGuard Home / `adguard-home` | [#266](https://github.com/ajnart/selfhost-skills/issues/266) open | [#311](https://github.com/ajnart/selfhost-skills/pull/311) | `2695a07bb65c` | D | App-only prerequisite proof; native percentage correctness and full Homarr lifecycle held |
| ArchiveTeam Warrior / `archive-team-warrior` | [#267](https://github.com/ajnart/selfhost-skills/issues/267) open | [#323](https://github.com/ajnart/selfhost-skills/pull/323) | `35979a24463f` | D | Idle startup can contact HQ; approved outbound scope or verified inert fail-closed bootstrap required |
| Aria2 / `aria2` | [#269](https://github.com/ajnart/selfhost-skills/issues/269) open | [#317](https://github.com/ajnart/selfhost-skills/pull/317) | `e89556fc953d` | D | RPC/download prerequisite proof only; native/rendered/full lifecycle held |
| Audiobookshelf / `audiobookshelf` | [#270](https://github.com/ajnart/selfhost-skills/issues/270) open | [#310](https://github.com/ajnart/selfhost-skills/pull/310) | `5b9e0c09abc9` | D | Token is not fully read-only; owned audio/native rendering and lifecycle held |
| Bazarr / `bazarr` | [#272](https://github.com/ajnart/selfhost-skills/issues/272) open | [#320](https://github.com/ajnart/selfhost-skills/pull/320) | `f77554ea9845` | D | Media/subtitle prerequisites and native lifecycle held; no provider success inferred |
| Caddy / `caddy` | [#273](https://github.com/ajnart/selfhost-skills/issues/273) open | [#315](https://github.com/ajnart/selfhost-skills/pull/315) | `259033989ef4` | F | Registered/source-only; real production-Link/rendered/both-order/cross-kind lifecycle held |
| Dash. / `dashdot` | [#274](https://github.com/ajnart/selfhost-skills/issues/274) open | [#319](https://github.com/ajnart/selfhost-skills/pull/319) | `e0577f082b8b` | D | CPU/RAM slice only; unavailable hardware is not zero or permission for new privileges |
| Deluge / `deluge` | [#275](https://github.com/ajnart/selfhost-skills/issues/275) open | [#324](https://github.com/ajnart/selfhost-skills/pull/324) | `1fad001d2d69` | D | Ambiguous daemon connection remains Manual; owned download/native lifecycle held |
| Emby / `emby` | [#276](https://github.com/ajnart/selfhost-skills/issues/276) open | [#322](https://github.com/ajnart/selfhost-skills/pull/322) | `eed53d89603f` | D | First-owner wizard Manual; real key inventory, media/playback and native lifecycle held |
| Frigate / `frigate` | [#277](https://github.com/ajnart/selfhost-skills/issues/277) open | [#331](https://github.com/ajnart/selfhost-skills/pull/331) | `0d06cdf51334` | D | Trusted HTTPS prerequisite; authenticated HTTP starter remains Manual before mutation; no footage/hardware proof |
| Gatus / `gatus` | [#280](https://github.com/ajnart/selfhost-skills/issues/280) open | [#321](https://github.com/ajnart/selfhost-skills/pull/321) | `b8ab54070762` | F | Registered/source-only; real native/rendered/local provenance/both-order/cross-kind lifecycle held |
| Glances / `glances` | [#281](https://github.com/ajnart/selfhost-skills/issues/281) open | [#326](https://github.com/ajnart/selfhost-skills/pull/326) | `e68ea343cca6` | D | Native empty-credential contract cannot justify disabling existing authentication; Manual boundary |
| Gluetun / `gluetun` | [#279](https://github.com/ajnart/selfhost-skills/issues/279) open | [#327](https://github.com/ajnart/selfhost-skills/pull/327) | `7d70c832c426` | D | Native blocker [#332](https://github.com/ajnart/selfhost-skills/issues/332) open; secret-bearing settings read denied; provider/tunnel scope held |
| Gotify / `gotify` | [#282](https://github.com/ajnart/selfhost-skills/issues/282) open | [#325](https://github.com/ajnart/selfhost-skills/pull/325) | `384111f93671` | I | Normalization/registration held; actual scoped account/message/native/rendered/lifecycle proof pending |
| Home Assistant / `home-assistant` | [#285](https://github.com/ajnart/selfhost-skills/issues/285) open | [#333](https://github.com/ajnart/selfhost-skills/pull/333) | `2ea747b1ee94` | D | Owner/MFA/token/entity Manual gates; no real-device automation or guessed entity acceptance |
| Immich / `immich` | [#262](https://github.com/ajnart/selfhost-skills/issues/262) closed | [#309](https://github.com/ajnart/selfhost-skills/pull/309) merged | `33e7fbccb754` | R | Accepted 1/39 empty-library reference only; populated media/cross-kind and listed limits remain |
| Lidarr / `lidarr` | [#283](https://github.com/ajnart/selfhost-skills/issues/283) open | [#318](https://github.com/ajnart/selfhost-skills/pull/318) | `adc9bbac83d7` | D | Calendar/music data and native lifecycle held; no external download approval |
| Linkwarden / `linkwarden` | [#286](https://github.com/ajnart/selfhost-skills/issues/286) open | [#328](https://github.com/ajnart/selfhost-skills/pull/328) | `da21eda483dc` | D | Token retains administrator write authority; private bookmark/native lifecycle proof held |
| Navidrome / `navidrome` | [#284](https://github.com/ajnart/selfhost-skills/issues/284) open | [#330](https://github.com/ajnart/selfhost-skills/pull/330) | `711336d08e23` | D | Shared Admin scope/query-secret transport limits; owned audio/listening/native lifecycle held |
| Netdata / `netdata` | [#287](https://github.com/ajnart/selfhost-skills/issues/287) open | [#329](https://github.com/ajnart/selfhost-skills/pull/329) | `fb792342c998` | D | Real available collector/native data and lifecycle held; no Cloud/hardware success inferred |
| Nextcloud / `nextcloud` | [#288](https://github.com/ajnart/selfhost-skills/issues/288) open | [#340](https://github.com/ajnart/selfhost-skills/pull/340) | `2c10a64ecd3c` | D | Broad administrator app-password/2FA tradeoff; real calendar/notification/lifecycle held |
| NZBGet / `nzbget` | [#290](https://github.com/ajnart/selfhost-skills/issues/290) open | [#335](https://github.com/ajnart/selfhost-skills/pull/335) | `9b1ca9dd5e42` | D | Restricted login is not read-only; provider/native/credential-path redaction/lifecycle held |
| Paperless-ngx / `paperless-ngx` | [#289](https://github.com/ajnart/selfhost-skills/issues/289) open | [#312](https://github.com/ajnart/selfhost-skills/pull/312) | `19f502a18162` | D | App credential prerequisite proof only; native widget, ingestion/OCR and lifecycle not accepted |
| PatchMon / `patchmon` | [#291](https://github.com/ajnart/selfhost-skills/issues/291) open | [#345](https://github.com/ajnart/selfhost-skills/pull/345) | `05f68f3bd937` | D | Native blocker [#350](https://github.com/ajnart/selfhost-skills/issues/350) open; statistics credentials also authorize enrollment; issuance/registration held |
| PeaNUT / `peanut` | [#293](https://github.com/ajnart/selfhost-skills/issues/293) open | [#347](https://github.com/ajnart/selfhost-skills/pull/347) | `fc5583b0f5b4` | D | NUT/UPS readings Manual; dummy API data is not physical hardware-health proof |
| Pi-hole / `pihole` | [#292](https://github.com/ajnart/selfhost-skills/issues/292) open | [#339](https://github.com/ajnart/selfhost-skills/pull/339) | `64be8d4ba38f` | D | v6 application-password/2FA scope gates; container-local DNS/native lifecycle held; no controls |
| Plex / `plex` | [#294](https://github.com/ajnart/selfhost-skills/issues/294) open | [#348](https://github.com/ajnart/selfhost-skills/pull/348) | `8db89ddd5057` | D | Account ownership/server-ID Manual gate; administrator token, media/playback/native lifecycle held |
| Prometheus / `prometheus` | [#299](https://github.com/ajnart/selfhost-skills/issues/299) open | [#336](https://github.com/ajnart/selfhost-skills/pull/336) | `2231ee7542a1` | F | Registered/source-only; native/rendered/Basic-mode/both-order/cross-kind lifecycle held |
| SABnzbd / `sabnzbd` | [#298](https://github.com/ajnart/selfhost-skills/issues/298) open | [#334](https://github.com/ajnart/selfhost-skills/pull/334) | `e36393354522` | D | Full API key/provider Manual gate; no Usenet transfer or native lifecycle acceptance |
| Slskd / `slskd` | [#297](https://github.com/ajnart/selfhost-skills/issues/297) open | [#342](https://github.com/ajnart/selfhost-skills/pull/342) | `2cf210a6700b` | D | Soulseek login Manual; effective ReadOnly role/write denial and native lifecycle unproved |
| Speedtest Tracker / `speedtest-tracker` | [#296](https://github.com/ajnart/selfhost-skills/issues/296) open | [#351](https://github.com/ajnart/selfhost-skills/pull/351) | `29659099e33d` | I | Normalization/registration held; actual token/rootless/rendered proof and separate lawful measurement/bandwidth approval pending |
| Tdarr / `tdarr` | [#301](https://github.com/ajnart/selfhost-skills/issues/301) open | [#349](https://github.com/ajnart/selfhost-skills/pull/349) | `21d3624b8641` | D | Global key/node Manual gates; worker/media/license/GPU/transcoding and native lifecycle held |
| Technitium DNS / `technitium-dns` | [#303](https://github.com/ajnart/selfhost-skills/issues/303) open | [#338](https://github.com/ajnart/selfhost-skills/pull/338) | `aafb8c4e71cc` | D | Effective account permissions/LastHour semantics and native lifecycle held; no resolver/zone/control actions |
| Tracearr / `tracearr` | [#302](https://github.com/ajnart/selfhost-skills/issues/302) open | [#346](https://github.com/ajnart/selfhost-skills/pull/346) | `ab4ac17a94c0` | D | Owner key can terminate streams; owned online media-server prerequisite and native lifecycle held |
| Traefik / `traefik` | [#304](https://github.com/ajnart/selfhost-skills/issues/304) open | [#352](https://github.com/ajnart/selfhost-skills/pull/352) | `3ecd50a43461` | D | Existing protected BasicAuth/API only; pagination/central freshness and native lifecycle held |
| Transmission / `transmission` | [#305](https://github.com/ajnart/selfhost-skills/issues/305) open | [#337](https://github.com/ajnart/selfhost-skills/pull/337) | `982d334be041` | D | Full-control RPC login; harmless owned fixture/native lifecycle held; no whitelist/auth weakening |
| Umami / `umami` | [#308](https://github.com/ajnart/selfhost-skills/issues/308) open | [#344](https://github.com/ajnart/selfhost-skills/pull/344) | `b6fe06345f84` | D | View-only role still owns website writes; real chart/controlled visits/lifecycle held; no shared Stats provider |
| Uptime Kuma / `uptime-kuma` | [#307](https://github.com/ajnart/selfhost-skills/issues/307) open | [#341](https://github.com/ajnart/selfhost-skills/pull/341) | `980e9c8730a1` | D | Explicit existing status-page slug; admin/key modes Manual, no private-page/publication inference |
| What's Up Docker / `wud` | [#306](https://github.com/ajnart/selfhost-skills/issues/306) open | [#343](https://github.com/ajnart/selfhost-skills/pull/343) | `00d57bf66104` | D | Scoped discovery endpoint and registry-outbound approval required; labels are not Project-only authority; inert inventory not real monitoring |
## Related work
| Reference | Live state / merged PR | Scope, not native acceptance |
| ------------------------------------------------------------ | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| [#263](https://github.com/ajnart/selfhost-skills/issues/263) | Closed; [#314](https://github.com/ajnart/selfhost-skills/pull/314) merged | [41-kind external coverage plan](homarr-external-coverage-plan.md) only; no external installation or appliance/feed acceptance |
| [#264](https://github.com/ajnart/selfhost-skills/issues/264) | Closed; [#316](https://github.com/ajnart/selfhost-skills/pull/316) merged | Dashboard/Pre-boot entrance motion, not Homarr native coverage |
| [#265](https://github.com/ajnart/selfhost-skills/pull/265) | Merged | Absent-peer Link scheduling; not peer widget acceptance |
| [#278](https://github.com/ajnart/selfhost-skills/pull/278) | Merged at `42dd249a4ff348d27139d260d6e3f94c3783c3a8` | Frozen [agent workflow](agents/homarr-integrations.md), docs-only; grants no runtime approval |
## Recorded review evidence
- [Immich final reference reviews](https://github.com/ajnart/selfhost-skills/pull/309#issuecomment-6115380864), then merged #309 / closed #262.
- Final-normalized source reviews: [Caddy](https://github.com/ajnart/selfhost-skills/pull/315#issuecomment-6115733170), [Gatus](https://github.com/ajnart/selfhost-skills/pull/321#issuecomment-6115733184), [Prometheus](https://github.com/ajnart/selfhost-skills/pull/336#issuecomment-6115733177).
- Initial source reviews, not final assembly/native approval: [Gotify](https://github.com/ajnart/selfhost-skills/pull/325#issuecomment-6115787860), [Speedtest Tracker](https://github.com/ajnart/selfhost-skills/pull/351#issuecomment-6114247126).
This reconciliation is docs/source/metadata-only, pending fresh parent-owned Standards **and** Spec review of its own exact PR head. It creates/closes no issue, removes no dependency, edits no registry/agent guide/parent ledger and launches no runtime, browser, provider, hardware, installer or paid operation.