{ "module": "plex", "version": "1", "capabilities": [ "container-runtime" ], "emits": [ "playback.started", "playback.stopped", "item.added" ], "consumes": [ "*.download.completed" ], "own-secrets": { "broker": "/var/lib/mesh/plex/broker", "token": "/var/lib/mesh/plex/token" }, "listens": [ { "port": 32400, "protocol": "tcp", "from": "mesh", "why": "streaming and the app; reaching it from outside is a route grant later" } ], "accesses": [ { "path": "/services/media/movies", "mode": "read" }, { "path": "/services/media/series", "mode": "read" }, { "path": "/services/media/anime", "mode": "read" }, { "path": "/services/media/music", "mode": "read" }, { "path": "/services/media/audiobooks", "mode": "read" } ], "resources": [ { "id": "mesh-state", "type": "directory", "path": "/var/lib/mesh/plex", "mode": "0700" }, { "id": "config", "type": "directory", "path": "/services/plex/config", "mode": "0700", "owner": "1000:1000" }, { "id": "transcode", "type": "directory", "path": "/services/plex/transcode", "mode": "0700", "owner": "1000:1000" }, { "id": "server", "type": "container", "name": "plex", "image": "plexinc/pms-docker@sha256:83a425ae9e133b1cb2cc3b809556e01c61cd8ff65c582e41b4374bc2210bac9e", "network": "host", "env": { "PLEX_UID": "1000", "PLEX_GID": "1000", "TZ": "Etc/UTC" }, "volumes": [ "/services/plex/config:/config", "/services/plex/transcode:/transcode", "/services/media/movies:/movies", "/services/media/series:/series", "/services/media/anime:/anime", "/services/media/music:/music", "/services/media/audiobooks:/audiobooks" ] }, { "id": "runtime", "type": "container", "name": "mesh-plex", "network": "host", "volumes": [ "/var/lib/mesh/plex/broker:/run/secrets/broker:ro", "/var/lib/mesh/plex/token:/run/secrets/token:ro", "/services/plex/config:/var/lib/plex/config:ro" ], "env": { "MESH_BROKER_FILE": "/run/secrets/broker", "MESH_PLEX_URL": "http://127.0.0.1:32400", "MESH_PLEX_TOKEN_FILE": "/run/secrets/token", "MESH_PLEX_DATA_DIR": "/var/lib/plex" }, "artifact": "runtime" } ], "build": { "on": [ { "arg": "BUILD_BASE", "module": "mesh-tools", "artifact": "build" }, { "arg": "RUNTIME_BASE", "module": "mesh-tools", "artifact": "runtime" } ], "artifacts": [ { "name": "runtime", "kind": "image", "from": "Dockerfile" } ] } }