Prerequisites
Before you begin, make sure you have the following installed:- Go 1.24 or later - Download Go
- PostgreSQL with TimescaleDB - Install TimescaleDB
- Redis - Install Redis
- Goose CLI - For database migrations
Installation
Install dependencies
Download all Go module dependencies:The project uses these key dependencies:
github.com/jackc/pgx/v5- PostgreSQL drivergithub.com/redis/go-redis/v9- Redis clientgithub.com/urfave/cli/v3- CLI frameworkgopkg.in/mail.v2- Email sending
Configuration
Database setup
Run migrations
Create the required database tables using Goose:This creates three tables:
urls- Stores monitored URL metadataurl_status- TimescaleDB hypertable for time-series metricsincidents- Tracks downtime incidents
Add your first URL
Now you’re ready to add a URL to monitor:add command accepts four positional arguments:
- URL - The endpoint to monitor (required)
- HTTP method -
get,post,patch,put, ordelete(default:get) - Frequency - How often to check (default:
five_minutes) - Contact email - Where to send alerts (required)
Available monitoring frequencies
ten_seconds- Check every 10 secondsthirty_seconds- Check every 30 secondsone_minute- Check every minutefive_minutes- Check every 5 minutesthirty_minutes- Check every 30 minutesone_hour- Check every hourtwelve_hours- Check twice dailytwenty_four_hours- Check once daily
When you add a URL, Watchdog automatically persists it to the database and refreshes the Redis interval list so workers can immediately start monitoring it.
Start monitoring
Launch the Watchdog monitoring service:guard command:
- Connects to Redis and PostgreSQL
- Initializes the orchestrator and supervisor
- Creates worker groups for all configured intervals
- Starts monitoring all added URLs
- Publishes events to the event bus
- Listens for state changes and sends notifications
Manage monitored URLs
List all URLs
View your monitored URLs with pagination and filtering:Remove a URL
Stop monitoring a URL by its ID:Analyze a URL
Run an ad-hoc analysis on a monitored URL:What’s next?
Architecture deep dive
Learn how Watchdog’s event-driven system works under the hood
CLI reference
Explore all available commands and their options
Configuration
Fine-tune worker pools, timeouts, and monitoring behavior
Running service
Production deployment guides for Docker, systemd, and cloud platforms