version: '3.5' services: demo: restart: always command: photoprism --public start image: photoprism/demo:latest container_name: demo depends_on: - traefik labels: - "traefik.enable=true" - "traefik.http.routers.demo.rule=Host(`demo.yourdomain.com`)" - "traefik.http.routers.demo.tls=true" - "traefik.http.routers.demo.tls.certresolver=myresolver" volumes: - "./config:/photoprism/storage/config" environment: PHOTOPRISM_SITE_URL: "https://demo.yourdomain.com/" # PHOTOPRISM_CDN_URL: "https://demo-cdn.yourdomain.com/" PHOTOPRISM_SITE_TITLE: "PhotoPrism" PHOTOPRISM_SITE_CAPTION: "Demo" PHOTOPRISM_SITE_DESCRIPTION: "AI-Powered Photos App. Tags and finds pictures without getting in your way!" PHOTOPRISM_SITE_PREVIEW: "https://i.photoprism.app/logo?cover=17&title=Demo" PHOTOPRISM_SITE_AUTHOR: "PhotoPrism" PHOTOPRISM_HTTP_COMPRESSION: "gzip" PHOTOPRISM_DEFAULT_LOCALE: "en" traefik: restart: always image: traefik:v2.6 container_name: traefik ports: - "80:80" - "443:443" expose: - "80" - "443" volumes: - "/var/run/docker.sock:/var/run/docker.sock" - "./traefik/:/data/" - "./traefik.yaml:/etc/traefik/traefik.yaml" scheduler: restart: always image: mcuadros/ofelia:latest container_name: scheduler volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "./jobs.ini:/etc/ofelia/config.ini" watchtower: restart: always image: containrrr/watchtower container_name: watchtower environment: WATCHTOWER_CLEANUP: "true" WATCHTOWER_POLL_INTERVAL: 1800 volumes: - "/var/run/docker.sock:/var/run/docker.sock"