{ "module": "bazarr", "version": "1", "capabilities": [ "container-runtime" ], "emits": [ "subtitle.downloaded" ], "own-secrets": { "broker": "/var/lib/mesh/bazarr/broker" }, "listens": [ { "name": "web", "port": 6767, "protocol": "tcp", "from": "mesh", "why": "managing subtitles" } ], "accesses": [ { "path": "/services/media/movies", "mode": "read-write" }, { "path": "/services/media/series", "mode": "read-write" }, { "path": "/services/media/anime", "mode": "read-write" }, { "path": "/services/media/downloads", "mode": "read" } ], "resources": [ { "id": "mesh-state", "type": "directory", "path": "/var/lib/mesh/bazarr", "mode": "0700" }, { "id": "state", "type": "directory", "mode": "0700", "place": "." }, { "id": "config", "type": "directory", "mode": "0700", "owner": "1000:1000" }, { "id": "server", "type": "container", "name": "bazarr", "image": "lscr.io/linuxserver/bazarr@sha256:d24bd0048c759a468970989e9df11a6b96a7628d556d00f923e60a35ba59237b", "env": { "PUID": "1000", "PGID": "1000", "TZ": "Etc/UTC" }, "ports": [ "6767" ], "volumes": [ "${dir:config}:/config", "/services/media/movies:/movies", "/services/media/series:/series", "/services/media/anime:/anime", "/services/media/downloads:/downloads" ] }, { "id": "runtime-config", "type": "file", "path": "${dir:state}/config.json", "mode": "0600", "content": "{}\n", "merge": "json" }, { "id": "runtime", "type": "container", "name": "mesh-bazarr", "network": "host", "volumes": [ "/var/lib/mesh/bazarr/broker:/run/secrets/broker:ro", "${dir:state}/config.json:/run/config/config.json:ro", "${dir:config}:/var/lib/bazarr/config:ro" ], "env": { "MESH_BROKER_FILE": "/run/secrets/broker", "MESH_BAZARR_URL": "http://127.0.0.1:${port:6767}", "MESH_BAZARR_CONFIG_FILE": "/run/config/config.json", "MESH_BAZARR_CONFIG_DIR": "/var/lib/bazarr/config" }, "restart-on": [ "runtime-config" ], "artifact": "runtime" }, { "id": "servarr", "type": "container", "name": "mesh-bazarr-servarr", "network": "host", "run-once": true, "volumes": [ "${dir:config}:/var/lib/bazarr/config:ro", "${dir:state}/sonarr-api.json:/run/servarr/sonarr-api.json:ro", "${dir:state}/sonarr-api.secret:/run/servarr/sonarr-api.secret:ro", "${dir:state}/radarr-api.json:/run/servarr/radarr-api.json:ro", "${dir:state}/radarr-api.secret:/run/servarr/radarr-api.secret:ro" ], "env": { "MESH_BAZARR_URL": "http://127.0.0.1:${port:6767}", "MESH_BAZARR_CONFIG_DIR": "/var/lib/bazarr/config", "MESH_SERVARR_DIR": "/run/servarr" }, "args": [ "run", "/app/modules/bazarr/dist/servarr/index.js" ], "restart-on": [ "bound-sonarr-api", "secret-sonarr-api", "bound-radarr-api", "secret-radarr-api" ], "artifact": "runtime" } ], "requires": [ "radarr-api", "route", "sonarr-api" ], "contributes": { "route": { "label": "subs", "endpoint": "web" } }, "binds": { "route": "${dir:state}/route.json", "sonarr-api": "${dir:state}/sonarr-api.json", "radarr-api": "${dir:state}/radarr-api.json" }, "secrets": { "sonarr-api": "${dir:state}/sonarr-api.secret", "radarr-api": "${dir:state}/radarr-api.secret" }, "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" } ] } }