docs/roadmap.md already carries a "Decided but not built" section, on this reasoning:
an accepted ADR with nothing tracking it is indistinguishable from a rejected one after six months
The same is true in the other direction. A service considered and rejected for good reasons, with nothing written down, is indistinguishable from one nobody thought of — and gets proposed again, evaluated again, and possibly deployed on the second pass because the first pass left no trace.
The service shortlist that produced #129–#148 also produced rejections. This issue is to record them, either as a section in docs/roadmap.md or as a short ADR alongside 0008.
Nextcloud
README.md:898 AGPL-3.0 PHP/deb.
The obvious "one app for everything" answer, and rejected because it overlaps three services already chosen — Immich (#132) for photos, Paperless-ngx (#133) for documents, and file sync — while being substantially more surface and more upkeep than all three combined. Its app ecosystem is a second, unpinned supply chain operating outside compose.yaml, which is the same objection that rules out Home Assistant add-ons in #134.
If the actual want is file sync rather than a suite, Syncthing (:908, MPL-2.0) does that with no server-side application at all.
The *arr stack
Sonarr (:1323), Radarr (:1320), Lidarr (:1308), and the indexer/subtitle services around them, all GPL-3.0.
Five or more services, each holding indexer credentials, each with a standing outbound appetite, added to the tier ADR-0008 deliberately defined as low consequence. The media tier's whole justification is that its compromise costs a film night; this materially raises what is at stake there while adding the most moving parts of anything on the list. Declined for now, not permanently — but it should be its own decision with its own reasoning, not a footnote to the NAS build.
YunoHost-class installers
§Self-hosting Solutions — YunoHost (:1895), Tipi (:1890), HomelabOS (:1877), StartOS (:1888) and similar.
These own the compose file, the update path and often the reverse proxy. That is a direct conflict with essentially everything this repository does deliberately: one compose stack per host (ADR-0004), every image pinned by tag and digest, configuration validated in CI, secrets rendered from SOPS at deploy time. Adopting one means giving up the properties that make this estate reproducible in exchange for a faster first install. Wrong trade here.
Guacamole
README.md:1821 Apache-2.0 Java/C.
A clientless browser-reachable RDP/VNC gateway. Convenient, and a larger concession on the management segment than SSH already is — it turns any browser session on Hicks into a potential path to every console in the estate, and it stores connection credentials to do it. The estate already has a KVM in U6 for physical console access. Declined.
Authelia / Authentik
Not in awesome-selfhosted — Identity Management is delegated upstream to awesome-sysadmin — and already decided: ADR-0008 defers SSO knowingly for two users with no external access, and #103 gives that deferral an expiry. Listed here only so the next shortlist does not present it as new.
What closing this looks like
A short section in docs/roadmap.md alongside "Decided but not built" — call it "Considered and declined" — with one paragraph each and a link to this issue. No code changes.
Which VLAN this touches
None / not network-facing
Security review
Related
#102, #103, #95, #149.
docs/roadmap.mdalready carries a "Decided but not built" section, on this reasoning:The same is true in the other direction. A service considered and rejected for good reasons, with nothing written down, is indistinguishable from one nobody thought of — and gets proposed again, evaluated again, and possibly deployed on the second pass because the first pass left no trace.
The service shortlist that produced #129–#148 also produced rejections. This issue is to record them, either as a section in
docs/roadmap.mdor as a short ADR alongside 0008.Nextcloud
README.md:898AGPL-3.0PHP/deb.The obvious "one app for everything" answer, and rejected because it overlaps three services already chosen — Immich (#132) for photos, Paperless-ngx (#133) for documents, and file sync — while being substantially more surface and more upkeep than all three combined. Its app ecosystem is a second, unpinned supply chain operating outside
compose.yaml, which is the same objection that rules out Home Assistant add-ons in #134.If the actual want is file sync rather than a suite, Syncthing (
:908,MPL-2.0) does that with no server-side application at all.The *arr stack
Sonarr (
:1323), Radarr (:1320), Lidarr (:1308), and the indexer/subtitle services around them, allGPL-3.0.Five or more services, each holding indexer credentials, each with a standing outbound appetite, added to the tier ADR-0008 deliberately defined as low consequence. The media tier's whole justification is that its compromise costs a film night; this materially raises what is at stake there while adding the most moving parts of anything on the list. Declined for now, not permanently — but it should be its own decision with its own reasoning, not a footnote to the NAS build.
YunoHost-class installers
§Self-hosting Solutions — YunoHost (
:1895), Tipi (:1890), HomelabOS (:1877), StartOS (:1888) and similar.These own the compose file, the update path and often the reverse proxy. That is a direct conflict with essentially everything this repository does deliberately: one compose stack per host (ADR-0004), every image pinned by tag and digest, configuration validated in CI, secrets rendered from SOPS at deploy time. Adopting one means giving up the properties that make this estate reproducible in exchange for a faster first install. Wrong trade here.
Guacamole
README.md:1821Apache-2.0Java/C.A clientless browser-reachable RDP/VNC gateway. Convenient, and a larger concession on the management segment than SSH already is — it turns any browser session on Hicks into a potential path to every console in the estate, and it stores connection credentials to do it. The estate already has a KVM in U6 for physical console access. Declined.
Authelia / Authentik
Not in awesome-selfhosted — Identity Management is delegated upstream to awesome-sysadmin — and already decided: ADR-0008 defers SSO knowingly for two users with no external access, and #103 gives that deferral an expiry. Listed here only so the next shortlist does not present it as new.
What closing this looks like
A short section in
docs/roadmap.mdalongside "Decided but not built" — call it "Considered and declined" — with one paragraph each and a link to this issue. No code changes.Which VLAN this touches
None / not network-facing
Security review
secrets/*.sops.yaml— n/adocs/network.mdwith an OUI-truncated MAC — n/aRelated
#102, #103, #95, #149.