SkillAgentSearch skills...

Sentinel

Watch over your tailnet and notify of changes

Install / Use

/learn @jaxxstorm/Sentinel
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Sentinel

Sentinel is a tsnet-embedded Tailscale observer. It tracks tailnet netmap changes, detects meaningful diffs, and sends notifications through configurable sinks.

Deploy on Railway

Features

  • Realtime observation via Tailscale IPNBus (source.mode: realtime)
  • Optional polling mode (source.mode: poll)
  • Presence event detection (peer.online, peer.offline)
  • Route-based notifier pipeline with multiple sinks
  • Always-on local JSON sink (stdout-debug) for visibility
  • Webhook delivery with retries and structured success/failure logging
  • Structured logging with stable log_source attribution (sentinel, tailscale, sink)

Installation Paths

  • GitHub Release binary (recommended for operators)
  • Docker image / Docker Compose
  • Source run with go run (development)

See docs/getting-started.md for complete setup details.

Quick Start (GitHub Release Binary)

Download and install from GitHub Releases (Linux amd64 example):

VERSION=v0.1.0

gh release download "$VERSION" \
  --repo jaxxstorm/sentinel \
  --pattern 'sentinel_*_linux_amd64.tar.gz' \
  --pattern 'checksums.txt'

tar -xzf sentinel_*_linux_amd64.tar.gz sentinel
install -m 0755 sentinel /usr/local/bin/sentinel
sentinel version

Then run Sentinel:

sentinel validate-config --config ./config.example.yaml
REQUESTBIN_WEBHOOK_URL="https://your-endpoint" \
sentinel test-notify --config ./config.example.yaml
REQUESTBIN_WEBHOOK_URL="https://your-endpoint" \
sentinel run --config ./config.example.yaml

Quick Start (Docker)

cp .env.example .env

Set SENTINEL_TAILSCALE_AUTH_KEY in .env, then run:

docker compose -f docker-compose.yml -f docker-compose.local.yml up --build

For GHCR image usage, Railway import, and environment matrix details, see docs/docker-compose.md and docs/docker-image.md.

Configuration

  • Example config: config.example.yaml
  • Supports YAML/JSON with SENTINEL_ environment overrides
  • Supports ${VAR_NAME} interpolation in sink URLs

Commands

  • run
  • status
  • diff
  • dump-netmap
  • test-notify
  • validate-config

Use sentinel --help for full command and flag details.

Documentation

Operator docs live under docs/ and are structured for Docsify.

To preview with Docsify:

docsify serve docs

Development

Run tests:

go test ./...

Run from source with go run:

go run ./cmd/sentinel run --config ./config.example.yaml --log-level debug
View on GitHub
GitHub Stars34
CategoryDevelopment
Updated14d ago
Forks2

Languages

Go

Security Score

90/100

Audited on Mar 17, 2026

No findings