If you’re like me, you take lots of notes. When I’m going through an installation of a new OS on a physical machine, I track my notes but often they get disconnected as I don’t want to pay for expensive cloud hosting. Even without cloud hosting, most note taking apps become costly. Evernote just raised the pay wall a bit higher as you can only have one notebook and 50 notes in the free version now. Obsidian never inspired me, but the note taking tool costs money when it gets into the cloud as well. I started looking for an open source Note app server that would be useful for my personal use and I came across Joplin.
Joplin Server is fairly simple to install, just going through the documentation. The server install will be your “cloud.” From here all the Joplin apps will sync. Just like Evernote, it has apps for Mac, Win, Linux, iOS and Android. These apps sync data to the server (or cloud) as the central repository.
Joplin is an open source Evernote, without the hefty price tag.
Setup
Setup is fairly simple. You install the server on a dedicated machine using a docker container. I created a “joplin” folder and inside the folder I created a .env file which has the following config:
# =============================================================================
# PRODUCTION CONFIG EXAMPLE
# -----------------------------------------------------------------------------
# By default it will use SQLite, but that's mostly to test and evaluate the
# server. So you'll want to specify db connection settings to use Postgres.
# =============================================================================
#
#APP_BASE_URL=https://example.com/joplin
# APP_PORT=22300
#
# DB_CLIENT=pg
# POSTGRES_PASSWORD=joplin
# POSTGRES_DATABASE=joplin
# POSTGRES_USER=joplin
# POSTGRES_PORT=5432
# POSTGRES_HOST=localhost
# =============================================================================
# DEV CONFIG EXAMPLE
# -----------------------------------------------------------------------------
# Example of local config, for development. In dev mode, you would usually use
# SQLite so database settings are not needed.
# =============================================================================
#
APP_BASE_URL=http://<INPUT YOUR IP OF THE SERVER>:22300
APP_PORT=22300
Once the .env file is in place in the folder, run:
docker run -d --env-file .env -p 22300:22300 joplin/server:latest
That will run docker as a background service. Wait a few seconds and then try and pull up the site in a browser:
http://<YOUR SERVER IP>:22300
Use the default credentials to login for the first time: admin@localhost/admin
Once logged in you can create users for your home/team.
Usage
Once the server is online, you install the app anywhere you want: Linux, Mac, Windows, or on your mobile device.
In the app go to the Settings, and then click on Synchronization. In the Synchronization screen, click the dropdown for the Synchronization Target and choose “Joplin Server (Beta)“
This will load fields that you fill out. Input the Joplin server url (http://<your server ip>:22300), server email (user email you setup), server password (password for the user you set up) and Apply the settings.
Before leaving the screen, click “Check Synchronization configuration” and it should be good.