In Entwicklung. Die Plattform ist noch nicht erhältlich — du kannst dich aber schon vormerken lassen. Vormerken
Start/Dokumentation
Anleitung & Referenz

Dokumentation & Setup-Guide.

Von der ersten Datei auf dem Server bis zum vollständig konfigurierten Geschäft. Alles, was du wissen musst, in einem Dokument.

01Voraussetzungen

Die Plattform ist bewusst anspruchslos gehalten. Sie läuft auf jedem Hoster, der einen modernen PHP-Stack mit MySQL bereitstellt. Eine eigene Domain ist nicht erforderlich — eine Subdomain oder ein Unterordner reichen.

KomponenteMindest­anforderungEmpfohlen
PHP8.08.3
MySQL5.78.0+
MariaDB10.310.6+
WebserverApache / Nginx / LiteSpeedApache 2.4 mit mod_rewrite
Speicher50 MB200 MB für Bilder & Backups
HTTPSnicht erforderlichdringend empfohlen
Lima-City-tauglich. Der Hoster Lima-CityWerbung erfüllt alle Anforderungen out of the box (PHP 8.3 + MySQL). Die Plattform wird seit Jahren auf dieser Infrastruktur in Produktion betrieben — Hosting ab 4 €/Monat.

PHP-Erweiterungen

Folgende PHP-Erweiterungen müssen aktiv sein. Auf den meisten Hostern sind sie es bereits:

  • pdo_mysql — Datenbank­verbindung
  • mbstring — Mehrbyte-String-Verarbeitung (Umlaute)
  • json — JSON-Serialisierung
  • session — Login & Authentifizierung
  • gd oder imagick — Bild-Upload & Thumbnails

02Installation in 4 Schritten

Vom Download bis zum ersten Login. Der Wizard erledigt fast alles selbst — du tippst nur die Datenbank-Zugangsdaten ein.

Schritt 1 — Dateien herunterladen

Lade das aktuelle ZIP von der Release-Seite herunter und entpacke es lokal:

bash
# aktuelles Release herunterladen
curl -O https://example.com/geschaeftsbuch-v4.7.zip

# entpacken
unzip geschaeftsbuch-v4.7.zip

# Inhalt prüfen
ls geschaeftsbuch/
# → 32 PHP-Dateien, assets/, includes/, api/, setup.php

Schritt 2 — Auf den Hoster laden

Lade den entpackten Ordner per FTP, SFTP oder SCP in das öffentliche Verzeichnis deines Hosters (meist htdocs/, public_html/ oder www/):

bash
# mit SCP
scp -r geschaeftsbuch/ user@dein-hoster.de:/var/www/

# oder per FTP-Client (FileZilla, Cyberduck, WinSCP)
# Ziel: htdocs/ oder public_html/
i
Auf Lima-City nutzt du am einfachsten die Web-Oberfläche: ZIP hochladen, „Entpacken" klicken, fertig. Kein FTP nötig.

Schritt 3 — Datenbank anlegen

Erstelle eine leere MySQL-Datenbank über das Hoster-Panel oder phpMyAdmin. Du brauchst:

  • Den Datenbank-Namen (z. B. db_12345_main)
  • Den Benutzernamen (z. B. USER12345)
  • Das Passwort
  • Den Host (meist localhost, bei Lima-City: USERID.lima-db.de)
!
Du musst keine Tabellen importieren. Die Plattform legt alle Tabellen beim ersten Aufruf jedes Moduls automatisch an. Eine leere Datenbank reicht.

Schritt 4 — Setup-Wizard starten

Öffne im Browser:

url
https://deine-domain.de/setup.php

