-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
120 lines (108 loc) · 5.4 KB
/
Copy pathdocker-compose.yml
File metadata and controls
120 lines (108 loc) · 5.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
services:
wanwatcher:
image: noxied/wanwatcher:2.5.0
container_name: wanwatcher
restart: unless-stopped
# The status API only needs a published port when API_ENABLED=true
# ports:
# - "8080:8080"
environment:
# ========================================================================
# General
# ========================================================================
SERVER_NAME: "My Server" # Name shown in notifications
CHECK_INTERVAL: "900" # Seconds between checks (min 60)
MONITOR_IPV4: "true"
MONITOR_IPV6: "true"
# Confirm an IP change with a second source before notifying
IP_CHANGE_CONFIRMATION: "true"
# Optional ipinfo.io token for geographic data
IPINFO_TOKEN: ""
# Log format: "text" (default) or "json" for log aggregators
LOG_FORMAT: "text"
# ========================================================================
# Discord
# ========================================================================
DISCORD_ENABLED: "false"
DISCORD_WEBHOOK_URL: "" # https://discord.com/api/webhooks/...
DISCORD_AVATAR_URL: "" # Optional custom avatar
# ========================================================================
# Telegram
# ========================================================================
TELEGRAM_ENABLED: "false"
TELEGRAM_BOT_TOKEN: "" # From @BotFather
TELEGRAM_CHAT_ID: "" # Your chat or channel id
# ========================================================================
# Email (SMTP)
# ========================================================================
EMAIL_ENABLED: "false"
EMAIL_SMTP_HOST: "" # e.g. smtp.gmail.com
EMAIL_SMTP_PORT: "587" # 587 for TLS, 465 for SSL
EMAIL_SMTP_USER: ""
EMAIL_SMTP_PASSWORD: ""
EMAIL_FROM: ""
EMAIL_TO: "" # Comma separated for multiple recipients
EMAIL_USE_TLS: "true"
EMAIL_USE_SSL: "false"
# ========================================================================
# Apprise - one setting covers 100+ services (ntfy, Gotify, Pushover,
# Slack, Matrix, webhooks...). See https://github.com/caronc/apprise
# ========================================================================
APPRISE_ENABLED: "false"
APPRISE_URLS: "" # Comma separated, e.g. ntfy://host/topic
# ========================================================================
# Dynamic DNS - update DNS records when the IP changes
# ========================================================================
DDNS_ENABLED: "false"
DDNS_PROVIDER: "" # cloudflare | duckdns | dyndns2 | route53
# Cloudflare
CLOUDFLARE_API_TOKEN: "" # Token with Zone.DNS edit permission
CLOUDFLARE_ZONE: "" # e.g. example.com
CLOUDFLARE_RECORDS: "" # e.g. home.example.com,vpn.example.com
CLOUDFLARE_PROXIED: "false"
# DuckDNS
DUCKDNS_TOKEN: ""
DUCKDNS_DOMAINS: "" # Subdomain names, comma separated
# Generic dyndns2 (No-IP, Dynu and others)
DYNDNS2_SERVER: "" # e.g. https://dynupdate.no-ip.com
DYNDNS2_USERNAME: ""
DYNDNS2_PASSWORD: ""
DYNDNS2_HOSTNAMES: ""
# AWS Route53 (creds need route53:ChangeResourceRecordSets on the zone)
ROUTE53_ACCESS_KEY_ID: ""
ROUTE53_SECRET_ACCESS_KEY: ""
ROUTE53_HOSTED_ZONE_ID: "" # e.g. Z1234567890ABC
ROUTE53_RECORDS: "" # e.g. home.example.com
ROUTE53_TTL: "300"
# ========================================================================
# Status API - /healthz, /api/status and Prometheus /metrics
# ========================================================================
API_ENABLED: "false"
API_PORT: "8080"
# ========================================================================
# MQTT - publishes the IP to a broker; with Home Assistant discovery
# the sensors appear automatically
# ========================================================================
MQTT_ENABLED: "false"
MQTT_HOST: ""
MQTT_PORT: "1883"
MQTT_USERNAME: ""
MQTT_PASSWORD: ""
MQTT_HA_DISCOVERY: "true"
# ========================================================================
# Events
# ========================================================================
NOTIFY_ON_STARTUP: "true" # Message when the container starts
HEARTBEAT_ENABLED: "false" # Periodic "still alive" message
HEARTBEAT_INTERVAL: "86400" # Seconds between heartbeats
OUTAGE_DETECTION_ENABLED: "true" # Notify when connectivity drops/returns
OUTAGE_THRESHOLD: "3" # Failed checks before declaring outage
# ========================================================================
# Update check
# ========================================================================
UPDATE_CHECK_ENABLED: "true"
UPDATE_CHECK_INTERVAL: "86400"
UPDATE_CHECK_ON_STARTUP: "true"
volumes:
- ./data:/data # IP state (must be writable by uid 1000)
- ./logs:/logs # Log files (must be writable by uid 1000)