No results
3
Lokale Entwicklung
Ralf Warmuth edited this page 2026-01-09 22:32:38 +01:00
Lokale Entwicklung
Diese Seite beschreibt den lokalen Dev-Loop so, wie das Projekt wirklich läuft: Build erzeugt public/, und daraus wird getestet/serviert.
Voraussetzungen
- Node.js (für Build)
- PHP 8+ (für Endpoints/Admin)
- (optional) sqlite3 CLI (Debug/Inspection)
TL;DR Dev-Loop
- Änderungen machen (Content/Assets/PHP/Backend)
- Build laufen lassen:
npm run build - Lokal aus
public/serven:php -S localhost:8000(impublic/-Ordner) - Browser testen
Warum: Nur public/ entspricht der Laufzeitstruktur auf dem Server.
Build
Im Repo-Root:
npm installnpm run build
Build erzeugt/kopiert:
- Content →
public/<slug>/index.html - Assets →
public/assets/* - Public PHP →
public/anmeldung/*,public/registration/*,public/api/* - Backend →
public/backend/* - Data-Dir →
public/data/*(inkl..htaccess)
Siehe: Projekt-Landkarte
Lokal starten (PHP Built-in Server)
Im Ordner public/:
php -S localhost:8000
Dann testen:
/willkommen/(statische Seite)/anmeldung/(PHP Formular)/backend/web/admin_login.php(Admin)
Datenbank & Rechte
- DB-Pfad zur Laufzeit:
public/data/zwergenboerse.db - Das Verzeichnis
public/data/muss beschreibbar sein (lokal meist OK; auf Server unbedingt prüfen).
Tipp: Wenn “Database directory is not writable” kommt, ist fast immer public/data/ das Problem.
Mail-Queue lokal testen
Admin-Settings
Im Admin (/backend/web/admin.php, Tab “Mail-Queue”):
mailQueueEnabledan/ausmailMaxPerHoursetzen- optional:
mailRedirectToSchumbi(wirkt nur außerhalb Anmeldezeitraum)
Worker ausführen
Der Worker ist als Cron/CLI gedacht:
- Script:
public/backend/cron/send_mail_queue.php
Lokal kann man es direkt via CLI ausführen (aus dem Projekt heraus).
Details: Mail-Queue
Debugging-Hinweise
- Alles, was “auf dem Server” passiert, passiert in
public/.- Wenn du
zgb-backend/änderst und im Browser nichts passiert: Build vergessen.
- Wenn du
- Admin-POSTs:
- CSRF-Token wird geprüft; bei “ungültig” → Seite neu laden.
- Queue-Status:
- Admin pollt
admin_queue_status.phpalle 10s.
- Admin pollt
- Logs:
- PHP-Fehler: serverabhängig (error_log)
- Admin-Aktionen:
public/data/admin_actions.log - Mail-Queue Cron: je nach Host
$HOME/logs/mail-queue.logoderpublic/data/mail-queue.log
Tests
Für Änderungen am Backend/Repos/Services empfiehlt sich ein schneller Testlauf:
php tests/run-tests.php
Ausführliche Doku: Tests
Häufige Änderungen
Neue Content-Seite
content/neue-seite.mdanlegencontent/pages.jsonergänzennpm run build
Änderung am Admin/Backend
- Datei in
zgb-backend/ändern npm run build(kopiert nachpublic/backend/)- URL unter
/backend/web/...testen
Einstieg
Architektur
- Architektur-Übersicht
- Frontend-Build
- Backend
- Datenbank
- Mail-Queue
- Performance & Optimierungen
- Entscheidungen & Historie
Betrieb
Projektarbeit
- Code:
ssh://forgejo@home.schumbi.de/ralf/zgb_www.git - Wiki:
ssh://forgejo@home.schumbi.de/ralf/zgb_www.wiki.git