Files
NomadBackup/nomad_backup/20251115_142246/navidrome.json
2025-11-21 13:07:40 -08:00

10 lines
3.5 KiB
JSON

{
"Format": "hcl2",
"JobID": "navidrome",
"JobModifyIndex": 14171074,
"Namespace": "default",
"Source": "job \"navidrome\" {\n datacenters = [\"dc1\"]\n type = \"service\"\n\n constraint {\n attribute = \"${attr.unique.hostname}\"\n operator = \"regexp\"\n value = \"odroid.*\"\n }\n\n group \"navidrome\" {\n count = 1\n\n # Prestart restore task\n task \"restore\" {\n driver = \"docker\"\n lifecycle {\n hook = \"prestart\"\n sidecar = false\n }\n config {\n image = \"litestream/litestream:latest\"\n args = [\n \"restore\",\n \"-if-replica-exists\",\n \"-if-db-not-exists\",\n \"-o\", \"/alloc/tmp/navidrome.db\",\n \"sftp://root:odroid@192.168.4.63/mnt/Shares/litestream/navidrome.db\"\n\n ]\n volumes = [\n \"/mnt/configs/navidrome:/data\"\n ]\n }\n }\n\n # Main Navidrome task\n task \"navidrome\" {\n driver = \"docker\"\n config {\n image = \"ghcr.io/navidrome/navidrome:latest\"\n memory_hard_limit = \"2048\"\n ports = [\"http\"]\n volumes = [\n \"/mnt/Public/Downloads/Clean_Music:/music/CleanMusic:ro\",\n \"/mnt/Public/Downloads/news/slskd/downloads:/music/slskd:ro\",\n \"/mnt/Public/Downloads/incoming_music:/music/incomingmusic:ro\",\n \"/mnt/configs/navidrome:/data\"\n \n ]\n }\n env {\n ND_DATAFOLDER = \"/alloc/tmp/\"\n ND_CACHEFOLDER = \"./data/cache\"\n ND_SCANSCHEDULE = \"32 8-20 * * *\"\n ND_LOGLEVEL = \"debug\"\n ND_REVERSEPROXYWHITELIST = \"0.0.0.0/0\"\n ND_REVERSEPROXYUSERHEADER = \"X-Forwarded-User\"\n ND_SCANNER_GROUPALBUMRELEASES = \"False\"\n ND_BACKUP_PATH = \"/data\"\n ND_BACKUP_SCHEDULE = \"0 0 * * *\"\n ND_BACKUP_COUNT = \"7\"\n }\n resources {\n cpu = 100\n memory = 128\n }\n service {\n name = \"navidrome\"\n tags = [\n \"navidrome\",\n \"web\",\n \"urlprefix-/navidrome\",\n \"tools\",\n \"traefik.http.routers.navidromelan.rule=Host(`navidrome.service.dc1.consul`)\",\n \"traefik.http.routers.navidromewan.rule=Host(`fbleagh-m.ignorelist.com`)\",\n \"traefik.http.routers.navidromewan.rule=Host(`m.fbleagh.duckdns.org`,`m.fbleagh.dedyn.io`)\",\n \"traefik.http.routers.navidromewan.middlewares=dex@consulcatalog\",\n \"traefik.http.routers.navidromewan.tls=true\",\n ]\n port = \"http\"\n check {\n type = \"tcp\"\n interval = \"10s\"\n timeout = \"2s\"\n }\n }\n }\n\n # Litestream sidecar for continuous replication\n task \"litestream\" {\n driver = \"docker\"\n lifecycle {\n hook = \"poststart\" # runs after main task starts\n sidecar = true\n }\n config {\n image = \"litestream/litestream:latest\"\n args = [\n \"replicate\",\n \"/alloc/tmp/navidrome.db\",\n \"sftp://root:odroid@192.168.4.63/mnt/Shares/litestream/navidrome.db\"\n ]\n volumes = [\n \"/mnt/configs/navidrome:/data\"\n ]\n }\n }\n\n network {\n port \"http\" {\n static = 4533\n to = 4533\n }\n }\n }\n}\n\n",
"VariableFlags": null,
"Variables": "",
"Version": 22
}