LiNotes Prevux LiBoard
Raspberry Pi · Debian · Ubuntu

Dein eigener Server.
Ein Befehl.

Zehn Minuten, ein kleiner Rechner und eine Adresse im Internet – dann liegen deine Notizen und die deiner Familie bei dir zu Hause. Verschlüsselt, gesichert, ohne Abo.

So funktioniert es

Deine Geräte verschlüsseln alles, bevor es das Haus verlässt. Der Server bewahrt nur diese verschlüsselten Päckchen auf und reicht sie an deine anderen Geräte weiter. Auch du als Betreiber kannst die Notizen anderer nicht lesen.

📱 HandyAndroid 💻 LaptopUbuntu 🌐 InternetHTTPS · deine Domain RouterPort 80 + 443 LiNotesServernur verschlüsselt

Kein Server zur Hand? LiNotes läuft auch ganz ohne – wähle beim ersten Start „Ohne Server nutzen“. Einen Server kannst du später jederzeit eintragen, deine Notizen ziehen dann mit um.

Was du brauchst

  • Einen kleinen Rechner, der immer läuft – ideal ein Raspberry Pi 4 oder 5 mit Raspberry Pi OS. Jeder andere Rechner mit Debian oder Ubuntu geht auch.
  • Eine Adresse im Internet, die auf deinen Anschluss zeigt – z. B. kostenlos per DynDNS (goip.de, DuckDNS, die MyFRITZ!-Adresse deiner FRITZ!Box …).
  • Zugang zu deinem Router, um zwei Ports freizugeben.
  • Ein Terminal mit sudo-Rechten auf dem Rechner. Mehr nicht.
💡 Tipp für den Raspberry Pi: Lege die Daten auf eine USB-Festplatte statt auf die SD-Karte – das schont die Karte. Gib dafür den Pfad als zweiten Wert an, siehe Schritt 3.

1 · Eine Adresse im Internet

Deine Geräte müssen den Server auch unterwegs finden. Dafür brauchst du einen Namen wie notizen.example.org, der immer auf deinen Internetanschluss zeigt – auch wenn sich deine IP-Adresse ändert.

  1. Namen anlegenBei einem DynDNS-Anbieter einen Namen anlegen, z. B. familie-notizen.goip.de. Viele Anbieter sind kostenlos.
  2. Aktuell haltenAm einfachsten im Router eintragen (FRITZ!Box: Internet → Freigaben → DynDNS). Der Router meldet dann jede neue IP-Adresse selbst.
  3. PrüfenAuf einem Rechner ping familie-notizen.goip.de eingeben – es muss deine aktuelle Internet-IP antworten.

2 · Router freigeben

Damit HTTPS-Zertifikat und Apps funktionieren, leitet dein Router zwei Ports an den Server weiter. Beispiel FRITZ!Box:

  1. Freigaben öffnenInternet → Freigaben → Portfreigaben → „Gerät für Freigaben hinzufügen“ und den Raspberry Pi auswählen.
  2. Zwei Freigaben anlegen„Neue Freigabe“ → Portfreigabe → HTTP-Server (Port 80) und HTTPS-Server (Port 443). Bei IPv6 zusätzlich „IPv6 freigeben“ aktivieren.
  3. SpeichernFertig. Andere Ports bleiben zu – mehr braucht LiNotes nicht.

3 · Installieren – ein Befehl

Melde dich auf dem Raspberry Pi an (direkt oder per SSH) und gib diesen Befehl ein. Ersetze die Domain durch deine:

pi@raspberrypi: ~
$ curl -fsSL https://lisoft.goip.de/linotes/install-server.sh | sudo bash -s familie-notizen.goip.de

Daten auf einer USB-Festplatte? Hänge den Pfad an: … | sudo bash -s familie-notizen.goip.de /media/usb/linotes

Das Skript lädt den Server, prüft die Prüfsumme und richtet alles ein. Nach ein paar Minuten siehst du:

pi@raspberrypi: ~
LiNotes-Server 2.1.0 wird geladen …

1/6 Pakete
2/6 Benutzer und Verzeichnisse
3/6 Python-Umgebung
4/6 Dienst
5/6 nginx und HTTPS
Successfully deployed certificate for familie-notizen.goip.de
6/6 Prüfen
Der Server läuft.

Fertig!

  Serveradresse für die Apps:  familie-notizen.goip.de
  Erster Einladungscode:       7F3A-C21E-94B0

