Files
uptime-monitor/config.example.yaml
2026-08-20 09:32:04 +02:00

76 lines
2.8 KiB
YAML

# Copy this file to config.yaml and adjust it to your setup.
#
# This file is bind-mounted into the container (see docker-compose.yml),
# NOT baked into the image. You can edit it freely at any time — just
# restart the container afterwards (`docker compose restart`) to pick up
# the changes. No rebuild is ever needed for changes in this file.
influx:
# Base URL of your InfluxDB 2.x instance. Reachable directly (host/IP +
# port), no shared docker network required.
url: "https://influxdb.example.local:8086"
# InfluxDB 2.x API token with write access to the bucket below.
token: "REPLACE_WITH_YOUR_INFLUX_API_TOKEN"
# InfluxDB organization name (or ID) that owns the bucket.
org: "REPLACE_WITH_YOUR_ORG"
bucket: "uptime"
# InfluxDB uses a self-signed certificate -> skip certificate
# verification for it specifically. This does NOT affect certificate
# verification of the monitored endpoints below (see verify_tls there).
verify_ssl: false
check:
# Each endpoint is checked once every interval_seconds, but checks are
# spread evenly across that window rather than all fired at once — with
# N endpoints configured, one endpoint is checked every
# (interval_seconds / N) seconds, rotating through all of them.
# Example: 6 endpoints + interval_seconds: 3600 (1 hour) -> one endpoint
# checked every 10 minutes.
interval_seconds: 3600
# Default per-request timeout (DNS lookup + HTTP request), in seconds.
# Can be overridden per endpoint.
timeout_seconds: 10
# If any single endpoint check fails, ALL endpoints are checked once,
# immediately, after this short delay (in seconds) — instead of waiting
# for their normal rotation slot. The rotation is then re-spread evenly
# from that point and resumes normally.
immediate_recheck_delay_seconds: 5
endpoints:
- name: "example-https"
host: "example.com"
scheme: "https"
port: 443
# DNS server used to resolve `host` for THIS endpoint. The
# system/router-provided DNS resolver is never used — every lookup
# goes explicitly to this server only.
# Required unless `host` is already a literal IP address (see the
# entry below), in which case it's optional and ignored.
dns_server: "1.1.1.1"
expected_status: 200
# path: "/" # optional, defaults to "/"
# timeout_seconds: 5 # optional, overrides check.timeout_seconds
# verify_tls: true # optional, set false for self-signed endpoint certs
- name: "example-internal-http"
host: "internal.example.local"
scheme: "http"
port: 8080
dns_server: "9.9.9.9"
expected_status: 200
- name: "example-raw-ip"
host: "192.168.0.2" # literal IP -> DNS resolution is skipped entirely
scheme: "http"
port: 8080
# dns_server not needed here
expected_status: 200
# Add as many endpoints as you like below.