1. PostgreSQL
Die Datenbank ist die Quelle der Wahrheit. Sie läuft lokal, auf einem dedizierten Server oder bei einem gemanagten Anbieter. Pro Mandant ein eigenes Schema.
ewws läuft auf Ihrer eigenen Infrastruktur, ohne Cloud-Zwang. Diese Anleitung führt in drei Schritten von der Datenbank über den Server bis zu den nativen Clients und nennt die konkreten Befehle.
ewws besteht aus einer PostgreSQL-Datenbank, dem ewws-Server und den nativen Clients. Die Reihenfolge der Installation ist verbindlich: zuerst die Datenbank, dann der Server, dann die Clients. Alle drei können auf einem einzigen Gerät liegen oder auf getrennten Systemen.
Die Datenbank ist die Quelle der Wahrheit. Sie läuft lokal, auf einem dedizierten Server oder bei einem gemanagten Anbieter. Pro Mandant ein eigenes Schema.
Der Server verbindet sich mit PostgreSQL und stellt die Programmierschnittstelle bereit, über die sich alle Clients anmelden. Er läuft als Systemdienst und bringt eine Web-Oberfläche für Einrichtung und Betrieb mit.
Die nativen Apps verbinden sich mit dem Server über dessen Adresse. Sie brauchen keine Datenbank-Treiber und keine eigene Laufzeitumgebung.
ewws setzt PostgreSQL 16 oder neuer voraus. Die Datenbank ist intern abzusichern und vor dem produktiven Start mit einem nachgewiesenen Restore-Drill zu sichern.
Lokal auf demselben Gerät, auf einem dedizierten Server im internen Netz, oder bei einem gemanagten Anbieter mit TLS (sslmode=require). Reine Test- oder Gratis-Angebote ohne Betriebszusage sind nicht produktionstauglich.
Jeder Mandant ist ein eigenes PostgreSQL-Schema in derselben ewws-Datenbank. Eine Einzelfirma nutzt public, ein Treuhandbüro pro Kunde ein eigenes Schema (zum Beispiel kunde_mueller). Der Mandantencode beim Login ist genau dieser Schema-Name.
Als PostgreSQL-Superuser eine Datenbank ewws und eine Login-Rolle ewws_app anlegen. Für Treuhand- oder Mehr-Mandanten-Betrieb zusätzlich eine ewws_admin-Rolle für Migrationen und neue Schemas.
CREATE ROLE ewws_app LOGIN PASSWORD '<starkes-passwort>'; CREATE DATABASE ewws OWNER ewws_app ENCODING 'UTF8' TEMPLATE template0;
In pg_hba.conf nur die konkreten internen Netze mit scram-sha-256 zulassen, niemals global. Passwörter pro Rolle stark und getrennt. Tägliches Backup und ein getesteter Restore sind Pflicht vor dem produktiven Start.
host ewws ewws_app 10.20.30.0/24 scram-sha-256
Der Server wird als nativer Systemdienst installiert und verbindet sich mit der Datenbank. Er bringt seine eigene Laufzeitumgebung mit, eine separate Java-Installation ist nicht nötig.
macOS: signiertes Paket (.pkg), das einen Systemdienst und einen eigenen Dienst-Account einrichtet. Linux: .deb mit systemd-Dienst. Windows: .msi-Dienst. Der Server hört auf Port 8080.
sudo installer -pkg ewws-server-<version>.pkg -target /
Beim ersten Start öffnet der Server eine geführte Einrichtungsseite im Browser (/setup). Datenbank-Verbindung, erster Mandant und Administrator werden eingegeben, geprüft und gespeichert, ganz ohne Konfigurationsdateien von Hand. Für automatisierte Rollouts lassen sich dieselben Werte vorab als Umgebungsvariablen setzen (EWWS_DB_URL, EWWS_DB_USER, EWWS_DB_PASSWORD; für gemanagte Datenbanken sslmode=require in der URL).
EWWS_DB_URL=jdbc:postgresql://db-01.internal:5432/ewws EWWS_DB_USER=ewws_app EWWS_DB_PASSWORD=<secret> EWWS_DB_SCHEMA=public
Nach der Einrichtung im Browser legt der Server das Datenbankschema automatisch an und ist sofort betriebsbereit. Danach läuft er als Dienst und startet nach einem Neustart von selbst wieder.
Ein Aufruf des Health-Endpunkts bestätigt, dass Server und Datenbank zusammenspielen. Antwortet er mit Status 200, ist der Server bereit für die Clients.
curl -sSf http://localhost:8080/api/v1/health
Die native App wird auf jedem Arbeitsplatz installiert und beim ersten Start mit Server-Adresse, Mandant und Zugangsdaten verbunden. Die Server-Adresse wird nur bei Bedarf eingeblendet, im Normalfall ist sie vorbelegt.
Notarisierte App für macOS. Aus dem Download öffnen, in den Programme-Ordner legen, starten. Verfügbar und produktiv im Einsatz.
Native App für iPhone und iPad. Sie verbindet sich über HTTPS mit dem Server, für den Zugriff von unterwegs in der Regel über den HTTPS-Edge. Verfügbar auf Anfrage.
Native Windows-App, ausgeliefert als MSIX-Paket. Verfügbar auf Anfrage.
Linux ist eine Server-Plattform, kein Desktop-Client: Der ewws-Server läuft nativ auf Linux (.deb/Docker), die Arbeitsplätze nutzen die Mac-, Windows- oder iOS-App.
Sobald PostgreSQL, Server und Client stehen, melden Sie sich mit dem Admin-Benutzer an und richten Mandant, Benutzer und Rollen ein.
Im Login die Adresse des Servers eintragen, bei lokalem Betrieb zum Beispiel http://localhost:8080/api/v1. Der Verbindungstest bestätigt die Erreichbarkeit.
Den Mandantencode (das PostgreSQL-Schema), den Admin-Benutzer und das Passwort eingeben. Das erste Passwort wird beim Erst-Login gesetzt.
Im Produkt Benutzer und Rollen anlegen, MFA und Wiederherstellungscodes aktivieren. Erst danach den produktiven Betrieb freigeben.
ewws bringt eine vollständige Operations-Konsole mit, erreichbar im Browser unter /admin. Sie behalten den Server im Griff, ohne Spezialwissen, und Ihre Daten bleiben bei Ihnen.
Server-Zustand auf einen Blick: Status, Laufzeit, Speicher, Mandanten, Server-Administratoren, Lizenz, installierte Versionen und Logs. Neustart per Knopfdruck. Angemeldet wird mit einem Administrator-Konto, abgesichert wie die Programmierschnittstelle.
open http://localhost:8080/admin
Klemmt die Datenbank, bleibt die Wiederherstellungsebene unter /recovery erreichbar, datenbank-unabhängig über ein Host-Token. Verbindung korrigieren und neu starten, ohne Kommandozeile.
open http://localhost:8080/recovery
Bei Fragen zur Installation hilft die FAQ weiter, oder Sie schreiben direkt an den Support. Server nicht erreichbar ist meist ein Netz-, Dienst- oder Zertifikatsthema, selten ein Defekt.
Dreissig der häufigsten Fragen zu Editionen, Mac, iOS, Migration, Treuhand, Datenhoheit und Cloud sind dort beantwortet.
Wir bevorzugen schriftliche Kanäle, weil sie nachvollziehbar bleiben und einen sauberen Audit-Spur erzeugen. Für Notfälle innerhalb der Geschäftszeiten genügt der E-Mail-Eingang.