networks: traefik-net: name: traefik-net external: true volumes: joplin-pg-data: name: joplin-pg-data joplin-pg-backup: name: joplin-pg-backup 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:2.14.2-beta 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 backup: image: prodrigestivill/postgres-backup-local:15 depends_on: - db volumes: - joplin-pg-backup:/backups environment: - POSTGRES_EXTRA_OPTS=-Z 6 -F c - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_DB=${POSTGRES_DATABASE} - POSTGRES_HOST=db