Nomploy Nomad Packs

← All packs

gotify v0.1.0

Notifications

Gotify — a simple self-hosted server for sending and receiving push notifications, with a web UI, REST API, and Android app. Deployed as a host-networked Nomad service with a persistent Docker volume for its database and uploads.

nomad-pack run gotify --registry nomploy
1 task http 8099 1 volume image gotify/server:latest
Variables 10
values.hcl

Save as values.hcl, edit, then run:

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

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

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

# The Gotify server container image. Pin a tag in production.
image = "gotify/server:latest"

# Host port for the Gotify web UI / API (GOTIFY_SERVER_PORT).
port = 8099

# Initial admin username, created on first boot.
admin_user = "admin"

# Initial admin password. CHANGE THIS. Only applied on first boot (empty data volume).
admin_password = "admin"

# Docker named volume for /app/data (SQLite database, uploaded images, plugins). Gotify runs as root, so a fresh volume is writable. Back it up.
data_volume = "gotify_data"

# Placement constraints — pin to one node so the local volume stays put. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []

# The task resources.
resources = {
    cpu    = 200
    memory = 128
  }
NameTypeDefaultDescription
job_name string
"gotify"
The name of the Nomad job.
namespace string
"default"
The Nomad namespace to deploy into.
datacenters list
["*"]
The datacenters to deploy to.
image string
"gotify/server:latest"
The Gotify server container image. Pin a tag in production.
port number
8099
Host port for the Gotify web UI / API (GOTIFY_SERVER_PORT).
admin_user string
"admin"
Initial admin username, created on first boot.
admin_password key string
"admin"
Initial admin password. CHANGE THIS. Only applied on first boot (empty data volume).
data_volume string
"gotify_data"
Docker named volume for /app/data (SQLite database, uploaded images, plugins). Gotify runs as root, so a fresh volume is writable. Back it up.
constraints list
[]
Placement constraints — pin to one node so the local volume stays put. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
resources object
{
    cpu    = 200
    memory = 128
  }
The task resources.
Readme

gotify

Gotify — a simple, self-hosted server for push notifications: send messages via a REST API and receive them in the web UI or the Android app. A self-contained alternative to ntfy with built-in users/apps and a database. Host-networked Nomad service with a persistent volume.

Usage

nomad-pack registry add nomploy github.com/Nomploy/nomad-packs
nomad-pack run gotify --registry nomploy --var admin_password=<secret>

In nomploy: create a Compose service, type Nomad Pack, pack gotify, set admin_password, then Deploy.

Open http://<node-ip>:8099, log in, create an application to get a token, then:

curl "http://<node-ip>:8099/message?token=<app-token>" -F "title=Hi" -F "message=It works"

Key variables

Variable Default Notes
image gotify/server:latest Pin a tag in production.
port 8099 Web UI / API (GOTIFY_SERVER_PORT).
admin_user / admin_password admin / admin Created on first boot. Change the password.
data_volume gotify_data SQLite DB + uploads. Back it up.
constraints [] Pin to a node so the local volume stays put.
resources cpu 200 / mem 128 Lightweight.

Notes