added README.md
This commit is contained in:
parent
87415548e8
commit
54af8a337e
1 changed files with 119 additions and 0 deletions
119
README.md
Normal file
119
README.md
Normal file
|
|
@ -0,0 +1,119 @@
|
||||||
|
# Steuerkram
|
||||||
|
|
||||||
|
Self-hosted Buchhaltungs- und Steueranwendung für deutsche Freiberufler und Kleinunternehmer. Entwickelt als datensouveräne Alternative zu SaaS-Diensten wie papierkram.de.
|
||||||
|
|
||||||
|
## Funktionsumfang
|
||||||
|
|
||||||
|
- **Kontenrahmen SKR03** – vollständiger Kontenrahmen mit ~80 vorbesetzten Konten (CRUD)
|
||||||
|
- **Belegverwaltung** – Upload von PDF, PNG, TIFF und ZUGFeRD-XML; SHA-256 Integritätsprüfung
|
||||||
|
- **Buchungen** – doppelte Buchführung; GoBD-konforme Trigger verhindern nachträgliche Manipulation
|
||||||
|
- **Kundenverwaltung** – CRUD
|
||||||
|
- **Ausgangsrechnungen** – DIN 5008 Layout, PDF-Export via mPDF
|
||||||
|
- **UStVA** – Kennzahlen-Berechnung aus Buchungen, ELSTER XML-Export
|
||||||
|
- **EÜR** – Jahresauswertung mit PDF-Export
|
||||||
|
- **Einstellungen** – Firmendaten, Logo, ELSTER-Steuernummer
|
||||||
|
|
||||||
|
## Tech Stack
|
||||||
|
|
||||||
|
| Schicht | Technologie |
|
||||||
|
|---|---|
|
||||||
|
| Webserver | Apache 2.4 |
|
||||||
|
| Backend | PHP 8.3 (MVC, kein Framework) |
|
||||||
|
| Datenbank | MariaDB 11 |
|
||||||
|
| PDF-Generierung | mPDF 8.x |
|
||||||
|
| Frontend | HTML, CSS, JavaScript (keine Bibliotheken) |
|
||||||
|
| Deployment | Docker / Docker Compose |
|
||||||
|
|
||||||
|
## Voraussetzungen
|
||||||
|
|
||||||
|
- [Docker](https://docs.docker.com/get-docker/) ≥ 24
|
||||||
|
- [Docker Compose](https://docs.docker.com/compose/install/) ≥ 2.20 (in neueren Docker-Versionen enthalten)
|
||||||
|
- Git
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### 1. Repository klonen
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone <repository-url> steuerkram
|
||||||
|
cd steuerkram
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Zugangsdaten anpassen
|
||||||
|
|
||||||
|
Öffne `docker-compose.yml` und ändere die folgenden Umgebungsvariablen im `web`-Service:
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
|
Außerdem die Datenbankpasswörter in beiden Services (`web` und `db`) aufeinander abstimmen, falls gewünscht.
|
||||||
|
|
||||||
|
### 3. Container starten
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
Beim ersten Start werden automatisch:
|
||||||
|
- die Datenbank initialisiert (`migrations/001_initial_schema.sql`)
|
||||||
|
- der SKR03-Kontenrahmen eingespielt (`migrations/002_seed_skr03.sql`)
|
||||||
|
- das Docker-Image mit PHP-Abhängigkeiten (mPDF) gebaut
|
||||||
|
|
||||||
|
### 4. Anwendung aufrufen
|
||||||
|
|
||||||
|
```
|
||||||
|
http://localhost:8080
|
||||||
|
```
|
||||||
|
|
||||||
|
Login mit den in Schritt 2 gesetzten Zugangsdaten.
|
||||||
|
|
||||||
|
### 5. Firmendaten hinterlegen
|
||||||
|
|
||||||
|
Nach dem ersten Login unter **Einstellungen** Firmendaten, Logo und ELSTER-Steuernummer eintragen. Diese Angaben erscheinen auf Ausgangsrechnungen und im EÜR-Export.
|
||||||
|
|
||||||
|
## Port ändern
|
||||||
|
|
||||||
|
Der Standard-Port ist `8080`. Um ihn zu ändern, passe in `docker-compose.yml` die `ports`-Zeile an:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
ports:
|
||||||
|
- "9090:80" # Beispiel: Port 9090 auf dem Host
|
||||||
|
```
|
||||||
|
|
||||||
|
## Datenpersistenz
|
||||||
|
|
||||||
|
| Pfad | Inhalt |
|
||||||
|
|---|---|
|
||||||
|
| `./data/mariadb/` | MariaDB-Datenbankdateien |
|
||||||
|
| Docker Volume `uploads` | Hochgeladene Belege |
|
||||||
|
|
||||||
|
Beide Pfade liegen außerhalb des Containers und bleiben bei `docker compose down` erhalten.
|
||||||
|
|
||||||
|
## Backup
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash scripts/backup.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Das Skript erstellt ein Dump der Datenbank sowie ein Archiv der Uploads im Verzeichnis `backups/`.
|
||||||
|
|
||||||
|
## Update
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git pull
|
||||||
|
docker compose up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
|
## GoBD-Hinweise
|
||||||
|
|
||||||
|
- Gebuchte Sätze können nicht geändert oder gelöscht werden (MariaDB `BEFORE UPDATE/DELETE` Trigger).
|
||||||
|
- Korrekturen erfolgen ausschließlich über Stornobuchungen.
|
||||||
|
- Jeder hochgeladene Beleg erhält einen SHA-256 Hash zur Integritätsprüfung.
|
||||||
|
|
||||||
|
## Lizenz
|
||||||
|
|
||||||
|
Privates Projekt – keine öffentliche Lizenz.
|
||||||
Loading…
Add table
Reference in a new issue