- Catalogus van 142 naar 197 apps. Het zwaartepunt lag na het ARR-werk op media
(42 apps) terwijl communicatie er 4 had, AI 4, financien 3 en foto's 2
- Drie nieuwe categorieen: Statistiek, Zakelijk en Spellen
- Homelab-gereedschap: Dockge, Komodo, Glance, Gatus, Scrutiny, Backrest,
Headscale, Zoraxy, CrowdSec, NetAlertX, Pocket ID, Authentik
- Communicatie van 4 naar 12: Mattermost, Synapse, Element, Listmonk, Mumble,
Roundcube, Stalwart
- Notities: Outline, Trilium, SilverBullet, Readeck, Docmost, Kiwix
- Verder LibreChat, AnythingLLM, LocalAI, Ghostfolio, Wallos, Maybe, Lychee,
Piwigo, Homebox, wger, Donetick, Dawarich, Gitea, Adminer, code-server,
Woodpecker, Semaphore, Opengist, MinIO, Pingvin Share, Umami, Matomo, Odoo,
FreeScout, EspoCRM, RomM, Minecraft, Leantime, PrivateBin, Emby, ConvertX
- Drie bestaande apps waren niet installeerbaar: Forgejo wees naar een
latest-tag die dat project niet publiceert, Planka naar een tag 1 die niet
bestaat, en Baby Buddy naar een ghcr-pad dat er niet is. Gevonden door alle
213 images in de catalogus langs de registries te halen
- Twee testregels waren te krap: een config.yaml in files/ die geen compose is
telde niet mee voor "veld wordt gebruikt", en geheimen die de gebruiker zelf
aanlevert stonden in een handmatige namenlijst. Dat laatste is nu een vlag in
het sjabloon: "eigen_invoer": true
- Nieuwe controles voor de 36 apps met een eigen database: elke extra container
draagt de servicenaam als voorvoegsel, geen vaste databasewachtwoorden, en er
wacht altijd iemand met depends_on op de database
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q9eqpADJSRs49SoGGr4NAy
- Elk *arr-onderdeel is nu ook een losse app in de store (46 nieuwe sjablonen);
los en gebundeld komen uit één bron (tools/arr_sjablonen.py) met een test die
bewaakt dat ze niet uiteen lopen
- Alles deelt één /data-map, zodat hardlinks werken; losse /tv-, /movies- en
/downloads-mounts zijn eruit, UMASK=002 erbij
- Nieuwe eerste stap "Onderdelen" in het invulmenu, met kopjes per soort; de
dubbele groepsschakelaar en de lege kaarten in Instellingen zijn weg
- Eigen IP-adres per container in plaats van per stack; containers zonder adres
houden hun poortmapping. Ook Pangolin publiceert nu per container
- Huntarr vervangen door NeutArr (project offline na lekken, image bestaat niet
meer), Maintainerr naar zijn nieuwe organisatie
- 31 apps toegevoegd uit het *arr-ecosysteem, alle images tegen hun registry
gecontroleerd
- data_dir hernoemd naar appdata_dir in de hele catalogus, naast de nieuwe
data_root; qBittorrent van poort 8080 naar 8097
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q9eqpADJSRs49SoGGr4NAy
Aanleiding: Homepage weigerde met "Host validation failed" omdat de
standaardwaarde van allowed_hosts poort 3001 noemde terwijl het poortveld op
3002 stond. Alle 96 sjablonen zijn daarop nagelopen.
Systemisch:
- De dobbelsteenknop, waar zeventien apps in hun uitleg naar verwijzen,
verscheen nooit: hij hing af van een veld 'secret' dat fields() niet
meestuurde. Wachtwoorden stonden daardoor leesbaar in het formulier.
- 27 velden die je toch nooit zelf typt (databasewachtwoorden, JWT- en
versleutelingssleutels) worden nu voorgevuld met een willekeurige waarde.
Inlogwachtwoorden krijgen alleen een knop, want die moet je noteren.
- De knop hangt nu aan 'generate' in plaats van aan 'secret': voor een
WireGuard-privésleutel of een token uit een andere app is een verzonnen
waarde juist fout.
- required werd nergens gecontroleerd. Je kon installeren met een leeg
databasewachtwoord of een lege sleutel. Nu geweigerd bij installeren en bij
herconfigureren, met vermelding van de lege velden. Velden achter een
uitgeschakelde groepsschakelaar tellen niet mee.
- Wachtwoorden werden uitgeschreven in het installatielog; nu gemaskeerd.
Losse fouten:
- homepage: allowed_hosts stond op localhost:3001, nu * met uitleg.
- baserow, hedgedoc, ntfy: URL in de standaardwaarde wees naar een poort waar
niets luistert.
- Vast wachtwoord in acht sjablonen weggehaald: ghost, immich, miniflux,
paperless-ngx, unifi-network en vikunja kregen allemaal dezelfde
database-wachtwoorden; grafana en gotify stonden op 'admin'.
- data_dir bij keycloak, metube, miniflux en teslamate stond in het formulier
maar kwam nergens terecht (die apps gebruiken een Docker-volume).
- puid/pgid bij freshrss: het image kent ze niet.
- prometheus gaf de gevraagde tijdzone niet door.
Nieuw tests/test_app_templates.py: rendert elke app met zijn standaardwaarden
en controleert ongedefinieerde variabelen, velden zonder werking,
niet-gedeclareerde volumes, depends_on, dubbele containernamen,
poortconflicten, poortnummers in standaardwaarden en vaste wachtwoorden.
2236 tests groen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb