Joplin Server mit Docker Compose
Dieser Artikel beschreibt, wie man einen Joplin Server selbst hosten kann. Als Grundlage dienen Docker Compose und Caddy2.

Verzeichnis für Joplin
Erstellt ein Verzeichnis für die Docker Compose Konfiguration und wechselt in dieses Verzeichnis:
mkdir joplin
cd joplin
Verzeichnis erstellen und in das Verzeichnis wechseln.
Docker Compose Datei
Erstellt die Datei compose.yml
, die die Docker Compose Konfiguration beschreibt. Die Konfiguration enthält zwei Dienste:
Dienst | Beschreibung |
---|---|
db |
Postgres Datenbank Server |
app |
Joplin Server |
Beide Dienste werden über eine Umgebungsvariablen-Datei (.env
) konfiguriert, die ihr im nächsten Schritt erstellt.
Der Joplin Server speichert sämtliche Notizen und deren Inhalte in der Datenbank. Für die Daten der Datenbank wird der lokale Pfad ./data/postgres
definiert.
services:
db:
image: postgres:16-alpine
container_name: joplin_db
env_file: .env
volumes:
- ./data/postgres:/var/lib/postgresql/data
restart: unless-stopped
app:
image: joplin/server:latest
env_file: .env
container_name: joplin_app
depends_on:
- db
ports:
- "127.0.0.1:22300:22300"
restart: unless-stopped
compose.yml (Docker Compose Konfiguration)
Umgebungsvariablen-Datei
Erstellt die Datei .env
, die die Umgebungsvariablen für die beiden Dienste enthält. Folgende Variablen müssen anpasst werden:
Variable | Bedeutung |
---|---|
APP_BASE_URL |
öffentliche URL des Joplin Servers |
POSTGRES_PASSWORD |
Passwort für die Datenbank |
MAILER_HOST |
URL des SMTP Servers für den Versand von Mails |
MAILER_PORT |
Portnummer des SMTP Servers |
MAILER_SECURITY |
Sicherheitsprotokoll des SMTP Servers |
MAILER_AUTH_USER |
Benutzername des SMTP Servers |
MAILER_AUTH_PASSWORD |
Passwort für den SMTP Server |
MAILER_NOREPLY_EMAIL |
Absenderadresse für gesendete Emails |
TZ |
die Zeitzone des Joplin Servers |
Die Konfiguration für den SMTP Server findet ihr üblicherweise auf der Homepage eures Email-Providers.
APP_BASE_URL=https://joplin.example.com # Server URL
APP_PORT=22300
DB_CLIENT=pg
POSTGRES_PASSWORD=joplin_pass # Datenbank Passwort
POSTGRES_DATABASE=joplin
POSTGRES_USER=joplin
POSTGRES_PORT=5432
POSTGRES_HOST=db
MAILER_ENABLED=1
MAILER_HOST=smtp.example.com # SMTP Server
MAILER_PORT=587 # SMTP Portnummer
MAILER_SECURITY=starttls # Optionen: none, ssl, starttls
MAILER_AUTH_USER=SMTP_Username # SMTP Benutzername
MAILER_AUTH_PASSWORD=SMTP_Password # SMTP Passwort
MAILER_NOREPLY_NAME=Joplin
MAILER_NOREPLY_EMAIL=noreply@example.com # Absender Email Adresse
TZ=Europe/Berlin # Zeitzone
.env (Umgebungsvariablen)
Docker Container starten
Die Docker Container startet ihr nun über folgendes Kommando.
docker compose up -d
Container starten
Reverse Proxy einrichten
Damit der Joplin Server über die oben definierte Subdomain erreichbar, benötigt ihr einen Reverse Proxy, der entsprechend konfiguriert werden muss. Die gezeigte Konfiguration ist ein Beispiel für den Reverse Proxy Caddy2. Ihr könnt aber auch Apache oder NGINX nutzen.
Folgende Zeilen müssen in die Datei Caddyfile
eingefügt werden:
joplin.example.com {
reverse_proxy localhost:22300
}
Caddyfile (Joplin Konfiguration)
Administrator einrichten
Jetzt ist der Joplin Server bereit und ihr könnt euch über die Adresse https://joplin.example.com
einloggen. Dazu benutzt ihr den Admin Benutzername admin@localhost
und das Passwort admin
.
Als nächsten Schritt bitte zunächst den Benutzernamen und das Passwort für den Administrator ändern. Joplin sendet eine Bestätigungsmail an die angegebene Administrator Email-Adresse. Mit dem Link in dieser Email bestätigt ihr die Änderung der Email-Adresse.