Introduction
Joplin may not be the most perfect note-taking application, but it is open-source, well-known, has a long release history, works on multiple operating systems, and supports plugins. It’s not perfect, but it’s good enough and highly usable. In case of this type of application, it is important to have an easy way to do export to migrate to another application (which is quite rare) and import using various format. It is possible that author, in the future, can change license or scope of free tier where next tier level price is not easy to accept.
In case of Joplin, there is possibility to export your notes to the following format:

Where it is possible to do import from formates as presented below.

Spoiler, Import from some applications can be very difficult (like OneNote) or surprisedly easy like Apple Notes (where convert application can do export to md files).
Joplin has two ways how you can create notes, using MarkDown (md) or/and (wyswyg) editor. md editor has also live view version. Both use autosave. In addition for mobile app, Joplin can use draw mode, and pen can be used in separated mode.
Another very useful function is synchronisation between many devices. By default it is possible to use Joplin cloud services which is the most optimised transfer option. Another few supported option contains tested by me Dropbox and Microsoft OneDrive (check below). Few self hosted options are also possible, including WebDav which was inspiration to that article.

It is possible encrypt data on the destination.
Nginx preparation as webdav.
I have prepared needed configuration using lxc and debian 11. Lxc container itself has debian 12 image version.
Inside lxc container install required software:
apt install libnginx-mod-http-dav-ext apache2-utils nginx-full nginx-extra nginx-core
and all the other required software you like.
apache2-utils is not expected in that set but it is required for htpasswd binary.
Create target directory, like “/webdav” and set required permissions
mkdir -p /webdav/client_temp
chown -R www-data:www-data /webdav
sudo chmod -R 755 /webdav
Check if the nginx has plugin:
nginx -V 2>&1 | grep -o with-http_dav_module
Create password file and user:
htpasswd -c /etc/nginx/.htpasswd user
Generate certificates:
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
Copy ctl content of the file and set permissions:
cat /etc/ssl/certs/nginx-selfsigned.crt
chmod 660 /etc/ssl/private/nginx-selfsigned.key
chmod 644 /etc/ssl/certs/nginx-selfsigned.crt
Create required config in /etc/nginx/sites-enabled/default
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name 192.168.22.35;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
root /webdav;
location /webdav/ {
root /webdav;
client_body_temp_path /webdav/client_temp;
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS LOCK UNLOCK;
create_full_put_path on;
dav_access user:rw group:rw all:r;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
autoindex on;
}
access_log /var/log/nginx/webdav_access.log;
error_log /var/log/nginx/webdav_error.log;
}
Check your configuration with command:
nginx -t
Restart nginx
systemctl restart nginx
systemctl status nginx
Joplin configuration
Copy certificate to local file where Joplin is running.
Example of the configuration:


File joplin-webdav.crt contains certificate file.
Also in case you’re using self-signed certificate (as specified in this article) set “Ignore TLS certificate errors”.
In addition use Encryption to not store files on plain text files.

Conclusions
Joplin is not a perfect note-taking tool, but it is good enough. Since it is opensource with planty of export/import options. It is software I can definitely recommend.
Known issues are around editor (wyswyg) which not always behave as expected (for example some html marks are visible when switching to md editor).
Joplin iPad do not support self signed certificate (it is more how iPad iOS works).
No Comments