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.
Needs nomad-pack on PATH. The script only adds the nomploy registry and runs this pack.
Source ↗ Project ↗ ★ 7.8k ⚑ Report an issue
Save as values.hcl, edit, then run:
# 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
}
| Name | Type | Default | Description |
|---|---|---|---|
| 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. |
No variables match.
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.
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.
nomad-pack registry add nomploy https://github.com/Nomploy/nomad-packs
nomad-pack run suwayomi --registry=nomploy
| 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 withconstraints.