In der App die Serveradresse eingeben, „Neues Konto erstellen“ wählen und den
Code eingeben. Weitere Einladungen gibt es danach direkt in der App.

Eingerichtet sind jetzt: der LiNotes-Dienst (startet automatisch), nginx mit HTTPS-Zertifikat von Let's Encrypt, eine nächtliche Sicherung um 3:40 Uhr – und dein erster Einladungscode. Der Code oben ist nur ein Beispiel.

4 · App verbinden

  1. Serveradresse eingebenLiNotes öffnen und deine Domain eintragen, z. B. familie-notizen.goip.de.
  2. Konto anlegen„Neues Konto erstellen“ wählen, Einladungscode, Benutzernamen und deinen Namen eingeben. Ein Passwort gibt es nicht – dein Konto ist durch einen Schlüssel geschützt, der nur auf deinen Geräten liegt.
  3. Schlüsseldatei sichernDie App erinnert dich nach ein paar Tagen daran. Mit der Datei kommst du auch nach Verlust aller Geräte wieder an deine Notizen.
  4. Weitere GeräteAuf dem zweiten Gerät „Mit anderem Gerät verbinden“ wählen und den angezeigten Code auf dem ersten Gerät bestätigen – wie bei Signal.
Startbildschirm der App mit Feld für die Serveradresse

5 · Familie einladen

In der App unter Einstellungen → Personen und Einladungen (Ubuntu: Kontomenü → „Einladungscode erzeugen …“) bekommst du einen neuen Code. Den gibst du weiter – die Person installiert LiNotes, trägt die Serveradresse ein und legt mit dem Code ihr Konto an.

Bevor ihr etwas teilt, verifiziert ihr euch einmal gegenseitig – per Code oder QR-Code. Danach kann niemand einen falschen Schlüssel unterschieben.

Am Server geht es auch:

Terminal
$ sudo -u linotes env LINOTES_DATA=/var/lib/linotes \
    /opt/linotes/venv/bin/python -m linotes_server.admin invite

Sicherung

Jede Nacht um 3:40 Uhr legt der Server eine konsistente Kopie der Datenbank und aller Dateien an – in /var/lib/linotes-backup (bzw. neben deinem Datenordner). Datenbank-Kopien werden 14 Tage aufbewahrt.

💡 Am sichersten liegt die Sicherung auf einer zweiten Festplatte. Auch die Sicherung ist verschlüsselt – ohne die Schlüssel auf euren Geräten ist sie unlesbar.

Update

Einfach denselben Befehl noch einmal ausführen. Das Skript darf mehrfach laufen: Es spielt die neue Version ein, behält deine Daten und startet den Dienst neu. Die Apps merken davon nur eine kurze Pause.

Terminal
$ curl -fsSL https://lisoft.goip.de/linotes/install-server.sh | sudo bash -s familie-notizen.goip.de

Wenn etwas hakt

„HTTPS konnte nicht eingerichtet werden“

Zeigt die Domain wirklich auf deinen Anschluss (Schritt 1) und sind Port 80 und 443 freigegeben (Schritt 2)? Danach einfach sudo certbot --nginx -d deine-domain ausführen.

Die App findet den Server nicht

Im Browser https://deine-domain/api/health öffnen. Steht dort "ok": true, läuft alles – dann die Adresse in der App ohne https:// und ohne Schrägstrich eintragen.

Der Dienst startet nicht

Terminal
$ sudo systemctl status linotes
$ sudo journalctl -u linotes -n 50

Zu Hause geht es, unterwegs nicht

Dann fehlt meist die Portfreigabe oder die DynDNS-Adresse ist veraltet. Teste vom Handy im Mobilnetz (WLAN aus) die Adresse https://deine-domain/api/health.

Ohne Einzeiler

Lieber jeden Schritt selbst? Lade das Paket, prüfe es und starte den Installer von Hand:

Terminal
$ wget https://lisoft.goip.de/linotes/download/linotes-server-2.1.0.tar.gz \
       https://lisoft.goip.de/linotes/download/SHA256SUMS
$ sha256sum --ignore-missing -c SHA256SUMS
$ tar xzf linotes-server-2.1.0.tar.gz
$ sudo linotes-server/install.sh familie-notizen.goip.de

Der Quelltext des Installers liegt im Paket (install.sh) – du kannst vorher genau nachlesen, was er tut.