Internes Portal — App-Übersicht

Alle Anwendungen laufen auf eigener Infrastruktur. Personenbezogene und finanzielle Daten verlassen den eigenen Server nicht — kein SaaS, kein Drittanbieter.

14Apps + Dienste
1Login (SSO)
100%Selbst betrieben
E2EVault-Verschlüsselung
01 Budget — Haushaltsbuch ✓ Produktiv
Problem
Einnahmen, Kreditraten und Daueraufträge verlieren sich ohne Struktur — der Überblick fehlt.
Lösung
Buchungen nach Konto und Kategorie, Echtzeitsalden, Kredit- und Dauerauftragsverwaltung in einer Oberfläche.
Effekt
Jederzeit vollständiges Bild der Finanzsituation — kein Suchen in Kontoauszügen.
Funktionen
Mehrere Konten (Bank, PayPal, Bar)
Sammelbon mit Einzelpositionen
Daueraufträge mit Fälligkeitstag
Kreditverwaltung + Tilgungsplan
Pfandkasse separat erfassen
Mehrwährungsunterstützung
Technisches Prinzip — Manipulationssicherer Saldo
// Kein gespeicherter Saldo-Wert — alles zur Laufzeit:
kontostand = anfangssaldo
             + SUMME(alle Eingänge auf diesem Konto)
             - SUMME(alle Ausgänge von diesem Konto)

// Umbuchung = atomares Paar: entweder beide Seiten oder keine
BEGIN TRANSACTION
  buche_ausgang(quell_konto, betrag)
  buche_eingang(ziel_konto,  betrag)
COMMIT
Laufzeit-Saldierung Atomare Umbuchungen ACID-Transaktionen
Selbst betrieben Keine Drittanbieter
02 Belege — Belegverwaltung ✓ Produktiv
Problem
Eingangsrechnungen als Papierstapel oder unstrukturierte Dateien — steuerliche Auswertung kaum möglich.
Lösung
Digitale Belegerfassung mit SKR03-Kontenplan, Scan-Anhang und lückenloser Nummerierung.
Effekt
Steuerliche Auswertung per Klick — Belege nicht mehr suchen, sondern filtern.
Funktionen
Datei-Anhang (PDF, Bild, max. 10 MB)
SKR03-Kontenplan vorbesetzt
Split-Buchungen (mehrere Kostenstellen)
Zahlungsstatus + Zahlungsmittel
Projektzuordnung zur Weiterberechnung
Zeitraumauswertung nach Konto
Technisches Prinzip — Gesicherter Datei-Download
// Datei liegt AUSSERHALB des öffentlichen Web-Verzeichnisses
ANFRAGE: /belege/download?id=42
  → Sitzung prüfen          // Angemeldet?
  → Berechtigung prüfen     // Gehört dieser Beleg dem Nutzer?
  → Datei aus gesichertem Pfad streamen
  // Direkte URL zur Datei existiert nicht — kein Bypass möglich

GoBD-Nummerierung: B-JJJJ-00001, 00002, 00003 …
  // Lücken sind detektierbar — Revisionssicherheit
Zugriffsgeschützte Dateispeicherung GoBD-Nummerierung SKR03
GoBD-relevant Selbst betrieben Keine Cloud
03 Kalender & Erinnerungen ✓ Produktiv
Problem
Termine über verschiedene Apps verstreut — Nextcloud-Sync manuell und fehleranfällig.
Lösung
Lokale + Nextcloud-Kalender in einer Ansicht, Aufgaben mit Priorität direkt im Kalender sichtbar.
Effekt
Ein Blick zeigt Termine und To-Dos — automatisch synchronisiert, kein Google, kein Apple.
Funktionen
Mehrere Kalender mit Farbkodierung
Wochen-/Monats-/Listenansicht
Aufgaben (Normal / Hoch / Dringend)
Fälligkeiten als Kalendermarkierung
Nextcloud CalDAV-Sync (bidirektional)
Technisches Prinzip — Offenes Protokoll, kein Vendor Lock-in
// Offener Standard: CalDAV (RFC 4791) + iCalendar (RFC 5545)
Lokaler Termin
  → iCalendar-Format (VEVENT)
  → HTTPS PUT → Nextcloud CalDAV-Endpunkt
  → Nextcloud synct weiter auf Smartphone, Desktop …

