Nomploy Nomad Packs

← All packs

dashy v0.1.0

Dashboards

Dashy — a highly customizable homelab startpage and dashboard with status checks, themes, and widgets. Deployed as a single host-networked Nomad service.

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

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

1 task http 8080 1 volume image lissy93/dashy:latest tracks :latest image bumped today
Variables 8
values.hcl

Save as values.hcl, edit, then run:

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

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

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

# The Dashy container image. Pin a tag in production.
image = "lissy93/dashy:latest"

# Host port for the Dashy web UI.
port = 8080

# Named volume mounted at /app/user-data — holds conf.yml and any custom assets. Edit conf.yml here (or use the built-in web editor) to define your dashboard.
data_volume = "dashy_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
"dashy"
The name of the Nomad job.
namespace string
"default"
The Nomad namespace to deploy into.
datacenters list
["*"]
The datacenters to deploy to.
image string
"lissy93/dashy:latest"
The Dashy container image. Pin a tag in production.
port number
8080
Host port for the Dashy web UI.
data_volume string
"dashy_data"
Named volume mounted at /app/user-data — holds conf.yml and any custom assets. Edit conf.yml here (or use the built-in web editor) to define your dashboard.
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: dashy_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/dashy_data/_data

rclone (sync to S3/R2)

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

dashy

Dashy — a feature-rich homelab startpage and dashboard. Group your services into sections, show live status checks and health, pull data with widgets (weather, RSS, system stats, container status and dozens more), and restyle it all with built-in themes. Configuration is a single conf.yml that you can edit by hand or through the built-in visual editor.

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

Deploy

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

Configure

Variable Default Description
port 8080 Web UI port (PORT).
image lissy93/dashy:latest Container image. Pin a tag in production.
data_volume dashy_data /app/user-data — holds conf.yml and custom assets.
resources { cpu = 300, memory = 256 } Task resources.

First run: Dashy starts with an example dashboard. Edit conf.yml in the data_volume (or use the web editor, then export) to define your own sections and items. Changes are picked up on save/rebuild. Pin the job to the node holding the volume with constraints.