Nomploy Nomad Packs

← All packs

dumbassets v0.1.0

Productivity

DumbAssets — a simple home asset and warranty tracker: log your belongings, serial numbers, purchase dates and warranty expiries with reminders. Deployed as a single host-networked Nomad service.

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

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

2 tasks http 3000 1 volume image dumbwareio/dumbassets:latest tracks :latest image bumped today
Variables 10
values.hcl

Save as values.hcl, edit, then run:

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

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

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

# The DumbAssets container image. Pin a tag in production.
image = "dumbwareio/dumbassets:latest"

# Host port for the DumbAssets web UI.
port = 3000

# Named volume mounted at /app/data (asset records stored as JSON).
data_volume = "dumbassets_data"

# Optional PIN protection, 4+ digits (DUMBASSETS_PIN). Empty = no auth.
pin = ""

# Public URL DumbAssets is reachable at (BASE_URL). Empty = http://localhost:<port>.
base_url = ""

# 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
"dumbassets"
The name of the Nomad job.
namespace string
"default"
The Nomad namespace to deploy into.
datacenters list
["*"]
The datacenters to deploy to.
image string
"dumbwareio/dumbassets:latest"
The DumbAssets container image. Pin a tag in production.
port number
3000
Host port for the DumbAssets web UI.
data_volume string
"dumbassets_data"
Named volume mounted at /app/data (asset records stored as JSON).
pin string
""
Optional PIN protection, 4+ digits (DUMBASSETS_PIN). Empty = no auth.
base_url string
""
Public URL DumbAssets is reachable at (BASE_URL). Empty = http://localhost:<port>.
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: dumbassets_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/dumbassets_data/_data

rclone (sync to S3/R2)

rclone sync /var/lib/docker/volumes/dumbassets_data/_data backup:<bucket>/dumbassets_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

dumbassets

DumbAssets — a simple home asset and warranty tracker. Record your belongings with photos, serial numbers, purchase dates, prices and warranty expiries, organize them with components and tags, and get reminders before warranties run out. No database — everything is stored as JSON on disk.

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

Deploy

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

Configure

Variable Default Description
port 3000 Web UI port (PORT).
pin "" Optional PIN, 4+ digits (DUMBASSETS_PIN). Empty = no auth.
base_url "" Public URL (BASE_URL). Empty = http://localhost:<port>.
image dumbwareio/dumbassets:latest Container image. Pin a tag in production.
data_volume dumbassets_data /app/data — asset records (JSON).
resources { cpu = 300, memory = 256 } Task resources.

Set a pin (or put it behind an authenticating reverse proxy) before exposing it. A prestart init task chowns the data volume to uid 1000. Pairs well with homebox for broader home inventory. Pin the job to the node holding the volume with constraints.