My notes are kept using Joplin. I use Joplin server to keep all of my devices in-sync.
Below is a docker-compose.yml
I use to run the server.
version: '3'
services:
db:
image: postgres:13
volumes:
- ./data/postgres:/var/lib/postgresql/data
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=CHANGEME
- POSTGRES_USER=joplin
- POSTGRES_DB=joplin
app:
image: joplin/server:latest
depends_on:
- db
ports:
- "8084:22300"
restart: unless-stopped
environment:
- APP_PORT=22300
- APP_BASE_URL=http://CHANGEME
- DB_CLIENT=pg
- POSTGRES_PASSWORD=CHANGEME
- POSTGRES_DATABASE=joplin
- POSTGRES_USER=joplin
- POSTGRES_PORT=5432
- POSTGRES_HOST=db
Note: I run my Joplin server in my Tailscale network, so I don’t bother with TLS certs, but you may wish to put a reverse proxy in front if you run it publicly.
Creating a user
Once up and running, visit the URL you’re running the server at, and login with the default admin credentials (email: admin@localhost
and password admin
).
Once logged-in, create a new user for yourself and change the admin login credentials.
Connecting clients
Now you can simply use your own account’s credentials to login to your Joplin server via your Joplin client(s).
Update: 10/12/22
I’ve switched from using Joplin Server to Nextcloud sync (via WebDav). This means I have fewer things to run and worry about. However, I am keeping this note here for others, or in case I return at a later date.
To do so, select “Nextcloud” as the sync target in Joplin, and provide the WebDav URL for your Nextcloud instance, and the required credentials.