Von Hand musst du dabei nichts erledigen. Vor einem großen Versionssprung lohnt sich trotzdem eine eigene Sicherung, die du unter Einstellungen, Sicherung mit „Jetzt sichern“ anlegst.
Selbst hosten
Ein Container und ein Ordner, mehr brauchst du nicht.
nexlore läuft als ein einziger Docker-Container und speichert alles in SQLite. Du brauchst keine Datenbank daneben, keinen Suchserver und keinen Dienst in der Cloud, und deine Notizen liegen als Dateien auf deiner eigenen Platte.
In fünf Minuten läuft nexlore
Das Abbild gibt es für amd64 und arm64. Es läuft also auf dem Mini-PC genauso wie auf dem Raspberry Pi oder deiner NAS.
services:
nexlore:
image: ghcr.io/derkezorm/nexlore:latest
container_name: nexlore
restart: unless-stopped
ports:
- "8470:8000"
volumes:
- ./data:/data
environment:
PUID: 1000
PGID: 1000
TZ: Europe/Berlin- Datei anlegen
Leg die Datei in einen leeren Ordner, zum Beispiel
/opt/nexlore. MitPUIDundPGIDbestimmst du, welchem Benutzer die Dateien gehören sollen. - StartenShell
docker compose up -d - Das erste Konto anlegen
Öffne
http://dein-server:8470im Browser. Wer dort das erste Konto anlegt, wird Betreiber. Alle anderen kommen per Einladung dazu oder über deinen Anmeldedienst, wenn du das erlaubst.
Lore sagtBeim ersten Start legt nexlore einen Bereich „nexlore“ an. Darin steckt eine Anleitung zum Ausprobieren, auf Deutsch oder Englisch und mit Bildern. Du darfst sie ändern oder löschen, und der Betreiber kann sie jederzeit neu anlegen.
Deine Notizen in einem Ordner deiner Wahl
Wenn du nichts weiter angibst, liegen die Notizen in data/vault. Soll es ein Ordner sein, an dem auch ein anderes Programm oder Syncthing arbeitet, hängst du ihn in den Container ein und sagst nexlore Bescheid.
Jeder Ordner ganz oben wird ein Bereich
Aus /srv/notizen/Privat und /srv/notizen/Familie werden die Bereiche „Privat“ und „Familie“. Solange ein Bereich keine Mitglieder hat, gehört er dem Betreiber, und unter Einstellungen kann er andere dazu einladen.
Den Datenordner richtet der Container bei jedem Start für PUID und PGID ein. Bei einem eingehängten Tresorordner macht er das nicht, der muss für diesen Benutzer also schon beschreibbar sein.
volumes:
- ./data:/data
- /srv/notizen:/vault
environment:
NEXLORE_VAULT_DIR: /vault
# Freigabe ohne Änderungsmeldungen:
# NEXLORE_WATCH_POLLING: "true"Sicher erreichbar mit HTTPS
Bevor du nexlore von woanders als von deinem Schreibtisch aus benutzt, gehört ein Reverse Proxy mit TLS davor. Aufs Handy installieren lässt sich nexlore ohnehin nur über HTTPS.
notes.example.com {
reverse_proxy 127.0.0.1:8470
}client_max_body_size 1024m;
location / {
proxy_pass http://127.0.0.1:8470;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}Die öffentliche Adresse
In NEXLORE_PUBLIC_URL steht die Adresse, unter der man nexlore erreicht. Daraus baut nexlore Einladungslinks, öffentliche Seiten und die Rücksprungadresse für OIDC.
Dem Proxy vertrauen
In NEXLORE_TRUSTED_PROXIES trägst du die Adressen deiner Proxys ein. Nur dann bremst nexlore beim Passwortraten den echten Absender und nicht deinen Proxy.
Sichere Cookies
Ab Werk erkennt nexlore selbst, ob HTTPS im Spiel ist, auch hinter dem Proxy über X-Forwarded-Proto. Wenn das nicht klappt, legst du es mit NEXLORE_COOKIE_SECURE fest.
Lore sagtclient_max_body_size sollte zur größten Datei passen, die nexlore annimmt. Ab Werk sind das 1024 MB, und der Betreiber kann das unter Einstellungen ändern.
Wo nexlore was ablegt
Alles außer den Notizen liegt in /data. Dieser Ordner gehört auf eine lokale Platte und nie auf eine SMB- oder NFS-Freigabe, weil die Sperren von SQLite über Netzlaufwerke nicht zuverlässig halten.
| Im Datenordner | Was es ist |
|---|---|
nexlore.db | Die Datenbank mit Index, Versionen, Papierkorb und Konten. Bis auf Versionen und Papierkorb lässt sich alles darin aus den Dateien neu aufbauen. |
secret.key | Der Schlüssel für alles, was der Server selbst lesen muss, also das OIDC-Geheimnis, das Mail-Passwort und die Schlüssel der zweiten Faktoren. |
vault/ | Deine Notizen, solange kein eigener Tresorordner eingehängt ist. |
backups/ | Die Sicherungen als ZIP. |
trash/ | Der Papierkorb, in dem Gelöschtes 30 Tage liegt. |
logs/ | Das Log, in dem nie Notizinhalte, Passwörter oder Schlüssel stehen. |
locales/ | Weitere Sprachen, je eine JSON-Datei. |
Alle Umgebungsvariablen
Du brauchst keine davon. Das meiste stellt der Betreiber sowieso in der Oberfläche ein.
| Variable | Ab Werk | Bedeutung |
|---|---|---|
NEXLORE_DATA_DIR | /data | Ordner für Datenbank, Log, Sicherungen, Papierkorb und Sprachen |
NEXLORE_VAULT_DIR | <data>/vault | Ordner mit den Notizen als Markdown-Dateien |
NEXLORE_LOCALES_DIR | <data>/locales | Ordner für weitere Sprachen, je eine JSON-Datei |
NEXLORE_SECRET_KEY | beim ersten Start erzeugt | schützt die Geheimnisse auf dem Server und hat Vorrang vor secret.key, wenn du ihn setzt |
NEXLORE_PUBLIC_URL | aus der Anfrage | die Adresse für Einladungen, öffentliche Seiten und OIDC; die Einstellung in der Oberfläche hat Vorrang |
NEXLORE_TRUSTED_PROXIES | keine | Adressen oder Netze deiner Reverse Proxys, deren X-Forwarded-For nexlore glaubt, mit Komma getrennt |
NEXLORE_WATCH_POLLING | false | lässt nexlore regelmäßig nachfragen, für Freigaben, die keine Änderungen melden |
NEXLORE_SCAN_INTERVAL | 300 | Sekunden zwischen zwei vollen Durchgängen über den Tresor; 0 schaltet sie ab |
NEXLORE_SESSION_DAYS | 30 | nach so vielen Tagen endet eine Anmeldung im Browser |
NEXLORE_LOG_LEVEL | Einstellung | quiet, normal, detailed oder trace; hilft, wenn die App nicht mehr startet |
NEXLORE_COOKIE_SECURE | auto | on, off oder auto, dann entscheidet die Anfrage oder X-Forwarded-Proto |
NEXLORE_API_DOCS | false | liefert /api/docs und /api/openapi.json aus |
NEXLORE_PORT | 8000 | der Port im Container, wichtig bei Host-Netzwerk |
PUID, PGID | 1000 | wem die Dateien im Datenordner gehören |
Updaten ohne Handarbeit
Du holst das neue Abbild und startest neu. Was der Datenbank fehlt, ergänzt nexlore beim Start selbst, und vorher sichert es sie.
docker compose pull
docker compose up -dSichern und wiederherstellen, ohne etwas kaputtzumachen
Die Datenbank läuft weiter, während gesichert wird. Deshalb kopiert nexlore sie selbst, sauber und in einem Stück, und nie einfach als Datei im laufenden Betrieb.
Nach Zeitplan
Du kannst täglich oder wöchentlich sichern lassen, ab Werk ist das aus. Wie viele Sicherungen aufgehoben werden, stellst du selbst ein, ab Werk sind es sieben.
Erst ein Probelauf
Bevor du wiederherstellst, zeigt dir nexlore, was dazukäme, was sich ändern würde und was wegfiele.
Eine Kopie zum Mitnehmen
Jede Sicherung kannst du herunterladen. nexlore fragt dafür noch einmal nach dem Passwort des Betreibers.
Lore sagtEine Sicherung ist ein gewöhnliches ZIP mit der Datenbank, allen Notizen und Dateien und secret.key. Wer es hat, hat also alles. Heb es so sorgfältig auf wie den Datenordner selbst, und bitte nicht nur auf demselben Server.