Eingehend vom Server:
  → HTTPS GET → iCalendar parsen → lokale DB aktualisieren

// Kompatibel mit: macOS, iOS, Android, Thunderbird, Outlook
CalDAV RFC 4791 iCalendar RFC 5545 Nextcloud Kein Vendor Lock-in
Eigener Nextcloud-Server DSGVO-konform betreibbar
04 Kontakte — mit Nextcloud-Sync ✓ Produktiv
Problem
Kunden- und Lieferantendaten verteilt auf Programme und Notizbücher — Rechnungsformulare manuell befüllen kostet Zeit.
Lösung
Zentrales Adressbuch mit automatischer Kundennummer, Volltextsuche, Tag-Filter und CardDAV-Sync.
Effekt
Rechnungen und Projekte befüllen Adressfelder automatisch — Kontakte überall synchron.
Funktionen
Vollständige Adress- und Firmendaten
Tag-System (Kunde, Lieferant, Privat …)
Automatische Kundennummervergabe
Volltextsuche + Tag-Filter
Nextcloud CardDAV-Sync (bidirektional)
Technisches Prinzip — Offenes Adressbuch-Protokoll
// Offener Standard: CardDAV (RFC 6352) + vCard 3.0 (RFC 6350)
Lokaler Kontakt (Name, Adresse, Tel, E-Mail …)
  → vCard serialisieren: FN, ADR, TEL, EMAIL, ORG …
  → HTTPS PUT → Nextcloud CardDAV-Endpunkt

Eingehend:
  → vCard parsen → lokale DB aktualisieren

// Kundennummer: atomar vergeben → keine Duplikate möglich
Neue Kundennummer = MAX(bestehende) + 1  ← in einer Transaktion
CardDAV RFC 6352 vCard RFC 6350 Atomare Nummernvergabe
DSGVO — Löschung jederzeit möglich Kein Drittanbieter
05 Fahrtenbuch ✓ Produktiv
Problem
Dienstliche Fahrten für das Finanzamt lückenlos dokumentieren — Excel-Listen sind fehleranfällig und Änderungen schwer nachzuverfolgen.
Lösung
Digitales Fahrtenbuch mit automatischer km-Berechnung und serverseitigem 7-Tage-Sperrmechanismus.
Effekt
Manipulationsresistenter, druckfertiger Nachweis — TÜV und Versicherungsfristen immer im Blick.
Funktionen
Mehrere Fahrzeuge verwaltbar
Fahrtyp: privat / geschäftlich / Arbeitsweg
Einträge nach 7 Tagen gesperrt
Wartungsbuch + Tankbuch
TÜV-Warnung 60 Tage vor Ablauf
Druckfertiger Export
Technisches Prinzip — Serverseitige Sperrlogik
// Sperre ist serverseitig — UI-Manipulation ohne Wirkung
BEARBEITUNGS-ANFRAGE für Eintrag vom [Datum]:

  tage_vergangen = HEUTE − EINTRAGSDATUM

  WENN tage_vergangen > 7:
    → Anfrage ablehnen (403)   // unabhängig vom Nutzer, unabhängig vom Browser
  SONST:
    → Bearbeitung erlaubt

