networks: traefik-net: name: traefik-net external: true volumes: joplin-pg-data: name: joplin-pg-data services: db: image: postgres:15 volumes: - joplin-pg-data:/var/lib/postgresql/data restart: unless-stopped networks: - default environment: - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_DB=${POSTGRES_DATABASE} joplin: image: joplin/server:latest depends_on: - db restart: unless-stopped environment: - APP_PORT=22300 - APP_BASE_URL=https://${HOST} - DB_CLIENT=pg - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DATABASE=${POSTGRES_DATABASE} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PORT=${POSTGRES_PORT} - POSTGRES_HOST=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: - traefik-net - default deploy: labels: - traefik.enable=true - traefik.docker.network=traefik-net - traefik.http.routers.joplin.rule=Host(`${HOST}`) - traefik.http.routers.joplin.entrypoints=websecure - traefik.http.routers.joplin.tls.certresolver=le - traefik.http.services.joplin.loadbalancer.server.port=22300