No description
Find a file
fds2610-bot b1712bb7ea Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB
Docker Compose mit drei Services (nginx auf Port 8000), Migrationsmechanik,
Update- und Backup-Skript. Anwendung: Router mit CSRF-Prüfung, Anmeldung und
Ersteinrichtung, zentraler Einstellungsdialog mit Reitern, ein- und
ausschaltbares Debug-Log mit Maskierung von Zugangsdaten.

Layout nach Vorbild des FinanzManagers: feste Navigation links,
Werkzeugleiste oben, Tab-Leiste; Farbschema hell/dunkel/System.

Tests: 51 PHP-Prüfungen und 7 Playwright-Tests, alle grün.
2026-08-09 20:21:42 +02:00
migrations Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
nginx Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
php Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
public Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
scripts Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
src Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
tests Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
.env.example Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
.gitignore Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
Aktienkurse.md Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
Changes.md Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
CLAUDE.md Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
composer.json Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
docker-compose.yml Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
docker-entrypoint.sh Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
Dockerfile Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
LICENSE Initial commit 2026-08-09 15:47:46 +02:00
PLAN.md Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00
README.md Phase 0: Projektgerüst mit nginx, php-fpm und MariaDB 2026-08-09 20:21:42 +02:00

Finanzmanager

Persönliche Finanzverwaltung als Web-Anwendung: Konten, Buchungen mit Kategorien und Klassen, Jahresbudget, Monatsabschluss, Auswertungen, Online-Banking über FinTS und Wertpapierdepots.

Ersetzt den Lexware FinanzManager Deluxe, läuft auf einem Debian-Server statt auf einem Windows-Client. Die fachlichen Begriffe bleiben bewusst identisch zum Original – im Haushalt wird beides parallel genutzt.

Stand

Phase 0 (Grundgerüst) ist gebaut: Anmeldung, zentraler Einstellungsdialog, Debug-Log, Migrationsmechanik, Test-Harness. Die fachlichen Module folgen nach PLAN.md.

Technik

Sprache PHP 8.3, kein Framework, eigenes MVC
Datenbank MariaDB 11
Webserver nginx + php-fpm
Betrieb Docker Compose (drei Services)
Frontend serverseitiges HTML, Vanilla JS, CSS Custom Properties
Fremdbibliotheken keine im Kern; FinTS folgt in Phase 5 als eigener Fork

Diagramme werden als eigenes SVG erzeugt, PDF-Berichte gehen über die Druckfunktion des Browsers – bewusst keine Chart- oder PDF-Bibliothek.

Start

cp .env.example .env      # Werte anpassen, APP_KEY erzeugen
docker compose up -d

Danach http://localhost:8000 aufrufen. Beim ersten Aufruf führt die Anwendung zur Ersteinrichtung und legt den ersten Benutzer an.

./scripts/run-tests.sh    # Tests
./scripts/backup.sh       # Backup mit Rotation
./scripts/update.sh       # Update (auf dem Produktionsserver)

Verzeichnisse

src/            Anwendungscode (Controllers, Models, Services, Views)
public/         Front-Controller und statische Dateien
migrations/     nummerierte SQL-Migrationen, laufen beim Containerstart
scripts/        Migration, Update, Backup, Tests
tests/          PHP-Testsuite; tests/e2e/ für Playwright
data/           Nutzdaten: mariadb, logs, import (nicht im Repository)
Altdaten/       Screenshots und QIF-Export der Altanwendung (nicht im Repository)

Migration der Altdaten

Datenquelle ist der QIF-Export aus dem FinanzManager – die .QDF-Datei ist verschlüsselt und nicht auswertbar. Der Importer liest Klassen, Kategorien, Konten, Buchungen samt Splits sowie Wertpapierbuchungen. Einzelheiten zum Format und den Fallstricken stehen in PLAN.md, Kapitel 4.

Dokumentation

  • PLAN.md – Projektplan mit allen Phasen
  • CLAUDE.md – Entwicklungsregeln
  • Changes.md – Änderungsprotokoll