Der Wizard führt dich durch:

  1. Site-Title — wie soll dein Geschäft heißen? (z.B. „Mein Tabakhandel", „Westliche Pferderanche", „Familien-Farm"…)
  2. Datenbank-Verbindung — die vier Werte aus Schritt 3
  3. Verbindungstest — der Wizard prüft, ob er die Datenbank erreicht
  4. Erster Benutzer — Name & Passwort für den Admin-Account
Fertig. Nach dem Wizard wirst du auf den Login geleitet. Beim ersten Login als Admin kannst du sofort weitere Mitarbeiter anlegen, Module aktivieren und Berechtigungen vergeben.
!
Setup-Datei löschen. Aus Sicherheitsgründen solltest du setup.php nach erfolgreicher Installation vom Server entfernen. In config.php wird automatisch SETUP_COMPLETE = true gesetzt — der Wizard ist danach gesperrt, aber besser ist „weg".

03Erstkonfiguration

Nach dem Setup ist die Plattform funktionsfähig — aber leer. Diese Reihenfolge hat sich für die ersten 30 Minuten bewährt:

  1. Mitarbeiter anlegen unter Mitarbeiter → Neuer Eintrag. Auch wenn du allein arbeitest: einer reicht für den Anfang.
  2. Berechtigungen prüfen unter Berechtigungen. Die Standard-Rollen (Admin / Leitung / Mitarbeiter) sind sinnvoll vorbelegt — anpassen kannst du später.
  3. Geschäftspartner / Lieferanten erfassen, falls du gleich Bestellungen anlegen willst.
  4. Erste Mitteilung ans Team — Geschäftsregeln, Hinweise, To-Dos.
  5. Module deaktivieren, die du nicht brauchst (siehe unten).

04config.php manuell bearbeiten

Wenn du Einstellungen nachträglich ändern willst (Datenbank wechseln, Site-Title anpassen, Sicherheits­einstellungen schärfen), bearbeitest du die Datei includes/config.php direkt:

php
<?php
/**
 * Geschäftsbuch — Konfiguration
 */

// Datenbank-Einstellungen
define('DB_HOST', 'localhost');
define('DB_NAME', 'mein_geschaeftsbuch');
define('DB_USER', 'mein_user');
define('DB_PASS', 'sicheres_passwort');

// Session-Einstellungen — pro Deployment einzigartig
define('SESSION_NAME', 'mein_geschaeft_session');
define('SESSION_LIFETIME', 86400);  // 24 Stunden

// Branding
define('SITE_TITLE', 'Mein Geschäft');
define('SITE_SUBTITLE', 'Geschaeftsverwaltung');

// Auslage — maximale Plätze
define('AUSLAGE_MAX_PLAETZE', 100);

// Zeitzone
date_default_timezone_set('Europe/Berlin');

// Setup-Schutz — nicht ändern
define('SETUP_COMPLETE', true);

// Output Buffering — verhindert "headers already sent"
ob_start();

// Error Reporting (Produktion: 0, Entwicklung: E_ALL)
error_reporting(0);
ini_set('display_errors', 0);
!
Niemals committen. Wenn du die Plattform per Git verwaltest, gehört config.php in die .gitignore. Die Datei enthält Datenbank-Passwörter im Klartext.

05Berechtigungen vergeben

Das Permissions-System ist das Herz der Plattform. Drei Standard-Rollen sind vorgegeben, weitere kannst du beliebig anlegen.

RolleGeschäftPersonalSystem
AdminVollVollVoll inkl. Benutzer- & Modulverwaltung
LeitungVollVoll außer Benutzer­verwaltungLesen
MitarbeiterLesen + SchnellverkaufEigene Schichten + ProfilSuche, To-Do, Notizen
CustomFrei konfigurierbar — pro Modul, pro Aktion (Lesen / Schreiben / Löschen)

Berechtigungen kannst du auf zwei Ebenen vergeben:

  • Per Rolle — gilt für alle Mitarbeiter dieser Rolle. Sinnvoll für allgemeine Regelungen.
  • Per Mitarbeiter (Override) — schaltet einzelne Module für einen einzelnen Mitarbeiter zusätzlich frei oder ab. Sinnvoll für Sonderfälle.

06Branding & Look

Jedes Deployment kann individuell gestaltet werden — vom Site-Title über Akzentfarben bis hin zu eigenen Logos. Drei Anpassungs­ebenen:

Ebene 1 — Texte

Site-Title und Untertitel werden über config.php gesetzt (siehe oben). Erscheinen im Browser-Tab, im Header und im Login.

Ebene 2 — Farbschema

Die Farben sind als CSS-Variablen in assets/css/style.css hinterlegt. Editiere die :root-Sektion:

css
:root {
  --accent: #f0a83e;       /* Hauptakzent */
  --accent-deep: #c98220;  /* dunkler Akzent */
  --bg: #0a0908;           /* Hintergrund */
  --surface: #141210;      /* Panels */
  --text: #f5f1e8;         /* Haupttext */
}

Ebene 3 — Logo & Favicon

Logo und Favicon liegen unter assets/img/. Ersetze einfach die Dateien logo.svg und favicon.ico — die Plattform lädt automatisch das, was im Verzeichnis liegt.

07Module aktivieren / deaktivieren

Nicht jedes Geschäft braucht jedes Modul. Ein Tabakhandel braucht keine Stallverwaltung, eine Pferderanche keinen Schnellverkauf-POS. Module werden auf zwei Wegen abgeschaltet:

Variante A — Über die Berechtigungen

Wenn alle Rollen kein Recht für ein Modul haben, ist es de facto deaktiviert. Schnell, kein Code-Eingriff nötig.

Variante B — Datei entfernen

Wenn du das Modul gar nicht brauchst, kannst du die entsprechende PHP-Datei einfach löschen. Die Navigation prüft, welche Dateien existieren, und blendet fehlende automatisch aus.

bash
# Beispiel: Schnellverkauf wird nicht gebraucht
rm schnellverkauf.php

# Modul ist sofort weg — auch aus der Navigation
i
Die System-Module (Suche, Undo, Audit-Log, CSRF, Setup) lassen sich nicht abschalten — sie sind Teil des Kerns. Alle anderen Module sind optional.

08Modul-Rechte feinjustieren

Innerhalb eines aktiven Moduls kannst du jede Aktion einzeln freischalten oder sperren. Die Aktions­ebenen sind durchgängig:

  • view — der Mitarbeiter sieht das Modul in der Navigation und kann Listen einsehen
  • create — neue Einträge anlegen
  • edit — bestehende Einträge bearbeiten
  • delete — Einträge löschen (Undo bleibt verfügbar)
  • export — Daten als CSV / PDF exportieren

Beispiel: Eine Aushilfe darf das Kassenbuch sehen (view) und Buchungen anlegen (create), aber nichts ändern oder löschen. Genau das stellst du in der Rollen­konfiguration ein.

09Backup

Die Plattform speichert alle Geschäftsdaten in der MySQL-Datenbank. Backup heißt deshalb: Datenbank-Dump. Dazu Bilder und die config.php sichern, fertig.

Datenbank-Dump per CLI

bash
# vollständiger Dump
mysqldump -u DB_USER -p DB_NAME > backup_$(date +%Y-%m-%d).sql

# mit Komprimierung
mysqldump -u DB_USER -p DB_NAME | gzip > backup_$(date +%Y-%m-%d).sql.gz

Per phpMyAdmin

Datenbank auswählen → „Exportieren" → Format „SQL" → „OK". Die Datei landet im Download-Ordner.

Empfohlener Backup-Rhythmus

  • Täglich — automatisch via Cron-Job, mindestens 7 Tage Aufbewahrung
  • Wöchentlich — manuelle Sicherung lokal speichern
  • Vor jedem Update — Pflicht, ohne Diskussion
Bei Lima-City kannst du in der Web-Oberfläche unter „Datenbank → Backup" eine automatische tägliche Sicherung aktivieren. Sieben Tage Historie bleiben kostenfrei erhalten.

10Updates einspielen

Updates kommen als ZIP. Der Ablauf ist immer derselbe:

  1. Backup machen. Datenbank dumpen, config.php kopieren.
  2. ZIP entpacken in einen separaten Ordner.
  3. Alle Dateien außer config.php ersetzen auf dem Server.
  4. Erste Seite aufrufen. Module migrieren ihre Tabellen automatisch beim ersten Aufruf — neue Spalten werden ergänzt, neue Tabellen entstehen.
  5. Changelog lesen, falls Migrations­schritte oder Konfigurationsänderungen erforderlich sind.
!
config.php niemals überschreiben. Sie enthält deine Datenbank-Zugangs­daten. Vergleiche stattdessen mit der mitgelieferten config.example.php und ergänze nur neue Konstanten.

11Troubleshooting

Die häufigsten Probleme und ihre Lösungen:

SymptomUrsacheLösung
Weiße Seite PHP-Fehler, aber display_errors ist aus In config.php kurzzeitig error_reporting(E_ALL) aktivieren, Fehlermeldung lesen, beheben, danach wieder aus
„Datenbank-Verbindung fehlgeschlagen" Falsche Zugangsdaten oder DB-Server nicht erreichbar Zugangsdaten in config.php prüfen. Bei Lima-City: Host muss auf USERID.lima-db.de enden
Setup-Wizard öffnet sich nicht SETUP_COMPLETE steht bereits auf true config.php editieren: SETUP_COMPLETE auf false oder Konstante entfernen
Tabellen fehlen Modul wurde noch nie aufgerufen Modul einmal in der Navigation öffnen — die Tabelle wird beim ersten Zugriff angelegt
Bilder zu groß für Upload PHP-Limit zu niedrig In php.ini oder .htaccess: upload_max_filesize=10M und post_max_size=12M
Login schlägt sofort fehl Session konnte nicht gestartet werden Schreibrechte für session.save_path prüfen. Falls Output Buffering die Cookies frisst: ob_start() in config.php sicherstellen
Umlaute werden falsch dargestellt Datenbank-Charset nicht UTF-8 Datenbank auf utf8mb4_unicode_ci umstellen, in db.php ist die Verbindung schon UTF-8
„Headers already sent" Whitespace vor <?php oder fehlendes ob_start() Sicherstellen, dass config.php mit <?php beginnt — kein BOM, keine Leerzeichen davor
i
Hilfe brauchen? Wenn du nicht weiterkommst, ist die Community dein zweiter Anlaufpunkt. Stelle die Frage mit Fehlermeldung, PHP-Version und Hoster — dann kann meist schnell geholfen werden.

Alle Antworten auf einen Blick.

Noch eine Frage offen? Dann hilft dir die Community direkt weiter — Discord oder per E-Mail.