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
91 lines
2.1 KiB
JSON
91 lines
2.1 KiB
JSON
{
|
|
"kind": "compose",
|
|
"metadata": {
|
|
"name": "PhotoPrism",
|
|
"description": "Fotobeheer met gezichtsherkenning en zoeken op inhoud, volledig lokaal.",
|
|
"tags": [
|
|
"fotos",
|
|
"media",
|
|
"ai"
|
|
],
|
|
"icon": {
|
|
"provider": "selfhst",
|
|
"id": "photoprism"
|
|
},
|
|
"version": {
|
|
"name": "latest"
|
|
},
|
|
"categories": [
|
|
"fotos"
|
|
]
|
|
},
|
|
"variables": [
|
|
{
|
|
"title": "Algemeen",
|
|
"items": [
|
|
{
|
|
"name": "service_name",
|
|
"type": "str",
|
|
"title": "Servicenaam",
|
|
"default": "photoprism",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "port",
|
|
"type": "int",
|
|
"title": "Web poort",
|
|
"default": 2342,
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "data_dir",
|
|
"type": "str",
|
|
"title": "Data directory",
|
|
"default": "/opt/serverup/appdata",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "timezone",
|
|
"type": "str",
|
|
"title": "Tijdzone",
|
|
"default": "Europe/Amsterdam",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "photos_dir",
|
|
"type": "str",
|
|
"title": "Fotomap",
|
|
"default": "/opt/serverup/media/photos",
|
|
"required": true
|
|
},
|
|
{
|
|
"name": "admin_password",
|
|
"type": "str",
|
|
"title": "Beheerderswachtwoord",
|
|
"default": "",
|
|
"required": true,
|
|
"description": "Minimaal 8 tekens",
|
|
"config": {
|
|
"placeholder": "sterk-wachtwoord"
|
|
},
|
|
"generate": true,
|
|
"secret": true
|
|
},
|
|
{
|
|
"name": "db_password",
|
|
"type": "str",
|
|
"title": "Database wachtwoord",
|
|
"default": "",
|
|
"required": true,
|
|
"description": "Gebruik de dobbelsteenknop voor een willekeurige waarde",
|
|
"config": {
|
|
"placeholder": "sterk-wachtwoord"
|
|
},
|
|
"advanced": true,
|
|
"generate": "auto",
|
|
"secret": true
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|