Changes.md erstellt, README.md und install.sh aktualisiert
This commit is contained in:
parent
628e636454
commit
1fb2a96583
3 changed files with 30 additions and 33 deletions
36
Changes.md
36
Changes.md
|
|
@ -1,28 +1,16 @@
|
|||
# Changelog
|
||||
# Änderungshistorie
|
||||
|
||||
---
|
||||
## Unveröffentlicht
|
||||
|
||||
## 2026-03-25 – Sicherheit, UX-Verbesserungen & Bugfixes
|
||||
### Neu
|
||||
- **Session-Authentifizierung** – HTTP Basic Auth durch cookie-basierte Session-Authentifizierung ersetzt; Sessions laufen nach 24 Stunden absolut ab (kein Sliding Expiry)
|
||||
- **Benutzerverwaltung** (`/useradmin`) – Benutzer anlegen, bearbeiten (Benutzername und Passwort), deaktivieren und löschen; Passwörter werden mit bcrypt gehasht gespeichert
|
||||
- **Ersteinrichtungsflow** – beim ersten Start ohne Benutzer leitet die Anwendung auf `/login` weiter und ermöglicht dort das Anlegen des ersten Administrator-Accounts
|
||||
- **Abmelden-Button** in der Seitenleiste
|
||||
|
||||
### Sicherheit
|
||||
- **Timing-sicherer Login**: Passwort- und Benutzernamevergleich auf `hash_equals()` umgestellt (verhindert Timing-Angriffe)
|
||||
- **SVG-Upload gesperrt**: Logo-Upload akzeptiert nur noch PNG und JPEG – SVG wurde entfernt (XSS-Risiko)
|
||||
- **CSV-Injection-Schutz**: Felder im Buchungsjournal-CSV-Export werden gegen Formula-Injection (`=`, `+`, `-`, `@`) abgesichert
|
||||
### Geändert
|
||||
- `AUTH_USER` und `AUTH_PASS` entfernt – Zugangsdaten werden nun ausschließlich in der Datenbank verwaltet
|
||||
- Neue Datenbanktabelle `users` (Migration `005_users.sql`) erforderlich
|
||||
|
||||
### Features
|
||||
- **Inline-Editing**: Belegdatum und Rechnungsnr. können direkt in der Beleg-Detailansicht per Klick bearbeitet werden (kein Seitenreload)
|
||||
- **Belegart-Filter**: Neue Filteroption in der Belegliste zum Filtern nach Belegart (Eingangsrechnung, Ausgangsrechnung, Quittung etc.)
|
||||
- **Favicon & App-Icon**: Favicon für Browser-Tabs, Apple Touch Icon und Web-App-Manifest eingebunden
|
||||
|
||||
### Robustheit
|
||||
- **Datenbankfehler-Handling**: PDO-Exceptions in Invoice-, Booking- und BelegController werden separat abgefangen und geloggt statt als generische Fehler zu erscheinen
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-24 – Initiales Release
|
||||
|
||||
### Features
|
||||
- **Basis-System**: MVC-Framework, Routing, Authentifizierung, Datenbank-Migrations-System
|
||||
- **Ausgangsrechnungen**: Erstellen, Verwalten und PDF-Export von Ausgangsrechnungen
|
||||
- **EÜR-Vorbereitung**: Einnahmen-Überschuss-Rechnung als PDF-Export
|
||||
- **UStVA-Vorbereitung**: Umsatzsteuer-Voranmeldung inkl. XML-Export für elster.de
|
||||
### Behoben
|
||||
- Fehler in `BelegController` behoben
|
||||
|
|
|
|||
23
README.md
23
README.md
|
|
@ -12,6 +12,7 @@ Self-hosted Buchhaltungs- und Steueranwendung für deutsche Freiberufler und Kle
|
|||
- **UStVA** – Kennzahlen-Berechnung aus Buchungen, ELSTER XML-Export
|
||||
- **EÜR** – Jahresauswertung mit PDF-Export
|
||||
- **Einstellungen** – Firmendaten, Logo, ELSTER-Steuernummer
|
||||
- **Benutzerverwaltung** – Benutzer anlegen, bearbeiten, deaktivieren und löschen; session-basierte Authentifizierung mit 24 h Timeout
|
||||
|
||||
## Tech Stack
|
||||
|
||||
|
|
@ -70,18 +71,20 @@ git clone <repository-url> steuerkram
|
|||
cd steuerkram
|
||||
```
|
||||
|
||||
#### 2. Zugangsdaten anpassen
|
||||
#### 2. Konfiguration anpassen
|
||||
|
||||
Öffne `docker-compose.yml` und ändere die folgenden Umgebungsvariablen im `web`-Service:
|
||||
Kopiere `.env.example` nach `.env` und passe die Werte an:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
AUTH_USER: admin # Login-Benutzername
|
||||
AUTH_PASS: changeme # Login-Passwort – UNBEDINGT ändern!
|
||||
APP_SECRET: change-this-in-production # Zufälligen langen String eintragen
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
Außerdem die Datenbankpasswörter in beiden Services (`web` und `db`) aufeinander abstimmen, falls gewünscht.
|
||||
```dotenv
|
||||
DB_PASS=sicheres-passwort # Datenbankpasswort – in docker-compose.yml spiegeln
|
||||
APP_SECRET=zufaelliger-string # Zufälligen langen String eintragen (für Sessions)
|
||||
```
|
||||
|
||||
Außerdem in `docker-compose.yml` das `MARIADB_PASSWORD` im `db`-Service auf denselben Wert wie `DB_PASS` setzen.
|
||||
|
||||
#### 3. Container starten
|
||||
|
||||
|
|
@ -100,7 +103,9 @@ Beim ersten Start werden automatisch:
|
|||
http://localhost:8080
|
||||
```
|
||||
|
||||
Login mit den in Schritt 2 gesetzten Zugangsdaten.
|
||||
Beim ersten Aufruf erscheint die **Ersteinrichtung**: dort den ersten Benutzer-Account anlegen. Danach ist die Anwendung passwortgeschützt.
|
||||
|
||||
Weitere Benutzer können nach dem Login unter **Benutzer** in der Seitenleiste verwaltet werden.
|
||||
|
||||
#### 5. Firmendaten hinterlegen
|
||||
|
||||
|
|
|
|||
|
|
@ -289,3 +289,7 @@ echo ""
|
|||
echo " Danach die Anwendung starten:"
|
||||
echo -e " ${BOLD}cd ${INSTALL_DIR} && docker compose up -d${NC}"
|
||||
echo ""
|
||||
echo -e "${YELLOW}${BOLD}Erster Login:${NC}"
|
||||
echo " Beim ersten Aufruf der Anwendung im Browser wird automatisch"
|
||||
echo " die Ersteinrichtung angezeigt – dort den ersten Benutzer anlegen."
|
||||
echo ""
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue