server-up/apps/miniflux/template.json
Ramon bc55252267
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 1m34s
v0.7.70-beta - invulmenu bij installeren, geheimen naar .env
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
2026-07-28 21:31:51 +02:00

86 lines
1.9 KiB
JSON

{
"kind": "compose",
"metadata": {
"name": "Miniflux",
"description": "Minimalistische en snelle RSS-lezer, zelfgehost met een opgeruimde interface.",
"tags": [
"rss",
"nieuws",
"lezer",
"feeds"
],
"icon": {
"provider": "selfhst",
"id": "miniflux"
},
"version": {
"name": "latest"
},
"categories": [
"documenten"
]
},
"variables": [
{
"title": "Algemeen",
"items": [
{
"name": "service_name",
"type": "str",
"title": "Servicenaam",
"default": "miniflux",
"required": true
},
{
"name": "port",
"type": "int",
"title": "Web poort",
"default": 8080,
"required": true
}
]
},
{
"title": "Beheerder",
"items": [
{
"name": "admin_username",
"type": "str",
"title": "Admin gebruikersnaam",
"default": "admin",
"required": true
},
{
"name": "admin_password",
"type": "str",
"title": "Admin wachtwoord",
"default": "",
"required": true,
"config": {
"placeholder": "sterk-wachtwoord"
},
"generate": true,
"secret": true
}
]
},
{
"title": "Database",
"items": [
{
"name": "db_password",
"type": "str",
"title": "Database wachtwoord",
"default": "",
"required": true,
"config": {
"placeholder": "sterk-wachtwoord"
},
"secret": true,
"generate": "auto",
"help": "Wordt automatisch ingevuld met een willekeurige waarde. Alleen de containers onderling gebruiken hem, dus je hoeft hem niet te onthouden."
}
]
}
]
}