This guide will show you how to run Joplin, an application that will otherwise only run on Windows, macOS, Linux, Android, and iOS, as a web app. As already suggested in the title, this Joplin “web app” isn’t actually a web app and though it isn’t limited in function it is in terms of usability. What this guide will show will not replace the native app, and you will only want to use it when you truly must.
I’ve been self-hosting the Joplin server for some now, and everything has gone swimmingly. The problem I have faced is the fact that the Joplin server is just a server and nothing more. Its only purpose is to sync notes. While I’m at work, I’ve often wanted to access my digital notebook for notes on how to do certain work-related tasks. Because there is no web app I could self-host and expose to the internet, I am forced to bring in my personal laptop just for Joplin. From this day forward that is about to change.
When is a web app not a web app?
The reason I’m cautious about calling this solution a web app is because it isn’t one in the traditional sense of the word. Essentially, what I am doing to access Joplin from a browser is running a container, which runs an Ubuntu baseimage, on top of which the Joplin Linux application is installed and constantly running. The container can be accessed using noVNC through any browser. If you set up sync for both your local application and the Joplin web app, you will see all of your notes in all of your applications.
As you can see, it’s more like accessing a virtual machine to run your desktop-only applications, than running using an actual web app. In my case, the application is slow, slightly laggy, and also not as sharp as a native application would be. But it is usable enough for me to occasionally access it for information.
How to install the Joplin web app
If you are using Unraid as your application server, you are in luck because most of the work has already been done for you. Search for the JoplinApp Docker container in the Community Applications, and make any adjustments you deem to be necessary. I had to adjust the port because 5800
was already in use and I also set the resolution to 1080p. If you are exposing the Joplin web app to the internet you must (!) set a password (and obviously never share it with anyone).
Setting up the Joplin web app using Docker Compose
The Joplin web app Docker container isn’t exclusive to Unraid and can be spun up on any system capable of running Docker. The setup is simple enough, and an example is given in the GitHub repository. What isn’t immediately obvious is how to adjust the resolution of the application. For a selection of available environment variables, this table can be used. If you wanted to adjust the resolution to 1080p, your Docker Compose file should look something like this:
version: '2'
services:
trgui:
image: acaranta/docker-joplin
environment:
- VNC_PASSWORD=<yourVNCpassword>
- DISPLAY_WIDTH=1920
- DISPLAY_HEIGHT=1080
volumes:
- <yourdockervolume>:/app/.config:rw
ports:
- 5800:5800
Adjusting the settings
As the Joplin web app is no different to the native application you are already running, everything should be familiar to you. The first thing I did was to sync my notes from my server. Because this is the full-blown application, there are also a few advantages. You can install any plugins you might need and change the theme.
The Joplin web app: Not great but usable
The Docker container written about in this article won’t replace a proper Joplin web app, should one ever be developed. At no fault of the developer, this solution isn’t great, but it is all there is at this moment in time. For those seeking a Joplin web app, this is currently the only, and thus best, option. In my opinion, it isn’t great, but it definitely is usable.