{ "probe": { "app": "gramps-web", "containers": [ { "diff_added": 127, "diff_benign_db_touches": [], "diff_data_dirs": [ { "added": [ "users.sqlite" ], "changed_count": 0, "db_signature": true, "dir": "/app/users", "files": [ "users.sqlite" ] } ], "diff_other_dirs": [ { "added": [], "changed_count": 3, "db_signature": false, "dir": "/", "files": [ "usr", "app", "root" ] }, { "added": [ "data" ], "changed_count": 4, "db_signature": false, "dir": "/app", "files": [ "data" ] }, { "added": [], "changed_count": 1, "db_signature": false, "dir": "/app/cache", "files": [ "request_cache" ] }, { "added": [ "2029240f6d1128be89ddc32729463129" ], "changed_count": 0, "db_signature": false, "dir": "/app/cache/request_cache", "files": [ "2029240f6d1128be89ddc32729463129" ] }, { "added": [], "changed_count": 2, "db_signature": false, "dir": "/app/src", "files": [ "alembic_users", "gramps_webapi" ] }, { "added": [], "changed_count": 1, "db_signature": false, "dir": "/app/src/alembic_users", "files": [ "versions" ] }, { "added": [], "changed_count": 3, "db_signature": false, "dir": "/app/src/gramps_webapi", "files": [ "api", "auth", "util" ] }, { "added": [], "changed_count": 2, "db_signature": false, "dir": "/app/src/gramps_webapi/api", "files": [ "resources", "search" ] }, { "added": [ "2029240f6d1128be89ddc32729463129" ], "changed_count": 0, "db_signature": false, "dir": "/app/thumbnail_cache", "files": [ "2029240f6d1128be89ddc32729463129" ] }, { "added": [ ".gramps" ], "changed_count": 1, "db_signature": false, "dir": "/root", "files": [ ".gramps" ] }, { "added": [ "grampsdb" ], "changed_count": 0, "db_signature": false, "dir": "/root/.gramps", "files": [ "grampsdb" ] }, { "added": [ "61411b9e-fed7-485a-ab76-6e8ea7326c3b" ], "changed_count": 0, "db_signature": false, "dir": "/root/.gramps/grampsdb", "files": [ "61411b9e-fed7-485a-ab76-6e8ea7326c3b" ] }, { "added": [ "name.txt", "database.txt" ], "changed_count": 0, "db_signature": false, "dir": "/root/.gramps/grampsdb/61411b9e-fed7-485a-ab76-6e8ea7326c3b", "files": [ "name.txt", "database.txt" ] }, { "added": [], "changed_count": 1, "db_signature": false, "dir": "/root/gramps", "files": [ "gramps60" ] }, { "added": [], "changed_count": 1, "db_signature": false, "dir": "/root/gramps/gramps60", "files": [ "plugins" ] }, { "added": [], "changed_count": 1, "db_signature": false, "dir": "/root/gramps/gramps60/plugins", "files": [ "FilterRules" ] }, { "added": [], "changed_count": 1, "db_signature": false, "dir": "/usr", "files": [ "lib" ] } ], "diff_token_dirs": [], "diff_total": 153, "diff_unresolved": [], "exit": 0, "gid": 0, "health": "healthy", "image": "ghcr.io/gramps-project/grampsweb:v25.6.0", "mounts": [ { "class": "named-declared", "files": 0, "name": "volgate-grampsweb_gramps_data", "sample": [], "source": "/var/lib/docker/volumes/volgate-grampsweb_gramps_data/_data", "target": "/app/data", "writable_by_app": "yes" }, { "class": "named-declared", "files": 0, "name": "volgate-grampsweb_gramps_media", "sample": [], "source": "/var/lib/docker/volumes/volgate-grampsweb_gramps_media/_data", "target": "/app/media", "writable_by_app": "yes" }, { "class": "named-declared", "files": 0, "name": "volgate-grampsweb_gramps_tmp", "sample": [], "source": "/var/lib/docker/volumes/volgate-grampsweb_gramps_tmp/_data", "target": "/tmp", "writable_by_app": "yes" } ], "name": "gramps-web", "restarts": null, "status": "running", "uid": 0 } ], "declared_volumes": [ "gramps_data", "gramps_media", "gramps_tmp" ], "env_keys": [ "DOMAIN", "GRAMPSWEB_SECRET_KEY", "HDD_PATH", "IMPORT_PATH", "SUBDOMAIN", "TZ", "USERDATA_PATH" ], "exercise": [], "ports": [] }, "reasons": [ "gramps-web: DATA in the writable layer at /app/users (db_signature=True, e.g. ['users.sqlite'])", "NOTHING this app wrote landed in ANY folder the template preserves: all 2 mount(s) across 1 container(s) are empty, yet entries were created in ['/app', '/app/cache/request_cache', '/app/thumbnail_cache', '/root']. Needs adjudication.", "gramps-web: this container's mounts are all empty while it created entries in ['/app', '/app/cache/request_cache', '/app/thumbnail_cache'] \u2014 benign when a sibling container holds the state, worth a look when none does", "gramps-web: declared volume /app/data is EMPTY", "gramps-web: declared volume /app/media is EMPTY" ], "verdict": "BROKEN", "verdict_recomputed_by": "check-volume-persistence.py classify() at final rules" }