services: joplin: image: ${JOPLIN_IMAGE:-joplin/server:latest} container_name: ${JOPLIN_COMPOSE_PROJECT_NAME}_app restart: unless-stopped volumes: - joplin_data:/data environment: TZ: ${TIMEZONE:-Europe/Berlin} APP_PORT: ${JOPLIN_APP_PORT:-22300} APP_BASE_URL: https://${JOPLIN_TRAEFIK_HOST} DB_CLIENT: pg POSTGRES_HOST: ${CORE_DB_HOST} POSTGRES_PORT: ${CORE_DB_PORT} POSTGRES_DATABASE: ${JOPLIN_DB_NAME} POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} networks: - compose_network depends_on: - postgres labels: - 'traefik.enable=${JOPLIN_TRAEFIK_ENABLED}' - 'traefik.http.middlewares.${JOPLIN_COMPOSE_PROJECT_NAME}-redirect-web-secure.redirectscheme.scheme=https' - 'traefik.http.routers.${JOPLIN_COMPOSE_PROJECT_NAME}-web.middlewares=${JOPLIN_COMPOSE_PROJECT_NAME}-redirect-web-secure' - 'traefik.http.routers.${JOPLIN_COMPOSE_PROJECT_NAME}-web.rule=Host(`${JOPLIN_TRAEFIK_HOST}`)' - 'traefik.http.routers.${JOPLIN_COMPOSE_PROJECT_NAME}-web.entrypoints=web' - 'traefik.http.routers.${JOPLIN_COMPOSE_PROJECT_NAME}-web-secure.rule=Host(`${JOPLIN_TRAEFIK_HOST}`)' - 'traefik.http.routers.${JOPLIN_COMPOSE_PROJECT_NAME}-web-secure.tls.certresolver=resolver' - 'traefik.http.routers.${JOPLIN_COMPOSE_PROJECT_NAME}-web-secure.entrypoints=web-secure' - 'traefik.http.middlewares.${JOPLIN_COMPOSE_PROJECT_NAME}-web-secure-compress.compress=true' - 'traefik.http.routers.${JOPLIN_COMPOSE_PROJECT_NAME}-web-secure.middlewares=${JOPLIN_COMPOSE_PROJECT_NAME}-web-secure-compress' - 'traefik.http.services.${JOPLIN_COMPOSE_PROJECT_NAME}-web-secure.loadbalancer.server.port=22300' - 'traefik.docker.network=${NETWORK_NAME}' - 'com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}' volumes: joplin_data: name: joplin_data networks: compose_network: name: ${NETWORK_NAME} external: true