services: joplin_db: image: docker.io/library/postgres:17.5 container_name: joplin_db environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} volumes: - ${APPDATA_PATH}/joplin/db:/var/lib/postgresql/data ports: - ${DB_PORT}:5432 networks: - backend restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -d ${POSTGRES_DB} -U ${POSTGRES_USER}"] start_period: 10s interval: 10s timeout: 5s retries: 3 joplin_server: image: docker.io/joplin/server:3.3.13 container_name: joplin_server depends_on: joplin_db: condition: service_healthy environment: - APP_PORT=22300 - APP_BASE_URL=${APP_BASE_URL} - DB_CLIENT=pg - POSTGRES_HOST=joplin-db - POSTGRES_PORT=5432 - POSTGRES_DATABASE=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} ports: - ${APP_PORT}:22300 networks: - frontend - backend restart: unless-stopped networks: frontend: external: true backend: external: true