Files
Panama/server/home/Scrutiny/compose.yml
T
Gabriel Brown 913a57f8a6 Snapshot both servers: the VPS catalog moves to server/vps, the home server joins as server/home
The catalog in server/containers had drifted from the VPS. Eleven compose
files and twelve units no longer matched what runs, and two running
services, Gbrown_Agent and BillTracker, were missing. server/vps is now a
copy of the live files, and panama-server reads from it.

server/home holds the home server's services in the same shape. They still
run under Docker, so the podman units there are drafts for a later move, and
nothing installs from that tree. PostHog, Sentry and Plausible are checkouts
of upstream repositories. Only their local files are kept, next to an
UPSTREAM file naming the repository and the exact commit.

Every secret in both trees is a ${VAR} reference named in .env.example, or
CHANGE_ME in files that are not compose files. The live servers still hold
some of those values inline, so a live file can differ from its copy on
those lines alone. Existing .env.example files keep their comments, with new
keys appended at the end.

The ignore rules and the secrets contract now cover both trees, plus the
volume/ and volumes/ directories the home server uses.
2026-10-06 10:52:47 -04:00

60 lines
1.8 KiB
YAML

# Scrutiny — SMART disk health monitoring with historical trending.
#
# Omnibus image bundles the web UI, InfluxDB and the metrics collector in one
# container, which suits a single host.
#
# Needs raw device access: SYS_RAWIO for SMART ioctls on the SATA disks, and
# SYS_ADMIN additionally for NVMe. /run/udev is mounted read-only so scrutiny
# can resolve device metadata (model, serial, WWN).
#
# Devices listed explicitly rather than using privileged mode:
# sda-sdd 4x WDC WD40EFPX (4TB)
# sde-sdg 3x TOSHIBA MG08ACA14TE (14TB)
# sdh 1x WUH721414ALE601 (14TB)
# nvme0n1 WDS100T3X0C (1TB)
# nvme1n1 Samsung 990 PRO 2TB (root/LUKS)
# sdi (USB Mass Storage) is deliberately omitted.
#
# If a disk is added or replaced, add it to the devices: list and recreate.
networks:
nginx-bridge:
external: true
services:
scrutiny:
image: ghcr.io/analogj/scrutiny:master-omnibus
container_name: scrutiny
hostname: scrutiny
domainname: scrutiny.gbrown.org
networks: ['nginx-bridge']
#ports:
#- "8080:8080"
environment:
- TZ=America/New_York
- SCRUTINY_WEB_INFLUXDB_RETENTION_POLICY=true
cap_add:
- SYS_RAWIO
- SYS_ADMIN
devices:
- /dev/sda:/dev/sda
- /dev/sdb:/dev/sdb
- /dev/sdc:/dev/sdc
- /dev/sdd:/dev/sdd
- /dev/sde:/dev/sde
- /dev/sdf:/dev/sdf
- /dev/sdg:/dev/sdg
- /dev/sdh:/dev/sdh
- /dev/nvme0n1:/dev/nvme0n1
- /dev/nvme1n1:/dev/nvme1n1
labels:
com.centurylinklabs.watchtower.enable: "true"
volumes:
- ./volumes/config:/opt/scrutiny/config
- ./volumes/influxdb:/opt/scrutiny/influxdb
- /run/udev:/run/udev:ro
- /etc/localtime:/etc/localtime:ro
tty: true
stdin_open: true
restart: unless-stopped