Back to Apps
Joplin

Deploy Joplin on Your Own Server

Joplin - an open source note taking and to-do application with synchronization capabilities for Windows, macOS, Linux, Android and iOS.

πŸ“¦ Other

Want to deploy Joplin on your server faster? Try Senate with one-command setup, automatic HTTPS and monitoring.

Get Started

What is Joplin?

Joplin - an open source note taking and to-do application with synchronization capabilities for Windows, macOS, Linux, Android and iOS. For more info visit https://joplinapp.org/

Self-Host Joplin

Follow these steps to deploy on your own server.

1

Install Docker

Skip this step if Docker is already installed on your server.

curl -fsSL https://get.docker.com | sh
2

Configure

Customize the settings below. Defaults work for most cases.

3

Deploy

Copy the configuration and run it on your server.

services:
  joplin:
    image: joplin/server:1.7.2
    environment:
      APP_BASE_URL: http://joplin.your-domain.com
      DB_CLIENT: pg
      POSTGRES_DATABASE: joplin
      POSTGRES_HOST: joplin-db
      POSTGRES_PASSWORD: cA3rS2oK
      POSTGRES_USER: joplin
    depends_on:
      - joplin-db
  joplin-db:
    image: postgres:13.1
    environment:
      APP_PORT: "22300"
      POSTGRES_DB: joplin
      POSTGRES_PASSWORD: cA3rS2oK
      POSTGRES_USER: joplin
    volumes:
      - joplin-db-data:/var/lib/postgresql/data
volumes:
  joplin-db-data: {}

Then run:

docker compose up -d
4

Access

Once started, access your app at http://localhost:22300

Why Self-Host Joplin?

Full Data Ownership

Your data stays on your servers. No third-party access.

No Monthly Fees

Pay only for your server. No per-seat or usage charges.

Complete Control

Customize, backup, and scale on your own terms.

Privacy & Compliance

Meet GDPR, HIPAA, or internal security requirements.

Technical Details

Docker Image

joplin/server:${joplin_tag}

Want to go faster?

Try Senate! Senate handles Docker, HTTPS, updates, and monitoring for you. Deploy any of our 300+ apps with a single command.

Install on any Linux server:

sh -c "$(curl -sSL https://get.senate.sh)"