# This is a sample docker-compose file that can be used to run Joplin Server # along with a PostgreSQL server. # # Update the following fields in the stanza below: # # POSTGRES_USER # POSTGRES_PASSWORD # APP_BASE_URL # # APP_BASE_URL: This is the base public URL where the service will be running. # - If Joplin Server needs to be accessible over the internet, configure APP_BASE_URL as follows: https://example.com/joplin. # - If Joplin Server does not need to be accessible over the internet, set the the APP_BASE_URL to your server's hostname. # For Example: http://[hostname]:22300. The base URL can include the port. # APP_PORT: The local port on which the Docker container will listen. # - This would typically be mapped to port to 443 (TLS) with a reverse proxy. # - If Joplin Server does not need to be accessible over the internet, the port can be mapped to 22300. version: '3' services: db: image: postgres:16 volumes: - ./data/postgres:/var/lib/postgresql/data ports: - "5432:5432" restart: unless-stopped environment: - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_DB=${POSTGRES_DATABASE} app: image: joplin/server:latest depends_on: - db ports: - "22300:22300" restart: unless-stopped environment: - APP_PORT=22300 - APP_BASE_URL=${APP_BASE_URL} - DB_CLIENT=pg - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DATABASE=${POSTGRES_DATABASE} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PORT=${POSTGRES_PORT} - POSTGRES_HOST=db