Sterker beheren
Als beheerder maak je accounts, zet je recepten klaar en houd je de app draaiend. Dit is de uitleg voor het dagelijkse beheer. De technische handleiding (server, database, code) staat in HANDLEIDING.md in de projectmap.
1. Inloggen als beheerder
De beheerpagina staat op /beheer/ achter het adres van de app. Alleen accounts met de rol beheerder kunnen daar verder. Je eigen account in de app is hetzelfde account.
De eerste beheerder maak je op de server, in de projectmap:
php tools/maak-admin.php jij@voorbeeld.nl
Daarna kun je andere accounts op de beheerpagina de rol beheerder geven. Houd dat klein: een beheerder ziet de lijst met accounts.
2. Deelnemers en accounts
Twee manieren
- Zelf aanmaken (open registratie). Deelnemers maken in de app een account met e-mail en wachtwoord. Dit is de stand als
registratie_open in config.php op true staat.
- Via de beheerder. Jij maakt het account aan met een tijdelijk wachtwoord; de deelnemer kiest na het eerste inloggen een eigen wachtwoord. Zet
registratie_open op false als alleen jij accounts mag maken. Met account_verplicht op true is inloggen verplicht om de app te gebruiken.
Op de beheerpagina
- Lijst. Alle accounts met rol, laatste login en omvang van de opslag.
- Aanmaken. E-mail en voornaam; het tijdelijke wachtwoord wordt één keer getoond. Geef het persoonlijk door, niet per onbeveiligde e-mail.
- Wachtwoord resetten. Geeft een nieuw tijdelijk wachtwoord en meldt andere sessies af.
- Rol. Deelnemer of beheerder.
- Verwijderen. Verwijdert het account met alles wat erbij hoort: toestand, buddycode, signalen, pushabonnementen. Dit is niet terug te draaien. Deelnemers kunnen dit ook zelf, in hun profiel onder Mijn gegevens.
Je ziet nooit de inhoud van een account. Wat een deelnemer invult is van de deelnemer. Wil je meekijken voor de behandeling, vraag dan om de export (profiel → Mijn gegevens) of laat je als buddy koppelen.
3. Buddy's begeleiden
Een buddy heeft dezelfde app en een eigen account. Zo gaat het:
- De deelnemer geeft zijn of haar code van zes tekens (buddy-tab, kaart Samen in de app) aan de buddy.
- De buddy opent Sterker, kiest op het welkomstscherm Ik ben buddy van iemand, maakt een account en vult de code in. Staat registratie dicht, dan maak jij het account en kiest de buddy daarna in het profiel Alleen buddy en volgt de code.
- De buddy zet berichten aan. Zonder berichten ziet hij of zij een signaal alleen als de app openstaat.
Deelnemer en buddy kunnen elkaar ook korte berichtjes sturen in een gesprek per koppel (dertig dagen bewaard, geen groepen, geen foto's). Signalen: zwaar en het gaat weer gaan van de deelnemer naar de volgers; Ik ben er, Ik bel je, Ik kom eraan en een lichtpunt gaan van een buddy naar de deelnemer. De deelnemer ziet wie hem volgt, kan ontkoppelen en een nieuwe code maken. Jij ziet daar niets van, en dat hoort zo.
Wijs buddy's op hun eigen uitleg: Sterker voor buddy's. Daar staat ook wat helpt en wat niet.
4. Pushberichten
Pushberichten werken zonder App Store, via de pushdiensten van Apple, Google en Mozilla. De server heeft daarvoor eenmalig een sleutelpaar nodig:
composer install
php tools/maak-vapid.php --schrijf
Dat zet de sleutels in config.php onder vapid; vul daar ook subject in (een mailto: van de beheerder). Zonder sleutels meldt het profiel "Nog niet ingesteld op de server" en werkt al het andere gewoon.
- Deelnemers en buddy's zetten berichten per apparaat aan in hun profiel onder Berichten, met een testbericht.
- Een bericht bevat alleen de voornaam en de korte tekst van het signaal, versleuteld.
- iPhone: alleen als de app op het beginscherm staat (iOS 16.4 of nieuwer) en geopend wordt vanaf het beginscherm. Dit is de meest gestelde vraag; zet het in je uitleg aan deelnemers.
- Android en computer: ook in de browser zelf.
5. Recepten: "Ik heb zin in…"
In de keuken van de app staat een lijst Ik heb zin in…. Die vul jij op de beheerpagina onder Recepten.
- Naam en ingrediënten. Per regel een ingrediënt uit de lijst met een hoeveelheid; je ziet meteen de energie en de verdeling eiwit, vet en koolhydraten.
- Voor wie. Iedereen, Deze deelnemers (vink er meerdere aan) of Nog niemand (concept: alleen jij ziet het).
- Volgorde. De lijst staat in de app in de volgorde van de beheerpagina.
Een startset recepten staat er al in. Deelnemers maken daarnaast hun eigen gerechten in de keuken; die zie jij niet.
6. Schatten door de assistent
De app schat zelf de waarde van gewone dingen ("4 aardbeien", "broodje kroket") met een ingebouwde lijst. Voor alles wat daar niet in staat, en voor het weekmenu, kan de server de assistent van Anthropic vragen. Dat staat aan zodra anthropic_key in config.php is ingevuld; het model kies je met anthropic_model.
- Dezelfde vraag wordt één keer gesteld en daarna uit de cache beantwoord.
- Per deelnemer hooguit 200 vragen per dag.
- Naar de assistent gaat alleen de tekst van de vraag: namen van gerechten en, bij het weekmenu, de lijsten zonder naam. Zet het uit (geen sleutel) als dat niet mag, of vermeld het in de toestemmingstekst.
7. Een nieuwe versie uitleveren
- Verhoog het nummer in
public/versie.js, bijvoorbeeld 2026.10.27-1.
- Zet de code op de server:
deploy/bijwerken.sh doet git pull en composer install. Nieuwe tabellen of kolommen: php tools/installeer.php.
- Deelnemers zien bij het openen, bij een tik in het venster (hooguit eens per minuut) of binnen vijf minuten, het balletje met uitroepteken op hun avatar en de balk "Er is een nieuwe versie". Pas bij Nu bijwerken wisselt de app.
Vergeet je het nummer, dan komen de nieuwe bestanden wel aan bij de volgende keer openen, maar zonder melding.
8. Gegevens, privacy en back-ups
- Wat de server bewaart: e-mail, voornaam, wachtwoord-hash, de toestand van de app als één bestand per account, buddycodes, volgers, signalen (30 dagen), pushabonnementen en de cache van schattingen. Dit zijn gezondheidsgegevens: alleen https, server in de EU, geen trackers.
- Inzage en verwijderen: deelnemers doen dat zelf in hun profiel. Jij kunt een account verwijderen op verzoek.
- Toestemming. Bij het aanmaken van een account hoort een toestemmingstekst; die staat nog op de lijst (zie
PLAN.md). Regel die vóór de proef met echte deelnemers.
- Back-up: een dagelijkse
mysqldump van de database en een kopie van config.php, versleuteld bewaard. De code zelf staat in git.
9. Veelvoorkomende problemen
"Dit account is geen beheerder."
Geef het account de rol beheerder via een andere beheerder, of op de server met php tools/maak-admin.php e-mail.
Een deelnemer krijgt geen berichten.
- Staat de app op het beginscherm en wordt hij daarvandaan geopend? (iPhone)
- Staat in het profiel onder Berichten "Aan op dit apparaat"? Zo niet: aanzetten. Staat er "Geblokkeerd": meldingen voor de site weer toestaan in de instellingen van de telefoon of browser.
- Werkt het testbericht? Zo niet, kijk naar de melding: "geen VAPID-sleutels" betekent dat de server nog geen sleutels heeft (zie hoofdstuk 4).
"Unable to create the local key" bij het testbericht.
PHP op Windows (Laragon) vindt openssl.cnf niet. Zet dat bestand eenmalig in C:\Program Files\Common Files\SSL\; zie HANDLEIDING.md, hoofdstuk 2. Op Linux speelt dit niet.
Het signaalicoon in de app is rood.
De API is niet bereikbaar: controleer de server, de database en config.php. De app blijft intussen werken en synchroniseert vanzelf zodra de server terug is.
Een deelnemer is zijn wachtwoord kwijt.
Beheerpagina → account → Wachtwoord resetten. Geef het tijdelijke wachtwoord persoonlijk door.
Terug naar beheer