Deploy Joplin Server

Self-hosted sync server for Joplin notes on Postgres, admin set at deploy

Deploy Joplin Server

/var/lib/postgresql/data

Joplin Server

joplin/server:3.7.4

Just deployed

Deploy and Host Joplin Server on Railway

Joplin Server is the official self-hosted sync server for Joplin, the open-source note-taking and to-do app. Your desktop, mobile and terminal Joplin apps sync notes, notebooks, tags and attachments through it. It also adds user accounts, note sharing between users and publishing notes as web pages.

About Hosting Joplin Server

Hosting Joplin Server means running the Node.js server next to a PostgreSQL database, behind HTTPS on a stable public URL that the Joplin apps sync with. This template runs the official joplin/server image with Railway Postgres, and notes and attachments are stored in the database, on its volume. On first start the template runs the database migrations. It then gives the built-in admin account your e-mail address and a generated password, so a fresh deploy never has the upstream admin@localhost / admin login. Public sign-up stays off: the admin creates accounts. Railway's health check uses Joplin's /api/ping endpoint.

Common Use Cases

  • Sync Joplin notes between your laptop, phone and tablet without a third-party cloud
  • Run a private notes server for a family or small team, with one account each
  • Share notebooks with other users on the same server, or publish single notes as web pages

Dependencies for Joplin Server Hosting

  • Joplin Server (joplin/server Docker image, Node.js)
  • PostgreSQL database (Railway Postgres)

Deployment Dependencies

Implementation Details

First login. Open your Railway URL and sign in with JOPLIN_ADMIN_EMAIL and the generated DEFAULT_ADMIN_PASSWORD, which is in the Joplin Server service's Variables tab. You can change the password under your profile. The template only renames the upstream admin@localhost account. Changing JOPLIN_ADMIN_EMAIL or DEFAULT_ADMIN_PASSWORD later does nothing: manage accounts in the web admin.

Add users. Go to Admin > Users > Add user and set an e-mail and password for each person. Without a mail server, set the password in that form; users added through the API get an e-mailed link instead.

Connect a Joplin app. In Joplin, open the Synchronisation settings (Tools > Options > Synchronisation on desktop), choose "Joplin Server", and enter your Railway URL (for example https://your-app.up.railway.app) with your e-mail and password.

Good to know. Joplin only answers on the host in APP_BASE_URL. If you add a custom domain, set APP_BASE_URL to https://your.domain and redeploy. Railway's health check is sent to a small listener on PORT (8080), which passes it on to Joplin's /api/ping. Joplin itself listens on port 22300, which the public domain targets. On every start the server compares the clock with pool.ntp.org and refuses to start if it is off by more than 2 seconds. To send e-mail (password resets, invitations), add Joplin's MAILER_* variables to the Joplin Server service.

Why Deploy Joplin Server on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Joplin Server on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


Template Content

Joplin Server

joplin/server:3.7.4

More templates in this category

View Template
RustFS | (Just Updated) S3 Object Store, Public URL and Keys Set
S3-compatible object store, keys and public URL preset, volume kept

SuperSlowSloth
0
View Template
TimescaleDB
A PostgreSQL-based time-series database for analytics on Railway.

Rakit
1
View Template
NEW
Neo4j 2026.10 Community
Neo4j graph database with APOC, Browser, Bolt TCP proxy and a volume

My Projects
0