5 commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
7d178a68b0 |
v0.8.00-beta - 55 apps erbij, en drie kapotte images gevonden
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 2m22s
- 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 |
||
|
|
58d9be1f48 |
v0.7.90-beta - ARR-stack opgesplitst, /data-mount, netwerkopties per container
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 2m1s
- 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 |
||
|
|
bc55252267 |
v0.7.70-beta - invulmenu bij installeren, geheimen naar .env
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 1m34s
Invulmenu:
- Vaste stappen (Basis, Verbinden, Instellingen, Toegang, Controleren) in
plaats van één lange lijst. Eén stap per groep werkt niet: de mediane app
heeft één groep, arr-stack eenentwintig. Lege stappen worden overgeslagen.
- Volgende controleert de verplichte velden van die stap; die melding kwam
eerder pas bij het installeren.
- Geavanceerde opties achter één schakelaar die op elke stap zichtbaar is,
plus 'Alles op één pagina' voor het oude gedrag. Beide onthouden.
Geheimen naar .env:
- compose_transform.geheimen_naar_env() vervangt geheime waarden door
${NAAM} en schrijft ze naar .env met rechten 0600. Werkt ook midden in
een database-URL. Poorten en paden blijven leesbaar in compose.
- .serverup.json bevat geen geheimen meer en krijgt ook 0600; daar stonden
ze wereldleesbaar in. Het herconfiguratieformulier leest ze terug uit
.env via een bewaarde veld-naar-sleutel-koppeling.
- docs/beveiliging.md legt uit wat dit niet oplost: docker inspect toont de
waarde nog steeds.
Bewerken:
- Laatste stap toont het gerenderde resultaat met jouw waarden en is
bewerkbaar; compose_override/env_override gaan mee bij het installeren.
Ongeldige YAML wordt geweigerd voordat er een map bestaat.
- De bestaande editor heeft tabbladen (compose/.env) en biedt herstarten na
opslaan. De .env-PUT weigert een regel zonder '=' en logt in audit.
Inloggegevens:
- /api/stacks/<n>/credentials plus paneel op de stackkaart: adres,
gebruikersnaam, wachtwoord achter een oog-knop, kopieerknop. Alleen voor
beheerders, elk bekijken komt in het auditlog.
- Nieuw 'credential'-kenmerk in template.json met naamherkenning als
terugval, zodat de bestaande 96 sjablonen meteen werken.
Herstel van een regressie uit v0.7.60: acht inlogwachtwoorden hadden hun
genereerknop verloren toen die aan 'generate' werd gehangen. Terug, behalve
waar een verzonnen waarde fout is (WireGuard-sleutel, externe tokens).
De menulogica wordt getest door de echte component uit index.html in Node uit
te voeren; slaat zichzelf over waar node ontbreekt. 2295 tests groen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb
|
||
|
|
952e7ddb7a |
v0.7.60-beta - app-instellingen nagelopen op fouten bij het installeren
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 1m27s
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 |
||
|
|
2ba15418ab |
v0.7.20-beta - instellingen wijzigen, koppelen achteraf, defect uit v0.7.00
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 1m13s
Defect (v0.7.00): add_shared_network() hing elke service aan het gedeelde
netwerk, ook services met network_mode. Docker compose weigert die combinatie
("declares mutually exclusive network_mode and networks"), waardoor Homebridge,
Scrypted, Beszel en de ARR-stack met Gluetun niet te installeren waren met de
standaardkeuze "Verbinden met andere apps". Die services worden nu overgeslagen;
blijft er niets over, dan ook geen netwerkblok. Test over alle 96 apps.
Instellingen wijzigen na installatie:
- De gemaakte keuzes worden bij installatie opgeslagen in .serverup.json
(values + format); zonder die waarden viel het formulier niet te heropenen.
- GET /api/stacks/<naam>/config geeft de opgeslagen waarden plus het actuele
veldschema; POST /reconfigure maakt een backup, rendert opnieuw, past netwerk
en eigen IP opnieuw toe, valideert en herstart. Mislukt het valideren, dan
wordt de backup teruggezet.
- Knop Instellingen op de stackkaart opent dezelfde modal in wijzigen-stand,
met een waarschuwing dat handmatige compose-wijzigingen verloren gaan.
- Stacks van voor deze versie: knop uit met uitleg.
Bestaande stacks koppelen:
- POST /api/stacks/<naam>/connect zet een bestaande stack op het gedeelde
netwerk, valideert en herstart; wordt de compose ongeldig, dan wordt de
wijziging teruggedraaid.
Audit-log:
- audit.query()/count() accepteren filters op bron, actie, status, periode en
vrije tekst; facets() levert de keuzelijsten. /api/audit ondersteunt die als
queryparameters plus doorbladeren. Filterbalk in de UI.
Documentatie:
- README.md (bestond niet), docs/apps-maken.md met het volledige
templateformaat, docs/README.md als index.
- Changelog-secties voor v0.5.44/45/46 aangevuld; release.yml haalt de notes
daaruit, dus een tag daarop gaf een lege release. Test die afdwingt dat het
huidige VERSION een sectie heeft.
941 tests groen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb
|