// TÜV-Warnung: täglich geprüft, 60 Tage Vorlauf
WENN (tüv_datum − HEUTE) < 60 Tage → Dashboard-Warnung
Serverseitige Unveränderlichkeit Steuerliche Anforderungen Proaktive Fristen-Überwachung
Unveränderlichkeit (steuerrechtlich) Selbst betrieben
06 Pausenliste — Arbeitszeiterfassung ✓ Produktiv
Problem
Dienstpläne und Arbeitszeitnachweise manuell erstellen — Soll/Ist-Vergleich, Kranktage und Urlaub verlieren sich.
Lösung
Digitaler Wochenplan, Stempeluhr per Klick, Urlaubskontingent und automatische Überstundenberechnung.
Effekt
CSV-Export mit vollständigem Arbeitszeitnachweis — Saldo immer tagesaktuell.
Funktionen
KW-basierter Wochendienstplan
Kommen/Gehen per Klick stempeln
Status Krank / Urlaub / Feiertag
Urlaubskontingent + Jahresverbrauch
Über-/Fehlstunden automatisch berechnet
CSV-Export mit Dezimalstunden
Technisches Prinzip — Arbeitnehmerfreundliche Rundung + Saldo
// Rundung zugunsten des Mitarbeiters (15-Minuten-Schritte)
Zu spät gekommen → Abweichung wird AUFGERUNDET   // MA bekommt weniger Minus
Zu früh gegangen → Abweichung wird ABGERUNDET    // MA bekommt weniger Minus

// Einheitliche Tagessoll-Berechnung für Krank/Urlaub/Feiertag:
tagessoll = wochenstunden ÷ 6   // Mo–Sa, unabhängig vom Anlass

// Monatssaldo:
saldo = (gearbeitet + urlaub_std + krank_std + feiertag_std)
        − (geplante_arbeitstage × tagessoll)
// positiv = Überstunden  /  negativ = Fehlstunden
Arbeitnehmerfreundliche Rundungslogik Automatische Saldierung DSGVO-Arbeitszeitdaten
DSGVO — Mitarbeiterdaten intern Kein Drittanbieter
07 Schwarzes Brett — interne Pinnwand ✓ Produktiv
Problem
Abteilungsübergreifende Anfragen per E-Mail und mündlich gehen unter — Bearbeitungsstand nicht nachvollziehbar.
Lösung
Internes Ticket-System zwischen Abteilungen — mit Priorität, Status-Workflow und automatischer Eskalation.
Effekt
Keine Anfrage geht mehr unter — Bearbeitungsstand transparent, Eskalation automatisch.
Funktionen
Ticket an Abteilung senden
Prioritäten: Normal / Dringend / Kritisch
Status: Offen → In Bearbeitung → Geschlossen
Interne Notizen (nur Ziel-Abteilung sieht sie)
Lese-Bestätigungen
Automatische Eskalation nach 72 h
Technisches Prinzip — Automatische Eskalation
// Zeitgesteuerte Eskalation — läuft serverseitig
FÜR JEDES offene Ticket:

  stunden_ohne_antwort = JETZT − letzter_aktivitäts_zeitstempel

  WENN stunden_ohne_antwort > 72:
    → Status   → "Eskaliert"
    → Priorität → mindestens "Dringend"
    → Sichtbarkeit → für Abteilungsleitung markiert

// Interne Notizen sind ein eigener Datensatz-Typ —
// sie können nicht versehentlich an externe Parteien weitergeleitet werden.
Automatische Eskalationslogik Rollenbasierte Sichtbarkeit Typsichere interne Notizen
Interne Kommunikation bleibt intern Keine externen Dienste
08 Projekte — mit Vault-Verschlüsselung ✓ Produktiv
Problem
Zeiterfassung, Belege, Protokolle und Zugangsdaten für Kundenprojekte verteilt auf Tabellen, E-Mails und Passwort-Zettel.
Lösung
Projekt-Hub mit Zeiterfassung, P&L-Übersicht und verschlüsseltem Zugangsdaten-Tresor — Rechnung per Knopfdruck.
Effekt
Alles zum Projekt an einem Ort — Zugangsdaten sicher, Abrechnung ohne manuelle Übertragung.
Funktionen
Zeiterfassung + Pauschalen
Belege direkt zuordnen (Weiterberechnung)
Besprechungsprotokolle
P&L-Übersicht (Einnahmen vs. Kosten)
Rechnung aus Positionen generieren
Vault: verschlüsselte Zugangsdaten
Technisches Prinzip — Ende-zu-Ende-Verschlüsselung (Vault)
// Verschlüsselung: XSalsa20-Poly1305 (libsodium) — same as Signal/WhatsApp
VERSCHLÜSSELN:
  schluessel  = Argon2id(master_passwort, zufaelliges_salt)
                ↑ Speicher+CPU-intensiv → Brute-Force wirtschaftlich unmöglich
  nonce       = 24 zufällige Bytes (einmalig pro Eintrag)
  geheimtext  = XSalsa20-Poly1305(klartext, nonce, schluessel)
  → gespeichert: nonce ‖ geheimtext   ← nur das in der DB

