Technik offen erklärt
Absolute Transparenz: Hier steht jede Komponente, die sxMail ausmacht, und was sie mit deinen Daten tut. Alles läuft auf eigener Hardware in deutschen Rechenzentren, ohne Cloud-Anbieter, ohne Drittanbieter-Skripte, ohne externe KI-Dienste.
Mailserver
Das Postfach selbst ist mailcow: Postfix nimmt Mails an und stellt sie zu (SMTP), Dovecot hält sie und liefert sie aus (IMAP und POP3), rspamd filtert Spam und lernt aus deinen eigenen Markierungen. Jede Verbindung ist verschlüsselt. Du kannst dieses Postfach mit jedem E-Mail-Programm nutzen, unsere Oberfläche ist nur eine Möglichkeit. mailcow war übrigens nicht von Anfang an dabei: Die ersten Jahre lief sxMail auf einem von Hand zusammengesetzten Mailserver. Inzwischen ist mailcow der Unterbau, weil das Paket gepflegt wird, Updates sauber laufen und ich meine Zeit lieber in die Oberfläche stecke.
- mailcow
- Postfix
- Dovecot
- rspamd
Web-App
Die Oberfläche ist eine React-Anwendung in TypeScript, gebaut mit Vite und Tailwind CSS. Die öffentlichen Seiten werden beim Bauen als fertiges HTML vorgerendert, damit sie ohne JavaScript lesbar sind. Schriften liegen auf unserem Server, es gibt keine CDNs, keine Analytics und keine eingebetteten Fremdinhalte. Die App lässt sich wie eine native App installieren und liefert Push-Benachrichtigungen. PGP-Verschlüsselung läuft mit OpenPGP.js direkt in deinem Browser, HTML-Mails werden vor der Anzeige mit DOMPurify bereinigt.
- React
- TypeScript
- Vite
- Tailwind CSS
- OpenPGP.js
- DOMPurify
Backend
Zwischen Browser und Mailserver sitzt unser eigener Dienst in Node.js und TypeScript. Er spricht IMAP (ImapFlow), SMTP (Nodemailer), CalDAV und CardDAV (tsdav) und hält pro Browser eine WebSocket-Verbindung für sofortige Updates. Deine Zugangsdaten bleiben auf dem Server, der Browser bekommt nur ein zufälliges Sitzungs-Token. Fremde Konten bindest du per IMAP und SMTP an, Exchange per EWS, Google und Microsoft per OAuth, jeweils ohne dass wir dein Passwort erfahren.
- Node.js
- TypeScript
- ImapFlow
- Nodemailer
- tsdav
Dateien
Dateien liegen auf einem WebDAV-Server. Davor steht ein isoliertes Gateway, das als einzige Komponente die Zugangsdaten zum Speicher kennt und dir pro Sitzung einen kurzlebigen Zugang ausstellt. Freigabelinks werden von demselben Gateway geprüft.
- WebDAV
KI-Funktionen
Zusammenfassen, Antwortvorschläge, Diktat und Vorlesen laufen auf unserer eigenen Hardware: ein offenes Sprachmodell, das mit vLLM auf eigener Hardware läuft (welches Modell genau, wechselt mit dem Stand der Technik), Parakeet für Spracherkennung, Omnivoice für Sprachausgabe, LanguageTool für die Rechtschreibprüfung. Nichts davon verlässt unser Netz, es gibt keine Verbindung zu OpenAI, Google oder anderen Anbietern. Jede KI-Funktion läuft nur, wenn du sie ausdrücklich auslöst.
- vLLM
- Parakeet
- Omnivoice
- LanguageTool
Desktop und Mobil
Die Desktop-App für Windows und Linux ist eine Tauri-2-Hülle in Rust um dieselbe Web-App, mit dem WebView des Systems statt eines eingebauten Browsers. Updates holt sie sich selbst, jedes Paket ist mit unserem Schlüssel signiert und wird vor der Installation geprüft. Die Android-App entsteht mit Expo und React Native und ist derzeit eine Alpha-Version.
- Tauri 2
- Rust
- WebView2
- WebKitGTK
- Expo
- React Native
Betrieb
Alles läuft in Docker-Containern hinter nginx und einem Caddy-Proxy am Netzrand. Code wird in unserem eigenen GitLab gebaut und getestet, SonarQube prüft ihn statisch, unser DNS läuft auf eigenem PowerDNS. Fehlerberichte aus App und Server gehen an unsere eigene Bugsink-Instanz, nicht an einen Drittanbieter. Bilder aus fremden Mails lädt ein eigener Proxy, damit der Absender deine IP-Adresse nicht sieht. Das Kontaktformular schützt ein selbst gebautes Proof-of-Work-Captcha ohne externe Dienste.
- Docker
- nginx
- Caddy
- GitLab CI
- SonarQube
- PowerDNS
- Bugsink
Was noch nicht ist
Der Quellcode ist derzeit nicht öffentlich. Der Windows-Installer trägt keine Code-Signatur, SmartScreen warnt deshalb beim Start. Die Android-App ist eine Alpha-Version. Die offene Registrierung ist wegen Missbrauchs geschlossen, Konten gibt es auf Anfrage und per Empfehlung. Wir schreiben das hier auf, weil Transparenz auch heißt, die Lücken zu nennen.