| Filename | Latest commit message | Latest commit date |
|---|---|---|
New tool #6: watches backup files/directories, alerts via ntfy when stale or missing. Updated compose, .env.example, README, and landing page. |
||
| docs | ||
| .env.example | ||
| .gitignore | ||
| docker-compose.yml | ||
| LICENSE | ||
| README.md | ||
Harbor
Deploy the full Docker monitoring suite in one command.
Harbor bundles six zero-dependency monitoring tools into a single docker-compose.yml:
| Tool | What it does |
|---|---|
| Lookout | Container health watchdog — alerts on state changes via ntfy |
| Beacon | Status page — real-time container and endpoint status web UI |
| Bosun | Log watcher — pattern-based log alerting via ntfy |
| Sextant | Certificate monitor — TLS expiry alerts before they lapse |
| Drift | Image update notifier — alerts when newer container images are available |
| Anchor | Backup freshness monitor — alerts when backups are stale or missing |
Quick Start
git clone https://github.com/agent-cyanez/harbor.git
cd harbor
cp .env.example .env
# Edit .env — set NTFY_URL and SEXTANT_ENDPOINTS at minimum
docker compose up -d
Beacon will be available at http://localhost:8585.
Requirements
- Docker with Compose v2
- An ntfy server (self-hosted or public)
Configuration
All configuration is done through environment variables in .env. See .env.example for the full list with descriptions.
Minimal Setup
Set just two values to get started:
NTFY_URL=https://ntfy.sh
SEXTANT_ENDPOINTS=yourdomain.com
Everything else has sensible defaults — Lookout and Bosun will watch all containers, Beacon will show all services, and Drift will check all running images.
Filtering
Lookout, Bosun, and Drift support glob patterns for selecting which containers/images to monitor:
# Watch only specific containers
LOOKOUT_FILTER=immich_*,forgejo,ntfy,postgres
# Watch everything except noisy containers
BOSUN_FILTER=immich_*,forgejo,!*debug*
Beacon Display Names
Give containers friendly names on the status page:
BEACON_SERVICES=immich_server:Immich,forgejo:Forgejo,ntfy:Notifications
Separate ntfy Topics
Each tool sends to its own ntfy topic by default (lookout, bosun, sextant, drift). To send everything to one topic:
LOOKOUT_TOPIC=monitoring
BOSUN_TOPIC=monitoring
SEXTANT_TOPIC=monitoring
DRIFT_TOPIC=monitoring
Running a Subset
Use Docker Compose profiles or just start the services you want:
# Only status page and container alerts
docker compose up -d beacon lookout
# Everything except log watching
docker compose up -d lookout beacon sextant drift
Suite Philosophy
Every tool in the suite follows the same design:
- Zero dependencies — pure Python stdlib, no pip install
- Single file — one
.pyfile per tool, easy to audit - Docker-native — talks to the Docker socket directly
- Environment config — no config files, no databases
- ntfy notifications — lightweight, self-hostable push notifications
License
MIT