This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Installation & Setup
Voraussetzungen
System-Anforderungen
- Node.js: Version 18+ (für Build-System)
- PHP: Version 8.0+ (mit strict types Support)
- SQLite: PHP-Extension
- sendmail/postfix: Für E-Mail-Versand (optional, für Produktion)
Entwicklungsumgebung
- Git
- Code-Editor (VS Code empfohlen)
- Terminal/Shell
Lokale Installation
1. Repository klonen
git clone ssh://forgejo@home.schumbi.de/ralf/zgb_www.git
cd zgb_www
2. Dependencies installieren
npm install
Installiert:
markdown-it: Markdown-Parsercross-env: Cross-Platform Environment-Variablen
3. Build ausführen
npm run build
Erstellt:
public/Verzeichnis mit generierten HTML-Dateienpublic/backend/mit Backend-Codepublic/data/für SQLite-Datenbank
4. Lokaler PHP-Server (für Entwicklung)
cd public
php -S localhost:8000
Oder mit XAMPP/WAMP:
public/als Document Root konfigurieren
Konfiguration
Content-Konfiguration
Bearbeite content/globals.json:
{
"event": {
"date": "2025-11-08",
"venue": "Sporthalle Buchenberg",
"time": "10–13 Uhr"
},
"site": {
"title": "Doberaner Zwergen-Börse",
"navigation": [...]
}
}
Backend-Konfiguration
Die Backend-Konfiguration erfolgt über den Admin-Bereich:
- Auf
/backend/web/admin_login.phpgehen - Einloggen (Admin-Passwort ist in der DB-Config als Hash unter
adminPasswordHashgespeichert) - Falls das Passwort (noch) nicht bekannt ist: Passwort-Reset im Login nutzen (sendet ein neues Passwort an
operatorEmail) - Konfiguration anpassen:
- Anmeldezeitraum
- Nummernbereich
- Event-Datum
- Organisator-E-Mail
Wichtig: Passwort nach erstem Zugriff ändern und operatorEmail korrekt setzen (sonst gehen Reset-Mails ggf. ins Leere).
Datenbank
Die SQLite-Datenbank wird automatisch erstellt beim ersten Zugriff:
- Pfad:
public/data/zwergenboerse.db - Verzeichnis muss beschreibbar sein (chmod 755/775)
Entwicklung
Content bearbeiten
- Markdown/HTML-Dateien in
content/bearbeiten npm run buildausführen- Änderungen in
public/prüfen
Backend entwickeln
- Code in
zgb-backend/bearbeiten npm run buildausführen (kopiert nachpublic/backend/)- PHP-Dateien direkt in
public/backend/web/testen
Build-Prozess verstehen
Siehe scripts/build.mjs:
- Markdown → HTML Konvertierung
- Layout-Generierung
- Asset-Kopierung
- Backend-Kopierung
Troubleshooting
Build-Fehler
Problem: npm run build schlägt fehl
- Lösung: Node.js-Version prüfen (18+)
- Dependencies neu installieren:
rm -rf node_modules && npm install
PHP-Fehler
Problem: SQLite-Fehler
- Lösung: PHP SQLite-Extension prüfen:
php -m | grep sqlite
Problem: Datenbank-Verzeichnis nicht beschreibbar
- Lösung: Berechtigungen setzen:
chmod 755 public/data
E-Mail-Versand
Problem: E-Mails werden nicht versendet
- Lösung:
- sendmail/postfix auf Server installieren
- PHP
mail()Funktion testen - Error-Logs prüfen
Pfad-Probleme
Problem: Backend findet Dateien nicht
- Lösung:
- Relative Pfade prüfen (von
public/backend/web/aus) __DIR__verwenden statt relative Pfade
- Relative Pfade prüfen (von
Produktions-Setup
Server-Anforderungen
- PHP 8.0+
- SQLite-Extension
- sendmail/postfix
- Web-Server (Apache/Nginx)
- Schreibrechte für
public/data/
Deployment-Schritte
- Repository auf Server klonen
npm installausführennpm run buildausführenpublic/als Document Root konfigurieren- Berechtigungen setzen:
chmod 755 public/data chown www-data:www-data public/data - Admin-Passwort ändern
- Konfiguration im Admin-Bereich anpassen
.htaccess (Apache)
Optional für zusätzliche Sicherheit:
# Backend-Verzeichnis schützen
<Directory "backend">
Options -Indexes
AllowOverride None
</Directory>
# Datenbank-Dateien schützen
<FilesMatch "\.(db|sqlite3?)$">
Require all denied
</FilesMatch>
Siehe auch: Deployment
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