Nomploy Nomad Packs

← All packs

mylar3 v0.1.0

Media

Mylar3 — an automated comic-book (cbr/cbz) downloader and library manager for NZB and torrents. Deployed as a single host-networked Nomad service.

nomad-pack run mylar3 --registry nomploy
…or one line (add registry + run)
curl -fsSL https://packs.nomploy.com/install.sh | sh -s -- mylar3

Needs nomad-pack on PATH. The script only adds the nomploy registry and runs this pack.

1 task http 8090 3 volumes image lscr.io/linuxserver/mylar3:latest tracks :latest image bumped today
Variables 13
values.hcl

Save as values.hcl, edit, then run:

nomad-pack run mylar3 -f values.hcl --registry nomploy
# The name of the Nomad job.
job_name = "mylar3"

# The Nomad namespace to deploy into.
namespace = "default"

# The datacenters to deploy to.
datacenters = ["*"]

# The Mylar3 container image. Pin a tag in production.
image = "lscr.io/linuxserver/mylar3:latest"

# Host port for the Mylar3 web UI.
port = 8090

# Named volume mounted at /config (settings + database).
data_volume = "mylar3_data"

# Named volume mounted at /comics — your managed comic library.
comics_volume = "mylar3_comics"

# Named volume mounted at /downloads — where your download client drops files for Mylar3 to import.
downloads_volume = "mylar3_downloads"

# User ID that owns the files (PUID).
puid = 1000

# Group ID that owns the files (PGID).
pgid = 1000

# Container timezone (TZ), e.g. Europe/Bratislava.
tz = "UTC"

# Placement constraints. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []

# The task resources.
resources = {
    cpu    = 300
    memory = 256
  }
NameTypeDefaultDescription
job_name string
"mylar3"
The name of the Nomad job.
namespace string
"default"
The Nomad namespace to deploy into.
datacenters list
["*"]
The datacenters to deploy to.
image string
"lscr.io/linuxserver/mylar3:latest"
The Mylar3 container image. Pin a tag in production.
port number
8090
Host port for the Mylar3 web UI.
data_volume string
"mylar3_data"
Named volume mounted at /config (settings + database).
comics_volume string
"mylar3_comics"
Named volume mounted at /comics — your managed comic library.
downloads_volume string
"mylar3_downloads"
Named volume mounted at /downloads — where your download client drops files for Mylar3 to import.
puid number
1000
User ID that owns the files (PUID).
pgid number
1000
Group ID that owns the files (PGID).
tz string
"UTC"
Container timezone (TZ), e.g. Europe/Bratislava.
constraints list
[]
Placement constraints. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
resources object
{
    cpu    = 300
    memory = 256
  }
The task resources.
Back up this pack

This pack stores data in 3 Docker named volumes: mylar3_datamylar3_comicsmylar3_downloads

restic

# Run on the node hosting this pack. Point restic at your repo first:
#   export RESTIC_REPOSITORY="s3:https://<account>.r2.cloudflarestorage.com/<bucket>"
#   export RESTIC_PASSWORD="<repo-password>"
#   export AWS_ACCESS_KEY_ID=<key>  AWS_SECRET_ACCESS_KEY=<secret>
restic backup \
  /var/lib/docker/volumes/mylar3_data/_data \
  /var/lib/docker/volumes/mylar3_comics/_data \
  /var/lib/docker/volumes/mylar3_downloads/_data

rclone (sync to S3/R2)

rclone sync /var/lib/docker/volumes/mylar3_data/_data backup:<bucket>/mylar3_data
rclone sync /var/lib/docker/volumes/mylar3_comics/_data backup:<bucket>/mylar3_comics
rclone sync /var/lib/docker/volumes/mylar3_downloads/_data backup:<bucket>/mylar3_downloads

Paths assume the default Docker volume location (/var/lib/docker/volumes). Restore by stopping the job, restoring files into the same volume, and re-running the pack.

Readme

mylar3

Mylar3 — an automated comic-book (cbr/cbz) downloader and library manager. Track series and pull-lists, search NZB indexers and torrent trackers, grab issues as they release, and organize them into a clean library ready for a reader like Komga, Kavita or Stump.

Single host-networked Nomad service with config, library and downloads volumes.

Deploy

nomad-pack registry add nomploy https://github.com/Nomploy/nomad-packs
nomad-pack run mylar3 --registry=nomploy

Configure

Variable Default Description
port 8090 Web UI port.
image lscr.io/linuxserver/mylar3:latest Container image. Pin a tag in production.
data_volume mylar3_data /config — settings and database.
comics_volume mylar3_comics /comics — the managed comic library.
downloads_volume mylar3_downloads /downloads — where the download client drops files to import.
puid / pgid 1000 / 1000 User/group that owns the files (PUID/PGID).
tz UTC Container timezone (TZ).
resources { cpu = 300, memory = 256 } Task resources.

Pairs with a download client (sabnzbd, qbittorrent), an indexer manager (prowlarr) and a reader (komga / kavita). For imports to work, Mylar3 and the download client should share the same /downloads path. Pin the job to the node holding the volumes with constraints.