{ "module": "bookshelf", "version": "1", "capabilities": [ "container-runtime" ], "emits": [ "module.bookshelf.book.grabbed", "module.bookshelf.download.completed" ], "consumes": [], "own-secrets": { "broker": "/var/lib/mesh/bookshelf/broker" }, "listens": [ { "port": 8787, "protocol": "tcp", "from": "mesh", "why": "managing the ebook/audiobook library" } ], "accesses": [ { "path": "/services/media/books", "mode": "read-write" }, { "path": "/services/media/downloads", "mode": "read-write" } ], "resources": [ { "id": "mesh-state", "type": "directory", "path": "/var/lib/mesh/bookshelf", "mode": "0700" }, { "id": "config", "type": "directory", "path": "/services/bookshelf/config", "mode": "0700", "owner": "1000:1000" }, { "id": "server", "type": "container", "name": "bookshelf", "image": "ghcr.io/pennydreadful/bookshelf@sha256:388eecc94362580eae31ee0a454be6af516f8a311f8432a521c202fb475f4359", "env": { "PUID": "1000", "PGID": "1000", "TZ": "Etc/UTC" }, "ports": [ "8787" ], "volumes": [ "/services/bookshelf/config:/config", "/services/media/books:/books", "/services/media/downloads:/downloads" ] }, { "id": "runtime", "type": "container", "name": "mesh-bookshelf", "image": "mesh-runtime-bookshelf@sha256:0000000000000000000000000000000000000000000000000000000000000000", "network": "host", "volumes": [ "/var/lib/mesh/bookshelf/broker:/run/secrets/broker:ro", "/services/bookshelf/config:/var/lib/bookshelf/config:ro" ], "env": { "MESH_BROKER_FILE": "/run/secrets/broker", "MESH_BOOKSHELF_URL": "http://127.0.0.1:8787", "MESH_BOOKSHELF_CONFIG_DIR": "/var/lib/bookshelf/config" } } ] }