Nomploy Nomad Packs

← All packs

suwayomi v0.1.0

Media

Suwayomi (Tachidesk) — a self-hosted manga reader and downloader server with a web UI, compatible with Tachiyomi/Mihon extensions. Deployed as a single host-networked Nomad service.

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

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

2 tasks http 4567 1 volume image ghcr.io/suwayomi/suwayomi-server:stable pinned :stable image bumped today
Variables 8
values.hcl

Save as values.hcl, edit, then run:

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

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

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

# The Suwayomi container image. Pin a tag in production.
image = "ghcr.io/suwayomi/suwayomi-server:stable"

# Host port for the Suwayomi web UI. Fixed at 4567 inside the image.
port = 4567

# Named volume mounted at /home/suwayomi/.local/share/Tachidesk (library, downloads and settings).
data_volume = "suwayomi_data"

# 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
"suwayomi"
The name of the Nomad job.
namespace string
"default"
The Nomad namespace to deploy into.
datacenters list
["*"]
The datacenters to deploy to.
image string
"ghcr.io/suwayomi/suwayomi-server:stable"
The Suwayomi container image. Pin a tag in production.
port number
4567
Host port for the Suwayomi web UI. Fixed at 4567 inside the image.
data_volume string
"suwayomi_data"
Named volume mounted at /home/suwayomi/.local/share/Tachidesk (library, downloads and settings).
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 one Docker named volume: suwayomi_data

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/suwayomi_data/_data

rclone (sync to S3/R2)

rclone sync /var/lib/docker/volumes/suwayomi_data/_data backup:<bucket>/suwayomi_data

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

suwayomi

Suwayomi (a.k.a. Tachidesk) — a self-hosted manga server with a web reader. It uses the same extensions as the Tachiyomi/Mihon mobile apps, so you can browse and read from many sources, build a library, and download chapters for offline reading — all from your browser, on any device.

Single host-networked Nomad service with a persistent library volume.

Deploy

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

Configure

Variable Default Description
port 4567 Web UI port. Fixed at 4567 inside the image.
image ghcr.io/suwayomi/suwayomi-server:stable Container image. Pin a tag in production.
data_volume suwayomi_data /home/suwayomi/.local/share/Tachidesk — library, downloads and settings.
resources { cpu = 300, memory = 256 } Task resources.

A prestart init task chowns the data volume to uid 1000 (Suwayomi runs unprivileged). Install source extensions from the web UI after first launch. Downloaded chapters read well in komga or kavita. Pin the job to the node holding the volume with constraints.