108 lines
3.8 KiB
Markdown
108 lines
3.8 KiB
Markdown
# Konfiguration
|
||
|
||
## Firmendaten hinterlegen
|
||
|
||
Nach dem ersten Login unter **Einstellungen** Firmendaten, Logo und ELSTER-Steuernummer eintragen. Diese Angaben erscheinen auf Ausgangsrechnungen und im EÜR/UStVA-Export.
|
||
|
||
---
|
||
|
||
## Nummernkreise
|
||
|
||
Unter **Einstellungen → Nummernkreise** können Präfixe für die automatisch vergebenen Nummern konfiguriert werden:
|
||
|
||
| Nummernkreis | Standard | Beispiel |
|
||
|---|---|---|
|
||
| Belege | `BLG` | `BLG-2026-0001` |
|
||
| Ausgangsrechnungen | `RE` | `RE-2026-0001` |
|
||
| Anlagen | `ANL` | `ANL-2026-0001` |
|
||
|
||
Das Format ist immer `{Präfix}-{Jahr}-{laufende Nummer}`. Die laufende Nummer wird automatisch hochgezählt und kann nicht zurückgesetzt werden (GoBD).
|
||
|
||
---
|
||
|
||
## KI-Kontierungsvorschlag einrichten
|
||
|
||
Der KI-Kontierungsvorschlag analysiert Belege automatisch beim Nextcloud-Import und füllt das Buchungsformular mit einem Vorschlag vor. Die Funktion ist standardmäßig deaktiviert und kann unter **Einstellungen → KI-Kontierungsvorschlag** aktiviert werden.
|
||
|
||
### Voraussetzungen
|
||
|
||
- Nextcloud-Import muss konfiguriert und aktiv sein (siehe unten)
|
||
- Ein erreichbares LLM (lokal via Ollama oder Remote-API)
|
||
- Für Bildbelege (JPEG, PNG, TIFF): ein Vision-fähiges Modell (z.B. `qwen2.5vl`, `llava`); ohne Vision-Unterstützung werden Bildbelege ohne Textextraktion verarbeitet
|
||
- Für PDF-Belege: `pdftotext` und `pdftoppm` (Teil von `poppler-utils`, im Docker-Image enthalten)
|
||
|
||
### Option A – Lokales Ollama
|
||
|
||
Kein API-Schlüssel nötig, aber hoher Ressourcenbedarf:
|
||
|
||
```bash
|
||
ollama pull qwen2.5vl # Vision-fähig (empfohlen), alternativ mistral o.ä.
|
||
```
|
||
|
||
In `.env` ist keine weitere Konfiguration nötig – die App erkennt Ollama auf `localhost:11434` automatisch. Modell und URL können optional überschrieben werden:
|
||
|
||
```dotenv
|
||
OLLAMA_URL=http://localhost:11434
|
||
OLLAMA_MODEL=qwen2.5vl
|
||
```
|
||
|
||
### Option B – Remote-API (OpenAI-kompatibel)
|
||
|
||
z.B. OpenAI, OpenRouter, LM Studio:
|
||
|
||
```dotenv
|
||
LLM_API_URL=https://api.openai.com/v1
|
||
LLM_API_KEY=sk-...
|
||
LLM_MODEL=gpt-4o-mini
|
||
```
|
||
|
||
> **Hinweis:** Die Ergebnisqualität hängt stark vom gewählten Modell ab. Für zuverlässige Ergebnisse wird ein Vision-fähiges Modell empfohlen.
|
||
|
||
---
|
||
|
||
## Nextcloud-Import einrichten
|
||
|
||
Belege können automatisch aus einem Nextcloud-Ordner via WebDAV importiert werden. Das CLI-Skript `scripts/nextcloud-import.php` liest alle unterstützten Dateien (PDF, JPEG, PNG, TIFF, XML) aus dem konfigurierten Ordner, legt sie als Belege an und verschiebt sie anschließend in einen Erledigte-Ordner.
|
||
|
||
### Zugangsdaten konfigurieren
|
||
|
||
Die Zugangsdaten werden in der Steuerkram-UI gepflegt: **Einstellungen → Nextcloud-Belegimport**.
|
||
|
||
Hinweis: Ein Nextcloud-App-Passwort verwenden (Nextcloud → Einstellungen → Sicherheit → App-Passwörter).
|
||
|
||
### Manueller Aufruf
|
||
|
||
```bash
|
||
docker compose exec web php scripts/nextcloud-import.php
|
||
```
|
||
|
||
### Automatisch per Cron
|
||
|
||
Cron-Eintrag auf dem Host anlegen (`crontab -e`):
|
||
|
||
```cron
|
||
*/15 * * * * docker compose -f /opt/Steuerkram/docker-compose.yml exec -T web \
|
||
php scripts/nextcloud-import.php >> /var/log/steuerkram-import.log 2>&1
|
||
```
|
||
|
||
> Das `-T`-Flag ist bei Cron zwingend erforderlich – ohne TTY schlägt `docker compose exec` sonst still fehl.
|
||
|
||
Damit `docker compose exec` ohne `sudo` funktioniert, muss der User in der Docker-Gruppe sein:
|
||
|
||
```bash
|
||
sudo usermod -aG docker $USER
|
||
# Danach neu einloggen
|
||
```
|
||
|
||
---
|
||
|
||
## Benutzer-Passwort zurücksetzen
|
||
|
||
Das Skript `scripts/reset-password.php` setzt das Passwort eines vorhandenen Benutzers auf einen neuen Wert. Es nimmt den Benutzernamen und das neue Passwort als Parameter entgegen, erzeugt einen bcrypt-Hash und aktualisiert den Eintrag in der Datenbank. Wird der Benutzer nicht gefunden, gibt es eine Fehlermeldung und ändert nichts.
|
||
|
||
```bash
|
||
docker compose exec web php scripts/reset-password.php <username> <neues_passwort>
|
||
|
||
# Beispiel:
|
||
docker compose exec web php scripts/reset-password.php Meinuser geheim123
|
||
```
|