
Basic Dockerized Joplin install
Joplin
Joplin is a good solution for my needs, it takes notes, it stores them, it synchronizes them between devices. I was interested in self hosting a minimal version without postgress and transcribe, just minimal sqlite version for myself please. Also as a good alternative, I think there are some good small webdav docker containers that could be used for Joplin synchronization or if you already host NextCloud, use WebDAV functionality there. These alternative solutions additionally provide webdav service itself, which might come in handy :).
Minimal setup
I wanted to use a single docker container with one sqlite database - this is the easiest to backup, restore or debug. I found a solution that included some additional environment values (such as mailer config). Since I don’t want to use mailer, I also can’t change the admin email, however I can simply add and edit users directly from the admin panel, as explained in the link above.
As for the user IDs, the problem is this: the Joplin runs as a new joplin user and I would have to take care of access control to the mounted folder. But since the container only has access to single database file, I simply run it as root.
And finally, docker compose file:
name: Joplin
services:
app:
image: joplin/server:latest
user: 0:0
environment
- APP_PORT=22300
- APP_BASE_URL=https://joplin.example.com
- SQLITE_DATABASE=/mnt/joplin.db
ports:
- 22300:22300
volumes:
- /path/to/db/file:/mnt