pgAdmin 4 — the popular web-based administration and development tool for PostgreSQL. Deployed as a host-networked Nomad service with a persistent Docker volume for its saved servers and settings. Pairs with the postgres pack.
Save as values.hcl, edit, then run:
# The name of the Nomad job.
job_name = "pgadmin"
# The Nomad namespace to deploy into.
namespace = "default"
# The datacenters to deploy to.
datacenters = ["*"]
# The pgAdmin 4 container image. Pin a tag in production.
image = "dpage/pgadmin4:latest"
# Host port for the pgAdmin web UI (PGADMIN_LISTEN_PORT).
port = 5050
# Initial login email (must be a valid email format). Created on first boot.
email = "admin@example.com"
# Initial login password. CHANGE THIS.
password = "admin"
# Docker named volume for /var/lib/pgadmin (saved server connections, preferences). A prestart task chowns it to uid 5050 (the pgadmin user).
data_volume = "pgadmin_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 = 300
memory = 256
}
| Name | Type | Default | Description |
|---|---|---|---|
| job_name | string | "pgadmin" | The name of the Nomad job. |
| namespace | string | "default" | The Nomad namespace to deploy into. |
| datacenters | list | ["*"] | The datacenters to deploy to. |
| image | string | "dpage/pgadmin4:latest" | The pgAdmin 4 container image. Pin a tag in production. |
| port | number | 5050 | Host port for the pgAdmin web UI (PGADMIN_LISTEN_PORT). |
| email set me | string | "admin@example.com" | Initial login email (must be a valid email format). Created on first boot. |
| password key | string | "admin" | Initial login password. CHANGE THIS. |
| data_volume | string | "pgadmin_data" | Docker named volume for /var/lib/pgadmin (saved server connections, preferences). A prestart task chowns it to uid 5050 (the pgadmin user). |
| 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 = 300
memory = 256
} | The task resources. |
No variables match.
pgAdmin 4 — the popular web-based administration and development
tool for PostgreSQL (browse schemas, run queries, manage roles, view plans). Pairs with
the postgres pack. Host-networked Nomad service with a persistent volume for saved servers
and settings.
nomad-pack registry add nomploy github.com/Nomploy/nomad-packs
nomad-pack run pgadmin --registry nomploy --var password=<secret>
In nomploy: create a Compose service, type Nomad Pack, pack pgadmin, set password,
then Deploy. Open http://<node-ip>:5050 and log in with email / password, then add a
server (host 127.0.0.1, port 5432 for the postgres pack on the same node).
| Variable | Default | Notes |
|---|---|---|
image |
dpage/pgadmin4:latest |
Pin a tag in production. |
port |
5050 |
Web UI (PGADMIN_LISTEN_PORT). |
email |
admin@example.com |
Login email — must be a valid email format. |
password |
admin |
Change this. |
data_volume |
pgadmin_data |
Saved connections + prefs. |
constraints |
[] |
Pin to a node so the local volume stays put. |
resources |
cpu 300 / mem 256 |
Lightweight. |
count is fixed to 1 (local volume). A prestart task chowns the volume
to uid 5050 (the pgadmin user). Pin with constraints.