NACH NUTZUNG:
  schluessel  = sodium_memzero()   ← sofort aus RAM löschen

// Ohne Master-Passwort: Vault-Inhalt bei DB-Zugriff unlesbar.
XSalsa20-Poly1305 Argon2id Key Derivation libsodium Zero-Knowledge Vault
Ende-zu-Ende-Verschlüsselung Eigene Infrastruktur Keine Drittanbieter
09 Rechnungen ✓ Produktiv
Problem
Rechnungen manuell in Word erstellen — Nummernvergabe, Zahlungsüberwachung und Mahnwesen fehleranfällig.
Lösung
Rechnungen aus Positionen mit automatischer Nummernvergabe, Zahlungsüberwachung und direkter Belegverbuchung.
Effekt
Rechnungsstand jederzeit im Blick — Zahlungseingang verbucht mit einem Klick, kein doppeltes Erfassen.
Funktionen
Dynamische Positionen (Menge × Preis)
Kontaktsuche befüllt Adressfelder
Status: Entwurf → Offen → Bezahlt
Überfälligkeits-Markierung
Mahnung drucken
Projektintegration
Technisches Prinzip — GoBD-Unveränderlichkeit + Atomare Nummernvergabe
// Finalisierung = Snapshot + Nummernvergabe in einer Transaktion
RECHNUNG FINALISIEREN:
  → Status: "Entwurf" → "Offen"
  → Kundendaten einfrieren: Name, Adresse, USt-ID kopieren
    // Spätere Adressänderungen berühren die Rechnung nicht mehr
  → Rechnungsnummer vergeben: R-JJJJ-NNN  ← atomar, keine Duplikate
  → Rechnung ist ab jetzt schreibgeschützt

// Zahlungseingang → automatisch Beleg in Belegverwaltung
ZAHLUNG BUCHEN: 1 Klick → Beleg R-2025-042 erscheint in Belegverwaltung
GoBD-Unveränderlichkeit Kunden-Snapshot §19 UStG konfigurierbar Atomare Nummernvergabe
GoBD-relevant Kein Cloud-Rechnungsdienst Kundendaten intern
10 Ticket-System — Kunden-Support ✓ Produktiv
Problem
Kunden ohne Portal-Zugang schreiben Anfragen per E-Mail — Bearbeitungsstand weder für Kunden noch intern nachvollziehbar.
Lösung
Öffentliches Einreichungsformular (DE/EN) ohne Login-Pflicht, internes Admin-Backend mit Filterfunktionen.
Effekt
Strukturierter Eingang, priorisierte Bearbeitung — kein Zendesk, kein Freshdesk, volle Datenkontrolle.
Funktionen
Öffentliches Formular DE/EN
Ticketstatus per E-Mail abfragen
Verschiedene Anfragetypen
Admin-Backend mit Portal-Auth
Filter nach Status, Kategorie, Suche
Technisches Prinzip — Eingabe-Bereinigungskette
// Jeder eingehende Wert durchläuft diese Kette — keine Ausnahme:
ÖFFENTLICHES FORMULAR (kein Login nötig):

  eingabe = { name, email, betreff, beschreibung }

  → HTML-Escape         // verhindert XSS-AngriffeLänge begrenzen      // verhindert Overflow-AngriffeCSRF-Token prüfen    // verhindert Cross-Site-Einreichungen
  → als neues Ticket speichern

ADMIN-BACKEND:
  → Portal-Authentifizierung erforderlich
  → nur Nutzer mit Ticket-Berechtigung
