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
|
### Geändert
|
||||||
- **Timing-sicherer Login**: Passwort- und Benutzernamevergleich auf `hash_equals()` umgestellt (verhindert Timing-Angriffe)
|
- `AUTH_USER` und `AUTH_PASS` entfernt – Zugangsdaten werden nun ausschließlich in der Datenbank verwaltet
|
||||||
- **SVG-Upload gesperrt**: Logo-Upload akzeptiert nur noch PNG und JPEG – SVG wurde entfernt (XSS-Risiko)
|
- Neue Datenbanktabelle `users` (Migration `005_users.sql`) erforderlich
|
||||||
- **CSV-Injection-Schutz**: Felder im Buchungsjournal-CSV-Export werden gegen Formula-Injection (`=`, `+`, `-`, `@`) abgesichert
|
|
||||||
|
|
||||||
### Features
|
### Behoben
|
||||||
- **Inline-Editing**: Belegdatum und Rechnungsnr. können direkt in der Beleg-Detailansicht per Klick bearbeitet werden (kein Seitenreload)
|
- Fehler in `BelegController` behoben
|
||||||
- **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
|
|
||||||
|
|
|
||||||
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
|
- **UStVA** – Kennzahlen-Berechnung aus Buchungen, ELSTER XML-Export
|
||||||
- **EÜR** – Jahresauswertung mit PDF-Export
|
- **EÜR** – Jahresauswertung mit PDF-Export
|
||||||
- **Einstellungen** – Firmendaten, Logo, ELSTER-Steuernummer
|
- **Einstellungen** – Firmendaten, Logo, ELSTER-Steuernummer
|
||||||
|
- **Benutzerverwaltung** – Benutzer anlegen, bearbeiten, deaktivieren und löschen; session-basierte Authentifizierung mit 24 h Timeout
|
||||||
|
|
||||||
## Tech Stack
|
## Tech Stack
|
||||||
|
|
||||||
|
|
@ -70,18 +71,20 @@ git clone <repository-url> steuerkram
|
||||||
cd 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
|
```bash
|
||||||
environment:
|
cp .env.example .env
|
||||||
AUTH_USER: admin # Login-Benutzername
|
|
||||||
AUTH_PASS: changeme # Login-Passwort – UNBEDINGT ändern!
|
|
||||||
APP_SECRET: change-this-in-production # Zufälligen langen String eintragen
|
|
||||||
```
|
```
|
||||||
|
|
||||||
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
|
#### 3. Container starten
|
||||||
|
|
||||||
|
|
@ -100,7 +103,9 @@ Beim ersten Start werden automatisch:
|
||||||
http://localhost:8080
|
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
|
#### 5. Firmendaten hinterlegen
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -289,3 +289,7 @@ echo ""
|
||||||
echo " Danach die Anwendung starten:"
|
echo " Danach die Anwendung starten:"
|
||||||
echo -e " ${BOLD}cd ${INSTALL_DIR} && docker compose up -d${NC}"
|
echo -e " ${BOLD}cd ${INSTALL_DIR} && docker compose up -d${NC}"
|
||||||
echo ""
|
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