services: joplin-db: image: postgres:16.11-alpine container_name: joplin-db restart: unless-stopped healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"] interval: 10s timeout: 5s retries: 5 environment: - TZ=${TZ:-Europe/Rome} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_DB=${POSTGRES_DB} - POSTGRES_INITDB_ARGS=--auth-host=scram-sha-256 volumes: - joplin-db-data:/var/lib/postgresql/data networks: - joplin-network joplin-server: image: joplin/server:latest container_name: joplin-server restart: unless-stopped depends_on: joplin-db: condition: service_healthy healthcheck: test: ["CMD-SHELL", "wget --spider -q http://localhost:22300/api/ping"] interval: 15s timeout: 5s retries: 5 ports: - "${JOPLIN_PORT}:22300" environment: - TZ=${TZ:-Europe/Rome} - APP_PORT=22300 - APP_BASE_URL=${APP_BASE_URL} - DB_CLIENT=pg - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DATABASE=${POSTGRES_DB} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PORT=5432 - POSTGRES_HOST=joplin-db - MAILER_ENABLED=${MAILER_ENABLED} - MAILER_HOST=${MAILER_HOST} - MAILER_PORT=${MAILER_PORT} - MAILER_SECURITY=${MAILER_SECURITY} - MAILER_AUTH_USER=${MAILER_AUTH_USER} - MAILER_AUTH_PASSWORD=${MAILER_AUTH_PASSWORD} - MAILER_NOREPLY_NAME=${MAILER_NOREPLY_NAME} - MAILER_NOREPLY_EMAIL=${MAILER_NOREPLY_EMAIL} networks: - joplin-network volumes: - joplin-data:/home/joplin volumes: joplin-db-data: driver: local joplin-data: driver: local networks: joplin-network: driver: bridge