Setting Up Joplin Server with Docker Compose¶
Introduction to Joplin Server¶
Joplin Server acts as a self-hosted synchronization server for Joplin notes. It allows you to synchronize your notes across multiple devices securely and privately.
Docker Compose Configuration for Joplin Server¶
This Docker Compose setup deploys Joplin Server along with a PostgreSQL database, ensuring a robust and isolated environment for your notes.
Docker Compose File (docker-compose.yml
)¶
version: '3'
services:
db:
image: postgres:16
volumes:
- ./data/postgres:/var/lib/postgresql/data
ports:
- "5432:5432"
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=testing123
- POSTGRES_USER=joplin
- POSTGRES_DB=joplindb
app:
image: joplin/server:latest
depends_on:
- db
ports:
- "22300:22300"
restart: unless-stopped
environment:
- APP_PORT=22300
- APP_BASE_URL=http://192.168.68.105:22300
- DB_CLIENT=pg
- POSTGRES_PASSWORD=testing123
- POSTGRES_DATABASE=joplindb
- POSTGRES_USER=joplin
- POSTGRES_PORT=5432
- POSTGRES_HOST=db
Key Components of the Configuration¶
Services:¶
- db (PostgreSQL): Stores Joplin Server data.
- Ports: Exposes PostgreSQL on port
5432
. -
Environment: Configures the database credentials and database name.
-
app (Joplin Server): The main Joplin Server application.
- Ports: Exposes Joplin Server on port
22300
. - Environment: Configures the application to communicate with the PostgreSQL database.
Initial Login Credentials¶
- Username:
admin@localhost
- Password:
admin
These are the default login credentials for Joplin Server upon the first run. It's strongly recommended to change these credentials after your initial login to ensure the security of your instance.
Deployment Instructions¶
- Prepare Environment:
- Create a directory named
data
on your host to ensure data persistence for PostgreSQL. -
Ensure your
.env
file or Docker Compose environment variables are correctly set. -
Launch Services:
- Use Docker Compose to start the services:
- After startup, Joplin Server will be accessible at the
APP_BASE_URL
you've configured, e.g.,http://192.168.68.105:22300
.
Initial Setup and Synchronization Configuration¶
After successfully deploying Joplin Server and logging in with the default credentials (admin@localhost
/ admin
), it's important to secure your instance and configure your Joplin applications (desktop, mobile) to synchronize with your self-hosted server.
Secure Your Joplin Server Instance¶
- Change Admin Credentials: Navigate to the settings through the Joplin Server web interface. Update the admin username and password to secure your Joplin Server instance.
Configure Synchronization in Joplin Applications¶
To synchronize your Joplin notes across devices using your self-hosted Joplin Server:
-
Open Joplin Application Settings: On each Joplin application (desktop or mobile), go to the settings or configuration section.
-
Select Synchronization Target:
- Find the Synchronization settings.
- Under Synchronization target, select Joplin Server from the dropdown menu.
-
Enter Server URL:
- In the URL field, enter your Joplin Server's URL, which is the
APP_BASE_URL
you set in your Docker Compose file (e.g.,http://192.168.68.105:22300
).
- In the URL field, enter your Joplin Server's URL, which is the
-
Input Credentials:
- Enter the username and password you have set for your Joplin Server admin account.
-
Apply Changes: Click Apply, OK, or similar to save your synchronization settings.
-
Initiate Synchronization: Use the synchronize button or feature within your Joplin application to start syncing your notes with your self-hosted Joplin Server.
By following these steps, you will have configured your Joplin applications to synchronize with your self-hosted Joplin Server, ensuring that your notes are up-to-date across all your devices. This setup provides a private and secure way to manage and sync your notes.