XSS-Schutz CSRF-Protection Rollenbasierter Zugriff
Kundendaten intern Kein Zendesk/Freshdesk
11 Website Admin — eigenes CMS ✓ Produktiv
Problem
Websiteinhalte pflegen ohne schwerfälliges CMS — zweisprachige Inhalte, Bilder und Navigation sollen einfach verwaltbar sein.
Lösung
Schlankes CMS mit zweisprachigen Beiträgen, flexiblem Spalten-Layout (1–6 Spalten) und visuellem Menü-Editor.
Effekt
Inhalte sofort live — kein WordPress, kein Joomla für die eigene Seite, keine Plugin-Updates.
Funktionen
Beiträge: Entwurf / Veröffentlicht / Archiviert
Zweisprachig: DE + EN je Beitrag
Spalten-Layout: 1–6 Spalten pro Zeile
Spaltentypen: Text, Bild, HTML-Block
Medienverwaltung mit Alt-Texten
Menü-Editor für Navigation + Footer
Technisches Prinzip — Datenbankgesteuertes Frontend-Routing
// Keine statischen HTML-Dateien — jede Seite entsteht zur Laufzeit
AUFRUF: /?lang=de&slug=ueber-uns

  → Sprache aus URL (de / en, Standard: de)
  → Beitrag anhand slug aus DB laden
  → Abschnitte + Spalten laden (Reihenfolge aus DB)
  → Pro Spalte: Typ prüfen
      Text  → HTML-Inhalt der gewählten Sprache ausgeben
      Bild  → Alt-Text der gewählten Sprache ausgeben
      HTML  → rohen Block ausgeben (nur admin-erstellte Inhalte)
  → Menü aus DB laden → Navigation rendern

// Änderung im Admin → sofort live, kein Deployment, kein Cache-Flush nötig
Datenbankgesteuertes Routing Mehrsprachig (DE/EN) Kein WordPress / Joomla
Selbst betrieben Redaktionszugang nur mit Portal-Login
12 Notizen — mit Nextcloud-Sync ✓ Produktiv
Problem
Notizen auf verschiedenen Geräten nicht synchron — iPhone, Desktop und Browser zeigen unterschiedliche Stände.
Lösung
Notizen-App mit Nextcloud-Backend, Kategorien, Markdown-Unterstützung und IndexedDB-Offline-Cache.
Effekt
Eine App, alle Geräte synchron — iPhone-Sync über Nextcloud Notes-App, kein iCloud, kein Google Keep.
Funktionen
Erstellen, Bearbeiten, Löschen im Browser
Kategorien mit Filteransicht
Favoriten-Markierung
Markdown-Vorschau (Überschriften, Listen, Code)
iPhone-Sync über Nextcloud Notes-App (nativ)
Offline-Schreiben mit automatischer Synchronisation
Technisches Prinzip — Offline-Queue + Nextcloud REST-API
// Alle Schreiboperationen landen in einer IndexedDB-Queue
OFFLINE:
  create/update/delete → IDB pending-Store (localId, action, data)
  Notiz sofort sichtbar (temporäre ID, negativ)

ONLINE (reconnect):
  FÜR JEDE pending-Operation (in Reihenfolge):
    → POST /nextcloud/notes/api/v1/notes  (create)
    → PUT  /nextcloud/notes/api/v1/notes/{id} (update)
    → DELETE /nextcloud/notes/api/v1/notes/{id} (delete)
    → temporäre ID → echte NC-ID ersetzen

