Operating system
macOS
Joplin version
3.5.13
Desktop version info
Joplin for Desktop
Copyright © 2016-2026 Laurent Cozic
Joplin 3.5.13 (prod, darwin)
Device: darwin, Apple M4 Pro
Client ID: 01c33a505af24144bf850ffc6ecae3f3
Sync Version: 3
Profile Version: 49
Keychain Supported: Yes
Alternative instance ID: -
Revision: 0c1511f
Backup: 1.5.1
Freehand Drawing: 4.2.0
Note overview: 1.7.1
Sync target
Joplin Server
Editor
Markdown Editor
What issue do you have?
I am new to setting up Joplin Server on Synology NAS. I am fairly new to Docker and networking.
What I am looking to do is install Joplin Server without using a DDNS and setting up a reverse proxy, as I currently use Synology QuickConnect. I don't know if this is possible. I would like to set up Joplin so I can access it on my other devices (i.e., mobile phone) outside the home.
I have been following this guide - How to Install Joplin on Your Synology NAS – Marius Hosting .
I am using Portainer to manage the Docker containers that house the Joplin app and Joplin db.
I set up the "Stack" that is deployed using docker compose (see below).
I am unclear what I should be putting in the "APP_BASE_URL:" field. I tried inputting the Synology QuickConnect Certificate URL that appears in the Control Panel -> Security -> Certificate
When I deploy the stack, I am able to see that the "Published Ports" address does appear to resolve the "APP_BASE_URL" to my Synology IP Address. However, when I go to http://{Synology-IP-Address}:22300, I get a "Invalid origin: http://{Synology-IP-Address}:22300"
Questions:
- Can I accomplish any of this using QuickConnect?
- If no, what is the fastest path to getting a Joplin server set up that does not require QuickConnect?
- If yes, what other settings do I have to change so I can access the Joplin Server?
services:
db:
image: postgres:18
container_name: Joplin-DB
hostname: joplin-db
security_opt:
- no-new-privileges:true
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "joplin", "-U", "joplinuser"]
timeout: 45s
interval: 10s
retries: 10
volumes:
- /volume1/docker/joplin:/var/lib/postgresql:rw
environment:
POSTGRES_DB: joplin
POSTGRES_USER: joplinuser
POSTGRES_PASSWORD: joplinpass
restart: on-failure:5
joplin:
image: joplin/server:latest
container_name: Joplin
depends_on:
- db
ports:
- 22300:22300
environment:
APP_PORT: 22300
APP_BASE_URL: {Synology QuickConnect Certificate URL}
DB_CLIENT: pg
POSTGRES_PASSWORD: joplinpass
POSTGRES_DATABASE: joplin
POSTGRES_USER: joplinuser
POSTGRES_PORT: 5432
POSTGRES_HOST: db
MAX_TIME_DRIFT: 0
MAILER_ENABLED: 1
MAILER_HOST: smtp.gmail.com
MAILER_PORT: 587
MAILER_SECURITY: starttls
MAILER_AUTH_USER: {Scrubbed}
MAILER_AUTH_PASSWORD: {Scrubbed}
MAILER_NOREPLY_NAME: {Scrubbed}
MAILER_NOREPLY_EMAIL: {Scrubbed}
restart: on-failure:5
Screenshots
