Kategorie: Docker

  • Joplin, self-hosted

    Joplin Icon, ein weißes  "j" auf blauem Hintergrund.

    Wir zeigen, wie Sie mit Docker-Compose einen Docker-Container für Joplin-Server einrichten und die Joplin Notiz-App damit synchronisieren.

    Was ist Joplin?

    Joplin ist eine kostenlose und quelloffene Software zum Verfassen von Notizen und Aufgabenlisten. Die Anwendung unterstützt das Markdown-Format und ermöglicht das Einbinden von Dateien wie Bildern und PDFs. Inhalte können von anderen Apps importiert und in verschiedenen Formaten exportiert werden. Die Anwendung steht plattformübergreifend für Linux, macOS, Windows, Android und iOS zur Verfügung.

    Screenshot der Joplin App.

    Barrierefreiheit

    Ausprobiert haben wir die App unter Ubuntu, als Snap-Paket installiert. Hier ist sie mit dem Screen-Reader Orca bedienbar. Zudem stehen verschiedene Farb-Themen zur Verfügung. Die Schriftgröße lässt sich individuell in den Einstellungen anpassen und für eine schnelle Vergrößerung hilft die übliche Tastenkombination

    Strg + Plus-Taste

    Wer bei größerer Schrift mehr Platz im Editor-Bereich benötigt, kann die Seitenleisten komfortabel weit zusammenschieben oder eben ganz ausblenden.

    Hilfreich für eine schnelle Navigation ohne Maus ist auch die Option Tab verschiebt Fokus aus dem Menü Ansicht, Tastenkombination:

    Strg + M

    Inhalte speichern

    Alle Inhalte speichert man primär lokal, sie können aber optional über eine Cloud synchronisiert werden. Möglich sind verschiedene Cloud-Dienste, wie Nextcloud, Dropbox, One-Drive und die kostenpflichtige Joplin Cloud.

    Alternativ können Sie den Synchronisationsserver Joplin Server Business auf Ihrer eigenen Infrastruktur installieren. Der einfachste Weg ist hier die Verwendung eines Docker-Containers.

    Voraussetzungen

    Für unser Beispiel verwenden wir Ubuntu 25.04 und richten einen lokalen Docker-Container ein. Statt auf dem lokalen Rechner können Sie den Container aber auch auf einer externen Festplatte, einem anderen Rechner im Heimnetz oder einem Raspberry PI erstellen.

    Was Sie auf Ihrem Rechner benötigen:

    • Joplin (die lokale App)
    • Docker und Docker Compose

    Eine Anleitung für Docker finden Sie hier:

    Joplin installieren Sie unter Linux am einfachsten über die Softwareverwaltung. Alternativ steht die App zum Download auf der Herstellerseite zur Verfügung.

    Server Verzeichnis-Struktur

    Erstellen Sie ein Projektverzeichnis mit dem Namen joplin-server auf ihrem Rechner. In diesem Verzeichnis die Datei compose.yaml und ein Verzeichnis data .

    .
    ├── compose.yaml
    ├── data
    │   └── postgres [error opening dir]
    └── README.md

    3 directories, 2 files

    Das Verzeichnis data nimmt später das Volume für die Postgres-Datenbank auf. Das Volume (postgres) wird während der ersten Ausführung von Docker-Compose automatisch erstellt. In der Postgres-Datenbank speichert der Joplin-Server die synchronisierten Notizen und andere Inhalte. Die Meldung [error opening dir] sehen Sie hier, weil das postgres– Volume nur mit Administrator-Rechten zugänglich ist. Von dem Verzeichnis data sollten Sie später (im Produktiveinsatz) regelmäßig Backups anfertigen.

    Die Compose-Datei

    Öffnen Sie in einem Editor das neue Projekt-Verzeichnis und legen Sie dort die Datei compose.yaml an. Wir nutzen den Editor Visual Studio Code:

    Screenshot: der Editor Visual Studio Code mit der geöffneten Compose Datei im Editorbereich, auf der linken Seite der Dateiexplorer mit der Verzeichnis-Struktur.

    Die compose.yaml Datei hat den folgenden Inhalt:

    services:
        db:
            image: postgres:latest
            volumes:
                - ./data/postgres:/var/lib/postgresql/data
            ports:
                - "5432:5432"
            restart: unless-stopped
            environment:
                - POSTGRES_PASSWORD=testing123
                - POSTGRES_USER=joplin
                - POSTGRES_DB=joplindb
        app:
            image: joplin/server:latest
            depends_on:
                - db
            ports:
                - "127.0.0.1:22300:22300"
            restart: unless-stopped
            environment:
                - APP_PORT=22300
                - APP_BASE_URL=http://127.0.0.1:22300
                - DB_CLIENT=pg
                - POSTGRES_PASSWORD=testing123
                - POSTGRES_DATABASE=joplindb
                - POSTGRES_USER=joplin
                - POSTGRES_PORT=5432
                - POSTGRES_HOST=db

    Die im Bereich environment angegebenen Werte für Benutzer, Passwort und Datenbank können Sie umbenennen.

    ändern:
    POSTGRES_USERjoplin
    POSTGRES_PASSWORDtesting123
    POSTGRES_DATABASEjoplindb

    Den Joplin-Server starten

    Um den Docker-Container zu erstellen und den Server zu starten, öffnen Sie ein Terminal und wechseln in das Projektverzeichnis mit der Compose-Datei:

    cd joplin-server

    Container und Server starten Sie mit dem Befehl:

    sudo docker compose up -d

    Das kann eine Weile dauern, wenn die zugrundeliegenden Images erst geladen werden müssen.

    Ubuntu Terminal mit dem Befehl zum Start des Containers und der Ausgabe: Container Started.

    Wechseln Sie anschließend in einen Browser, wir verwenden Firefox, und rufen Sie die Seite mit dem Server auf. Dazu geben Sie die folgende Adresse in der Adressleiste ein:

    http://localhost:22300

    Oder:

    http://127.0.0.1:22300

    Sie erhalten dann die Login-Seite des Joplin Servers:

    Die Login-Seite des Joplin-Servers im Browser Firefox.

    Für den Administrator sind die Login-Daten vorgegeben (die sollten Sie nach dem ersten Login ändern, insbesondere bevor Sie den Server produktiv einsetzen).

    Emailadmin@localhost
    Passwordadmin

    Nun haben Sie Zugang zum Admin-Dashboard. Hier können Sie die Synchronisation verfolgen, neue Benutzer anlegen und vieles mehr.

    Die synchronisierten Inhalte verbergen sich hinter dem Menüpunkt Items. Der Menüpunkt Report liefert einen Überblick der Synchronisation.

    Joplin-Server: Admin-Dashboard, die Seite mit dem Report über die Aktivitäten auf dem Server wird angezeigt.

    In der lokalen App

    Damit eine Synchronisation der lokalen Inhalte aus der Joplin-App mit dem Server stattfinden kann, müssen Sie dort die Zugangsdaten für den Server hinterlegen. Sie finden die Einstellungen hierzu über das Menü

    Werkzeuge > Optionen > Synchronisation

    Erforderlich sind die Daten:

    Joplin Server-URLhttp://127.0.0.1:22300
    Joplin Server-Emailadmin@localhost
    Joplin Server-Passwordadmin
    Die App Joplin, die Einstellungen für die Synchronisation werden angezeigt.

    Haben Sie später weitere Benutzer auf dem Server angelegt, setzen Sie deren Daten stattdessen ein, z.B.

    Joplin Server-URLhttp://127.0.0.1:22300
    Joplin Server-Emailhenreitte@example.com
    Joplin Server-Passwordverysecret123

    Container stoppen

    Um den Container und damit auch den Server zu stoppen, verwenden Sie dem Befehl

    sudo docker compose stop

    Oder stoppen und löschen den Container mit

    sudo docker compose down
    Ubuntu Terminal mit den Befehlen zum stoppen und Entfernen der Container und der jeweiligen Ausgabe: "Container stopped" und "Container Removed".

    Die zuvor gesicherten Inhalte und alle Daten bleiben dabei erhalten, weil das data – Verzeichnis innerhalb des Containers mit all seinen Inhalten auf das externe Volume (Verzeichnis data/postgres auf Ihrem Rechner, dem Host) abgebildet wurde.

    Ausblick

    Der Joplin Server setzt eine Ende-zu-Ende Verschlüsselung für die Übertragung von der lokalen App zum Server ein. Das ist vorgesehen, um Daten sicher über das Internet zu transportieren. Dazu empfiehlt sich der zusätzliche Einsatz eines Proxy-Servers und die Zuweisung eines Zertifikats.

    Dieser Beitrag soll Ihnen den Einstieg in die Nutzung des Joplin‑Servers erleichtern. Auch wenn für die Synchronisation alternativ Dropbox oder One-Drive genutzt werden können, funktioniert doch die Synchronisation mit dem Joplin-Server deutlich schneller. Insbesondere bietet das Setup auf einem Heimserver eine gute Alternative zu OneDrive.