// iPhone-Sync läuft parallel über dieselbe NC-API — kein Extra-Aufwand
Nextcloud Notes REST-API IndexedDB Offline-Queue Markdown (marked.js) Kein iCloud / Google Keep
Eigener Nextcloud-Server Notizen verlassen den eigenen Server nicht
13 PLU-Liste — Artikelreferenz ✓ Produktiv
Problem
PLU-Codes für Artikel auf Zetteln und in Tabellen — nicht durchsuchbar, nicht immer auf dem aktuellen Stand.
Lösung
Digitale PLU-Referenzliste im Portal: schnelle Volltextsuche, Übersicht nach Kategorien, Nextcloud-Sync.
Effekt
Artikel sofort per Code oder Name gefunden — immer aktuell, geräteübergreifend verfügbar.
Funktionen
Volltextsuche nach Code oder Bezeichnung
Filterung nach Kategorie
Einträge anlegen, bearbeiten, löschen
Nextcloud-Synchronisation
Zugriff über Portal-Login (rollenbasiert)
Technisches Prinzip — Servergestützte Suche mit NC-Datenbasis
// Suche läuft serverseitig — kein vollständiger Download der Liste nötig
ANFRAGE: /plu/api.php?q=apfel

  → Sitzung prüfen        // Portal-Auth erforderlich
  → SQL LIKE-Suche:
      WHERE code    LIKE '%apfel%'
         OR bezeichnung LIKE '%apfel%'
  → JSON-Antwort an Browser

// Datenbestand via Nextcloud synchronisiert —
// Änderungen auf einem Gerät sofort auf allen sichtbar.
Servergestützte Volltextsuche Nextcloud-Sync Rollenbasierter Zugriff
Selbst betrieben Keine externen Dienste
14 Matrix — Eigener Kommunikations-Server ✓ Produktiv
Problem
Interne Kommunikation läuft über WhatsApp, Signal oder Slack — Nachrichten auf fremden Servern, keine Kontrolle über Metadaten und Verläufe.
Lösung
Eigener Matrix-Homeserver (Synapse) auf dem VPS — Ende-zu-Ende-verschlüsselt, offen standardisiert, erreichbar über Element (Web, iOS, Android).
Effekt
Kein WhatsApp, kein Slack, kein Teams — volle Kontrolle über Nachrichten, Teilnehmer und Verläufe auf eigener Infrastruktur.
Funktionen
Einzel- und Gruppenchats (E2E-verschlüsselt)
Datei- und Bildversand über eigenen Media-Store
Element-App: Web, iOS, Android
Offener Standard (Matrix-Protokoll / RFC)
Föderierbar — Kommunikation mit anderen Matrix-Servern möglich
Keine Metadaten bei Drittanbietern
Technisches Prinzip — Dezentrales Messaging-Protokoll
// Alle Nachrichten laufen ausschließlich über den eigenen Server
CLIENT (Element-App / Browser):
  → HTTPS zur Matrix-API auf eigenem VPS
  → Ende-zu-Ende-Verschlüsselung per Megolm (Olm/Double-Ratchet)
  → Schlüssel werden nur lokal auf dem Gerät gespeichert

SERVER (Synapse auf VPS):
  → speichert ausschließlich verschlüsselte Nachrichten
  → kein Klartext serverseitig lesbar
  → föderiert nur auf Anfrage mit anderen Matrix-Servern

// Föderation deaktivierbar — rein interner Betrieb möglich
Matrix-Protokoll (offener Standard) Synapse Homeserver Megolm E2E-Verschlüsselung Kein WhatsApp / Slack / Teams
Eigener VPS Nachrichten verlassen den eigenen Server nicht
Gemeinsame Plattform-Merkmale
Einheitliche AnmeldungEin Login für alle 13 Apps (Single Sign-On) — kein separates Passwort je App
Rollenbasierter ZugriffJede App wird pro Nutzer oder Rolle freigegeben — der Admin verwaltet Rechte
CSRF-SchutzJede schreibende Aktion ist durch kryptografisch signierte Einmal-Tokens gesichert
VerschlüsselungVault: XSalsa20-Poly1305 + Argon2id (libsodium) — stand der Technik
Offene StandardsCalDAV, CardDAV, iCalendar, vCard — kein Vendor Lock-in bei Sync-Protokollen
Selbst betriebenAlle Daten in eigenen Datenbanken auf eigener Infrastruktur — kein SaaS
DSGVO-BetriebPersonenbezogene Daten (Kontakte, Mitarbeiter, Kunden) ausschließlich intern
GoBD-RelevanzLückenlose Nummerierung (Belege), unveränderliche Snapshots (Rechnungen), Sperrmechanismus (Fahrtenbuch)