Would you like to keep notes with a service like Evernote, but you don't want such a company to know everything about you? With Joplin you set up a versatile alternative that is functionally almost as complete. The difference: you have it all under your own control. Even the storage on a server, if you want, for even more privacy. In this article we show you how to set it up and what you can do with it.
1 Widely applicable
You are probably familiar with programs such as OneNote and Evernote for keeping and organizing notes. With the free and open source Joplin you can do much the same, as you will read in this workshop. Both on the desktop (Windows, macOS and Linux) and on mobile devices (Android and iOS) you can edit your notes or keep track of to-do lists. Use it, for example, for notes for study or work, documenting programming projects, keeping shopping lists or lists of garden chores. Of course Joplin also provides synchronization, with the added value that you can choose where notes are saved.
2 Storage of notes
While you could use Joplin on one device, it's likely that you'll want to view, edit, and keep notes in sync on other devices as well. There are several options for central storage of your notes, including Nextcloud, Dropbox, OneDrive or WebDAV. We will first show you how to use Dropbox. Then we take the storage under our own management, by setting up a simple server with the Linux operating system Ubuntu, the web server Apache and the extension for WebDAV. You could also use a Raspberry Pi with Raspbian if desired: there are no special requirements for the hardware. If you store your notes on a micro-SD card, choose a reliable brand.
3 Installation
We'll start by installing Joplin on a Windows PC so we can try the program out. To download Joplin, go to http://joplinapp.org. When you start Joplin for the first time you will see that there is already a notebook with the name Welcome! has been created, containing some notes with explanations. Read through these tips, it will immediately give you some insight into using the Markdown format. You can then delete the notebook: right click on the notebook and choose remove. New versions of the application appear regularly, it is wise to install them to take advantage of new features. Through Tools / General Options you can change the language from Joplin to Dutch, but know that not everything has been translated (yet).
4 User interface
In the navigation pane on the left, you can see an overview of your notebooks and the notes in them. The main window is split in two: in the left part you can enter notes in the so-called Markdown format, on the right you see the result in reading view. Through View / Toggle editor layout (Ctrl+L) you can change this format. Above the editor you see a series of buttons that help you with, for example, text formatting or adding files and tags. In the navigation pane, you can easily browse through all the tags you've assigned to notes. You can also search your notes by keyword using the search box.
Recently you can also view and possibly restore earlier versions of a note via the i-button.
5 Write notes
Writing notes in Joplin is for the most part self-explanatory. Pay special attention to the use of the hash marks (# and ##) for headers in different levels. Also use the familiar key combinations such as Ctrl+B (bold), Ctrl+I (italic). Do you want to add program code or, for example, rules for a script? A single command can be placed between so-called back-ticks as in `echo hello`. That's the character to the left of the 1 key on a standard keyboard. For multiple lines of code, put three backticks before and after that code.
6 Sync via Dropbox
In a moment we'll show you how to use your own server for storing notes, so that you have everything under your own management. But that is not mandatory: Joplin can also synchronize with, for example, Dropbox or OneDrive. For Dropbox, go to Tools / General Options. Make sure Dropbox is set as the sync target. Now press Sync (or Ctrl+S). The first time you need to authorize the sync with Dropbox: follow the provided link, sign in to Dropbox and authorize access. After this you will receive a code. Copy the code in Joplin and click Submit. After this, the pairing is successful and you can sync notes.
7 Install Apache
To keep notes completely under our own control, we are now going to install the well-known web server software Apache on a server, including the module for Apache for WebDAV. We'll take a simple Linux server here with Ubuntu 18.04 LTS as a starting point, but a Raspberry Pi with the Raspbian operating system is also an option. The steps are the same. Log in as root, make sure the system is up to date with apt-get update and apt-get upgrade. Then install Apache with apt-get install apache2. The modules for WebDAV are installed together with Apache but you have to activate with a2enmod dav and a2enmod dav_fs. If you enter the IP address of the server in a browser in your network, you should now see the default Apache page.
8 Prepare WebDAV
The HTML page opened in the previous step can be found in the folder /var/www/html and the configuration in /etc/apache2/sites-available/000-default.conf. You can disable this default website with a2dissite 000-default so that our site will soon become the default website. In the next step we will therefore add our own configuration including WebDAV. Make a folder for WebDAV to store notes in with mkdir /var/www/webdav. Notes will be saved here in the form of text files with the Markdown format. Make Apache, running under the user named www-data, the owner of these and subdirectories with the following command:
chown -R www-data:www-data /var/www/9 Apache Configuration
Now create a new configuration file for WebDAV with:
nano /etc/apache2/sites-available/webdav.conf
Put the following lines in it (see also image):
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /webdav /var/www/webdav
Options Indexes
DAV On
AuthType Basic
AuthName webdav
AuthUserFile /etc/apache2/webdav.password
Require valid user
Make the configuration active with a2ensite webdav followed by systemctl reload apache2. Watch for errors in that last step. If so, check the configuration carefully. In this configuration we opt for the so-called Basic Authentication, in order to remain compatible with Joplin.
10 Add user
The configuration in the previous step assumes that users who are allowed to access are listed in /etc/apache2/webdav.password. To create this file and immediately add a user, run the command:
htpasswd -c /etc/apache2/webdav.password username
Replace your username with your own name and enter the desired password twice immediately after the command. For each subsequent user, do the same but omit -c. Then make sure Apache can read the file with chown www-data:www-data /etc/apache2/webdav.password. Restart Apache with systemctl restart apache2.
11 Test your configuration
Now that the configuration is active, we can easily test whether access works via a browser. Create a file in the folder for WebDAV with
echo welcome > /var/www/webdav/test.txt
Assign this to the correct user with
chown www-data:www-data /var/www/webdav/test.txt
Now browse with a browser to the IP address of your server followed by /webdav. You should now be asked to log in, where you enter the created username and password. After that you can open the file test.txt and read the contents. You can now also link to the folder in Windows Explorer.
12 Configuration in Joplin
We are now ready to use the server in Joplin so that notes will be synced to it from now on. Go to Tools / General Options and scroll down. Bee Sync Target choose your WebDAV. rear WebDAV URL enter the link, in the form //ipaddress/webdav/. Also enter your username and password. Put a check in Ignore TLS certificate errors. This especially applies if you choose https (with self-signed certificate). Then click Check synchronization configuration. If everything is set up correctly, you will receive a message that synchronization is successful.
13 Encrypt your notes
It is a good idea to protect your notes with end-to-end encryption, so that the content is not readable during sync, on both the PC and the server. A master password of your choice is used for this. To enable encryption, go to Tools / Encryption Options and choose Enable encryption. Enter the desired master password and make sure you don't lose it, or you'll lose access to the notes as well. Your notes will then be encrypted and updated on the server. Preferably do this on your PC, because with a large number of notes, this requires some computer power. Each device will be asked (once) for the master password, in addition to of course the login details for WebDAV itself.
14 Get more out of Joplin
Of course it makes sense to also install Joplin on your smartphone or tablet. The apps for Android and iOS are relatively simple but work well. Also recommended is the so-called Web Clipper, an extension for Chrome and Firefox that allows you to save web pages and screenshots from your browser in Joplin.
Are you convinced of the possibilities of Joplin? Joplin provides an option to import notes from Evernote, including formatting, images, attachments, and all metadata. If you also want to be able to synchronize notes outside your local network, make sure that port 80 in your router is forwarded to your server. In such a case, you could also consider an https connection with Let's Encrypt certificate.