version: "3.7" services: grampsweb: &grampsweb image: ghcr.io/gramps-project/grampsweb:latest restart: always ports: - "5000:5000" # host:docker environment: GRAMPSWEB_TREE: "" # will create a new tree if not exists GRAMPSWEB_CELERY_CONFIG__broker_url: "redis://grampsweb_redis:6379/0" GRAMPSWEB_CELERY_CONFIG__result_backend: "redis://grampsweb_redis:6379/0" GRAMPSWEB_RATELIMIT_STORAGE_URI: redis://grampsweb_redis:6379/1 depends_on: - grampsweb_redis volumes: - ./data/users:/app/users # persist user database - ./data/index:/app/indexdir # persist search index - ./data/thumbnail_cache:/app/thumbnail_cache # persist thumbnails - ./data/cache:/app/cache # persist export and report caches - ./data/secret:/app/secret # persist flask secret - ./data/db:/root/.gramps/grampsdb # persist Gramps database - ./data/media:/app/media # persist media files - ./data/tmp:/tmp grampsweb_celery: <<: *grampsweb # YAML merge key copying the entire grampsweb service config ports: [] container_name: grampsweb_celery depends_on: - grampsweb_redis command: celery -A gramps_webapi.celery worker --loglevel=INFO grampsweb_redis: image: redis:alpine container_name: grampsweb_redis restart: always volumes: gramps_users: gramps_index: gramps_thumb_cache: gramps_cache: gramps_secret: gramps_db: gramps_media: gramps_tmp: