Install Joplin for Notes
Install Joplin on Linux via AppImage or Flatpak, then connect it to Joplin Cloud, Nextcloud, WebDAV, Dropbox, or S3 for encrypted cross-device sync.
Before you start
- ▸A standard desktop Linux install with internet access
- ▸For Flatpak: Flatpak installed and Flathub remote added
- ▸For AppImage: wget or curl available, FUSE library installed
- ▸Credentials for your chosen sync provider (Nextcloud URL, Dropbox account, S3 bucket, etc.)
Joplin is an open-source, end-to-end-encrypted note-taking app that stores notes in plain Markdown. It runs on Linux, Windows, macOS, Android, and iOS — and it syncs across all of them. This guide covers the two most practical installation paths on Linux (AppImage and Flatpak), then walks through configuring each major sync provider so your notes are wherever you need them.
Choosing Your Installation Method
Joplin is not packaged in most official distro repositories, so you have two well-supported options:
- AppImage — a self-contained binary you download directly from the Joplin team. You always get the latest upstream release. Best if you want the freshest features and don't mind a manual update step.
- Flatpak — sandboxed, auto-updated through Flathub, and works on almost every distro. The Flathub build may lag a version or two behind upstream, but it's the lowest-friction option for most users.
Option A: Install via AppImage
1. Download and run the install script
Joplin ships an official install script that downloads the latest AppImage, places it in ~/.joplin/, and creates a .desktop file for your app launcher.
wget -O - https://raw.githubusercontent.com/laurent22/joplin/dev/Joplin_install_and_update.sh | bash
The script is safe to re-run later for updates. Review it at the URL above if you prefer to audit scripts before piping to bash — a completely reasonable habit.
2. Verify the desktop entry exists
ls ~/.local/share/applications/appimagekit-joplin.desktop
If your launcher doesn't pick it up immediately, run update-desktop-database ~/.local/share/applications or log out and back in.
3. Make the AppImage executable (if running manually)
If you downloaded the AppImage by hand instead of using the script:
chmod +x ~/Downloads/Joplin-*.AppImage
~/Downloads/Joplin-*.AppImage
AppImages require FUSE. On Debian/Ubuntu, install it if missing:
sudo apt install libfuse2
On Fedora/RHEL family:
sudo dnf install fuse
On Arch:
sudo pacman -S fuse2
Option B: Install via Flatpak
1. Ensure Flatpak and Flathub are set up
Debian/Ubuntu:
sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Fedora already ships Flatpak; just add Flathub if needed:
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Arch:
sudo pacman -S flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
2. Install Joplin from Flathub
flatpak install flathub net.cozic.joplin_desktop
3. Launch it
flatpak run net.cozic.joplin_desktop
It also appears in your application launcher under the name Joplin. Flatpak updates happen automatically via your software center or with flatpak update.
Flatpak sandbox note: The sandbox restricts filesystem access by default. If you sync via a local folder path (e.g., a Nextcloud-synced directory), grant access explicitly:
flatpak override --user net.cozic.joplin_desktop --filesystem=~/Nextcloud
Setting Up Sync
Open Joplin, then go to Tools → Options → Synchronisation. Choose your target from the Synchronisation target dropdown. All providers use end-to-end encryption when you enable it under Tools → Options → Encryption — turn that on before syncing to any cloud service.
Joplin Cloud
The simplest path. Create an account at joplincloud.com, select Joplin Cloud as the target, and enter your email and password. Sync starts immediately. Paid plans start at a few dollars per month; there is a free tier with storage limits.
Nextcloud / WebDAV
Select Nextcloud or WebDAV (they use the same fields). You need:
- WebDAV URL — for Nextcloud this is
https://your-server/remote.php/dav/files/USERNAME/Joplin(create theJoplinfolder in Nextcloud first) - Username and Password (or an app-specific password if you have 2FA enabled on Nextcloud)
Click Check synchronisation configuration before saving — Joplin will tell you immediately if the credentials or URL are wrong.
Dropbox
Select Dropbox. Click Create a Dropbox application — Joplin opens a browser tab asking you to authorize the connection. After authorization Dropbox returns a token; paste it into the field and save. Notes land in Apps/Joplin in your Dropbox.
Amazon S3 (and S3-compatible services)
Select S3 (Beta). You need:
- Bucket name — create a private bucket beforehand; do not make it public
- Access key ID and Secret access key — use a dedicated IAM user with
s3:GetObject,s3:PutObject,s3:DeleteObject, ands3:ListBucketpermissions on that bucket only - Region — e.g.,
us-east-1 - For S3-compatible providers (Backblaze B2, Wasabi, MinIO), set a custom S3 URL pointing to their endpoint
S3 sync is marked Beta upstream; it works reliably in practice but check the Joplin release notes after major upgrades.
Filesystem / Local folder (advanced / Syncthing)
Select File system and point it at any local directory. Pair this with Syncthing or your Nextcloud desktop client syncing that folder, and you get sync without granting Joplin any cloud credentials directly.
Verifying Your Setup
After configuring a sync target, create a test note, then click the sync button (bottom-left status bar) or press Ctrl+S. Watch the status bar — it shows "Completed: …" with a timestamp on success. On a second device or after re-installing, hitting sync should pull that test note down within seconds.
To confirm encryption is active, go to Tools → Options → Encryption. The status should read Enabled and show a master key fingerprint. Without this, notes are stored in plaintext on your sync provider.
Troubleshooting
AppImage won't launch — FUSE error
The message fuse: failed to exec fusermount3 or similar means FUSE isn't installed or the kernel module isn't loaded. Install the package for your distro (see above), then run modprobe fuse if the module isn't auto-loaded.
Flatpak can't reach WebDAV / Nextcloud URL
The Flatpak sandbox allows outbound network connections by default, so a blocked URL usually means a typo, a self-signed certificate Joplin doesn't trust, or a Nextcloud server not reachable from your network. Test with curl -I https://your-server/remote.php/dav/ from the terminal first.
Sync conflict notes appearing
Conflicts happen when the same note is edited on two devices before either syncs. Joplin creates a duplicate named "Note title (conflict)". Resolve by comparing and merging the two versions manually, then deleting the conflict copy. Sync more frequently to reduce this.
Notes missing after reinstall / new device
On a fresh install Joplin starts with an empty local database. Configure the same sync target, hit sync, and wait — it may take several minutes to download a large note library. Do not create new notes during the initial sync or you risk conflicts.
Frequently asked questions
- Is Joplin available in standard distro repositories?
- Not in most official repos. The Joplin team supports AppImage and the Flatpak on Flathub as the primary Linux distribution methods. Some AUR packages exist for Arch users but are community-maintained.
- Does Joplin encrypt notes before uploading them to Dropbox or S3?
- Yes, if you enable end-to-end encryption under Tools → Options → Encryption. Without it, notes are synced as readable plaintext. Always enable encryption before connecting a cloud provider.
- Can I sync Joplin with my own server without paying for Joplin Cloud?
- Yes. Point Joplin at any WebDAV server, a self-hosted Nextcloud instance, a MinIO bucket, or simply a local folder you sync with Syncthing. All are free options.
- Why does the Flatpak version sometimes fail to access my local sync folder?
- The Flatpak sandbox restricts filesystem access by default. Use 'flatpak override --user net.cozic.joplin_desktop --filesystem=/path/to/folder' to grant access to the specific directory Joplin needs.
- How do I update Joplin when installed as an AppImage?
- Re-run the same install script: 'wget -O - https://raw.githubusercontent.com/laurent22/joplin/dev/Joplin_install_and_update.sh | bash'. It detects an existing installation and upgrades in place. Joplin also shows an in-app update notification.
Related guides
Linux Clipboards Explained (+ Clipboard Managers)
Learn the difference between Linux's PRIMARY and CLIPBOARD selections, use xclip, xsel, and wl-clipboard from the terminal, and manage history with GPaste or Klipper.
Configure LibreOffice for Daily Use
Configure LibreOffice for daily use: set default save formats for MS Office interop, tune autosave, install fonts, and add productivity extensions.
Configure the Touchpad and Multitouch Gestures
Configure Linux touchpad behavior and multitouch gestures using libinput, libinput-gestures, and native GNOME and KDE Plasma settings on both Wayland and X11.
Wayland vs X11: How to Choose and Configure Each
Know when to run Wayland or X11, how to check your current session, switch at login with GDM/SDDM/LightDM, and handle NVIDIA and XWayland edge cases.