Ich will loslegen
Installation → ersten Host anlegen → Terminal. Ohne Server, ohne Konto, in wenigen Minuten.
tessera ist ein selbst gehosteter SSH- und SFTP-Client. Diese Doku erklärt nicht nur, was das Programm tut, sondern warum es das so tut — jede Tastenbelegung, jede kryptografische Konstruktion und jede bewusst nicht getroffene Entscheidung.
Installation → ersten Host anlegen → Terminal. Ohne Server, ohne Konto, in wenigen Minuten.
Sicherheitsmodell → Sync → Geräte. Inklusive der Grenzen, die sich nicht wegargumentieren lassen.
Auf jedem Gerät läuft ein Flutter-Client mit einer lokalen SQLite-Datenbank. Darin steht der entschlüsselte Arbeitsstand: Hosts, Gruppen, Snippets, Schlüssel, Einstellungen. Wer mehrere Geräte abgleichen will, betreibt zusätzlich einen kleinen Node-Server mit MariaDB. In dessen Datenbank liegen ausschließlich verschlüsselte Blobs.
Gerät A ──┐ ┌── Gerät C
│ nur Ciphertext │
Gerät B ──┼──▶ Sync-Server (Node + MariaDB) ◀─┘
│ kein Endpunkt entschlüsselt etwas
└── lokale SQLite je Gerät: der Klartext
Der Sync ist optional. Als reiner SSH- und SFTP-Client funktioniert tessera vollständig ohne Server. Ausgehend bleiben dann die Verbindungen zu deinen Hosts und der Blick nach Updates, der sich abschalten lässt. Wie das eingerichtet wird und was dabei fehlt, steht unter Ohne Server.
Diese Wörter tauchen überall wieder auf. Sie einmal zu lesen spart später Rätselraten.
| Begriff | Bedeutung |
|---|---|
| Vault | Die Gesamtheit deiner verschlüsselten Datensätze. Ein Konto hat genau einen. |
| Vault Key | 32 Byte Zufall. Öffnet den Vault. Liegt im Secure Storage der Geräte und im Wiederherstellungscode — nie beim Server. |
| Record | Ein einzelner Datensatz: ein Host, eine Gruppe, ein Snippet, ein Schlüssel. Wird einzeln verschlüsselt. |
| Epoch | Generationszähler des Vault Key. Steigt bei Entzug eines Geräts oder nach einer Wiederherstellung. |
| HLC | Hybrid Logical Clock. Ordnet Änderungen über Geräte hinweg und löst Konflikte auf. |
| Geltungsbereich | Wo ein Snippet gilt: an einem Host, einer Gruppe, einem Tag — oder überall. |
| Sprunghost | Ein Host, über den ein anderer verbunden wird. Ketten sind erlaubt. |
| SAS | Short Authentication String. Die sechs Ziffern, die beim Koppeln auf beiden Geräten übereinstimmen müssen. |
Diese Tabelle ist ehrlich gemeint. Was live noch ungeprüft ist, steht hier als live noch ungeprüft.
| Bereich | Stand |
|---|---|
| Sync-Server, Krypto-Layer, Sync-Engine | vollständig mit verifizierten Testvektoren |
| Kopplung, Rotation, Wiederherstellung | vollständig |
| Betrieb ohne Server | vollständig einrichten, arbeiten, später nachrüsten — siehe Ohne Server |
| Terminal, Zwischenablage, Suche, Mitschnitt | vollständig |
| Snippets, Schlüsselbund, Hosts und Gruppen | vollständig |
| Remote Desktop (Windows) | nutzbar Bild, Eingabe, Zwischenablage, Auflösung, Sprunghost und Ton — ohne Ordnerumleitung, siehe Remote Desktop |
| SFTP, Port-Weiterleitung, Sprunghost | vollständig, live noch ungeprüft |
| Windows | Referenzplattform |
| Android | verfügbar live noch wenig geprüft |
| Tastenleiste, Vormerkung, Layoutklassen | vollständig — siehe Auf dem Telefon |
| Linux, macOS | vorbereitet — alles Plattformabhängige liegt hinter einer Abstraktion |
| iOS | ungebaut Projekt und Code vollständig, Unveröffentlicht |
Diese Doku gehört zum Quelltext und wird mit ihm zusammen geändert. Eine Repository-Regel schreibt vor, dass jede Änderung am Verhalten des Programms die betroffene Seite mitnimmt — nicht später, sondern im selben Zug. Was hier steht, beschreibt den Stand des Codes, nicht einen Plan.