reset-admin wijst een instantie aan, en maakt nooit een database aan
In de gedeelde opstelling van deploy/klonkt@.service werkte het noodpad niet.
De code staat daar op /opt/klonkt en de configuratie per instantie in
/var/lib/klonkt/<slug>/.env, waar systemd hem leest via EnvironmentFile. Een
script dat je zelf start krijgt die omgeving niet: dotenv zoekt naast de code,
vindt niets, en draait zonder DATABASE_PATH.
Gemeten op een nagebouwde opstelling: 'npm run reset-admin' legde een lege
database in /opt/klonkt/storage/ -- de gedeelde codemap, die volgens de unit
juist read-only is -- en klapte daarna op 'no such table: users'. Een
stacktrace op de plek waar een aanwijzing hoort.
Drie dingen:
- --instance <slug> leest dezelfde .env als systemd, met override, want wie de
instantie aanwijst hoort te winnen van een DATABASE_PATH die nog in de shell
hangt van een vorige.
- De controle staat VOOR de import van src/config/database.js, want die maakt
map en bestand aan zodra hij geladen wordt. Ontbreekt de database, dan stopt
hij en noemt het pad; hij maakt er geen.
- deploy/MULTI-INSTANCE.md noemt het commando nu, met de reden erbij. De
hulppagina in de app zegt 'vanuit de projectmap', en dat klopt alleen bij een
eigen checkout per instantie.
Zes tests, waaronder de geslaagde weg: het getoonde wachtwoord moet echt op de
gebruiker passen. Controleproef gedraaid -- zonder de wacht valt de test om die
eist dat er niets wordt aangemaakt.
Co-Authored-By: Claude Opus 5 <noreply@…>