Apps onderling verbinden:
- Elke stack draaide als eigen compose-project met een eigen netwerk, waardoor
stacks elkaar niet op naam konden bereiken. Bij installeren staat nu
"Verbinden met andere apps" aan: de stack komt op een gedeeld bridge-netwerk
(SHARED_NETWORK, standaard "serverup") dat op aanvraag wordt aangemaakt.
- compose_transform.add_shared_network() hangt elke service eraan en laat
bestaande netwerken staan, dus het werkt samen met een macvlan-adres.
- Nieuw /api/apps/connectable geeft de geinstalleerde apps met hun
containernamen, zodat de installatiemodal kan laten kiezen.
Kiezen in plaats van typen:
- Een veld met "connect": {"app": "mosquitto", "scheme": "mqtt", "port": 1883}
toont een keuzelijst met wat er al draait, met handmatig invullen als
terugval. Toegepast op zigbee2mqtt -> mosquitto en open-webui -> ollama.
- Is de doel-app nog niet geinstalleerd, dan zegt het veld dat.
Uitleg per instelling:
- Info-icoon per veld opent een blok met de volledige uitleg plus de
standaardwaarde. Uitgeschreven voor de instellingen die de meeste vragen
oproepen (downloadmap vs mediamap, shm_size bij frigate, poort 80 bij caddy,
PUID bij de arr-stack, GPU bij ollama, publiek adres bij wg-easy).
Geavanceerde opties:
- advanced: true op een veld of groep zet het achter een uitklapblok met
teller. Toegepast op wachtwoorden, PUID/PGID, USB-paden en bewaartermijnen
van 28 apps.
- Test bewaakt dat elke app zichtbare velden overhoudt en dat koppelvelden naar
een bestaande app verwijzen.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb
De ARR-stack installeerde altijd dezelfde zeven containers. Nu kies je per
onderdeel uit twintig:
- Media: sonarr, radarr, lidarr, readarr, whisparr
- Indexers: prowlarr, jackett, flaresolverr, bazarr
- Downloaden: qbittorrent, sabnzbd, nzbget, gluetun (VPN)
- Aanvullend: jellyseerr, recyclarr, unpackerr, tdarr, autobrr, maintainerr,
huntarr
Standaard aan: sonarr, radarr, prowlarr, bazarr, qbittorrent, jellyseerr.
Gluetun:
- Staat die aan, dan draaien de downloadclients in diens netwerknamespace
zonder eigen poortmapping; anders lekt hun verkeer om de VPN heen. Hun
webinterfaces komen op de poorten van de Gluetun-container.
- qBittorrent en SABnzbd luisteren allebei standaard op 8080 en botsten
daardoor achter een gedeelde namespace. qBittorrent draait nu intern op 8090.
Groepsschakelaars werkten niet:
- Een `toggle` op een groep in template.json was zelf geen variabele en kreeg
dus nooit een startwaarde, waardoor elk schakelbaar onderdeel standaard uit
stond en een stack met schakelaars leeg binnenkwam. fields() geeft de
schakelaar nu mee als synthetisch bool-veld met een instelbare
standaardstand (toggle_default), en de UI toont hem alleen in de kop van de
groep in plaats van er ook nog eens onder.
Tests: elk onderdeel levert precies een service op als het aan staat en geen
spoor als het uit staat, de downloadclients zitten achter de VPN zonder eigen
poorten, en de interne poorten achter Gluetun botsen niet. Poortbotsingen met
bestaande apps rechtgezet (8090 -> 8097, 8095 -> 8098); 6881 en 5055 blijven
gedeeld met de losse variant van dezelfde app.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb