Example Docker Compose setup for running a self-hosted Joplin Server with PostgreSQL behind Traefik.
This repository provides a simple and reproducible starting point for hosting Joplin Server with Docker Compose and a reverse proxy.
This repository contains the example configuration used in my article about self-hosting Joplin.
The goal is to provide a simple and reproducible setup that can be used as a starting point for your own installation.
The configuration is intentionally kept simple and focuses on the components I use in my own homelab environment.
- Joplin Server
- PostgreSQL database
- Docker Compose
- Traefik reverse proxy integration
- HTTPS support via Traefik
Before starting, make sure you have:
- Docker
- Docker Compose
- A working Traefik installation
- An external Docker network named
traefik - A public DNS entry pointing to your server
Clone the repository:
git clone https://github.com/MiQ71/joplin-docker-compose.git
cd joplin-docker-composeCreate your environment file:
cp .env.example .envEdit .env and adjust:
- Database password
- Joplin URL (
APP_BASE_URL) - Any mail settings you want to use
Update the Traefik hostname in compose.yml:
traefik.http.routers.joplin.rule=Host(`joplin.example.com`)Start the stack:
docker compose up -d.
├── compose.yml
├── .env.example
├── README.md
└── data/
└── postgres/
This repository is intended as an example configuration.
For production environments you should:
- Use strong passwords
- Keep Docker images updated
- Restrict unnecessary network access
- Create regular backups
- Monitor logs and system health
A detailed explanation of why I use Joplin and how it fits into a self-hosted workflow can be found here:
English: https://kerezovic.de/en/blog/real-world/joplin-onenote-alternative/
German: https://kerezovic.de/de/blog/praxis/joplin-onenote-alternative/
MIT License
🇩🇪 Deutsche Version
Beispielkonfiguration für einen selbst gehosteten Joplin Server mit PostgreSQL und Traefik als Reverse Proxy.
Dieses Repository bietet einen einfachen und nachvollziehbaren Einstieg für alle, die Joplin mit Docker Compose betreiben möchten.
Dieses Repository enthält die Beispielkonfiguration, die auch im zugehörigen Artikel über selbst gehostetes Joplin verwendet wird.
Ziel ist es, eine einfache und nachvollziehbare Ausgangsbasis bereitzustellen, die als Grundlage für eine eigene Installation dienen kann.
Die Konfiguration wurde bewusst übersichtlich gehalten und orientiert sich an den Komponenten, die ich selbst in meinem Homelab einsetze.
- Joplin Server
- PostgreSQL Datenbank
- Docker Compose
- Traefik Integration
- HTTPS über Traefik
Vor dem Start sollten folgende Komponenten vorhanden sein:
- Docker
- Docker Compose
- Eine funktionierende Traefik-Installation
- Ein externes Docker-Netzwerk mit dem Namen
traefik - Ein DNS-Eintrag für die gewünschte Domain
Repository klonen:
git clone https://github.com/MiQ71/joplin-docker-compose.git
cd joplin-docker-composeBeispielkonfiguration kopieren:
cp .env.example .envAnschließend die Datei .env anpassen:
- Datenbankpasswort setzen
- Eigene Domain bei
APP_BASE_URLeintragen - Optional Mail-Einstellungen konfigurieren
In der Datei compose.yml die Domain anpassen:
traefik.http.routers.joplin.rule=Host(`joplin.example.com`)Container starten:
docker compose up -dDiese Konfiguration dient als Beispiel.
Für produktive Umgebungen sollten zusätzlich folgende Punkte berücksichtigt werden:
- Starke Passwörter verwenden
- Docker-Images regelmäßig aktualisieren
- Regelmäßige Backups erstellen
- Logs überwachen
- Nicht benötigte Dienste und Ports deaktivieren
Deutsch: https://kerezovic.de/de/blog/praxis/joplin-onenote-alternative/
Englisch: https://kerezovic.de/en/blog/real-world/joplin-onenote-alternative/
MIT License
Maintained by Mirko Kerezovic.
Website: https://kerezovic.de
GitHub: https://github.com/MiQ71
Topics: Linux, Docker, Proxmox, Selfhosting, Infrastructure, Privacy and Security.