Skip to main content

max / makenotwork

3.0 KB · 147 lines History Blame Raw
1 [serve]
2 interval_secs = 300
3 prune_days = 30
4 listen = "0.0.0.0:9100"
5 peer_heartbeat_secs = 60
6 route_check_interval_secs = 300
7 dashboard = false
8 # api_token loaded from POM_API_TOKEN env var
9
10 [instance]
11 name = "hetzner"
12
13 [targets.mnw]
14 label = "Makenotwork Production"
15 expected_routes = ["/", "/discover", "/login", "/docs"]
16
17 [[targets.mnw.dns]]
18 name = "makenot.work"
19 record_type = "A"
20 expected = []
21
22 [[targets.mnw.dns]]
23 name = "forums.makenot.work"
24 record_type = "A"
25 expected = []
26
27 [[targets.mnw.dns]]
28 name = "git.makenot.work"
29 record_type = "A"
30 expected = []
31
32 [[targets.mnw.cors]]
33 url = "https://fsn1.your-objectstorage.com/makenotwork-files/cors-probe"
34 origin = "https://makenot.work"
35 method = "PUT"
36
37 [targets.mnw.whois]
38 domain = "makenot.work"
39 warn_days = 30
40
41 [targets.mnw.health]
42 url = "https://makenot.work/api/health"
43 timeout_secs = 10
44
45 [targets.mnw.health.expect]
46 status_code = 200
47 json_fields = { "status" = "operational", "checks.database" = "true" }
48
49 [targets.mnw.health.trending]
50 baseline_window_hours = 168
51 spike_threshold = 2.0
52
53 [targets.mnw.tls]
54 host = "makenot.work"
55
56 [targets.mnw.tests]
57 ssh = "max@100.106.221.39"
58 command = "/home/max/staging/run-ci.sh"
59 timeout_secs = 600
60 staleness_days = 7
61
62 [targets.mnw.backups]
63 directory = "/opt/makenotwork/backups"
64 databases = ["makenotwork"]
65 max_age_hours = 25
66 interval_secs = 3600
67
68 [targets.mnw.scan_pipeline]
69 # Polls /admin/uploads/health.json for queue depth, stuck-scan count,
70 # held backlog, and per-layer error rates. Thresholds per
71 # scan-pipeline-audit.md § 6. Localhost on the makenotwork port to
72 # skip the Caddy + Cloudflare path — internal-only signal.
73 base_url = "http://127.0.0.1:3000"
74 interval_secs = 300
75 timeout_secs = 10
76
77 [targets.mnw-cli]
78 label = "MNW CLI SSH Server"
79
80 [[targets.mnw-cli.dns]]
81 name = "cli.makenot.work"
82 record_type = "A"
83 expected = []
84
85 [targets.mnw-cli.ssh_banner]
86 host = "127.0.0.1"
87 port = 22
88 timeout_secs = 5
89
90 [targets.mt]
91 label = "Multithreaded Forum"
92 expected_routes = ["/"]
93
94 [targets.mt.health]
95 url = "http://127.0.0.1:3400/api/health"
96 timeout_secs = 5
97
98 [targets.mt.health.expect]
99 status_code = 200
100 json_fields = { "status" = "operational", "database" = "true" }
101
102 [targets.mt.tls]
103 host = "forums.makenot.work"
104
105 [targets.mt.tests]
106 ssh = "max@100.106.221.39"
107 command = "cd /home/max/staging/multithreaded && cargo test --workspace 2>&1"
108 timeout_secs = 300
109 staleness_days = 7
110
111 [targets.htpy]
112 label = "htpy.app"
113
114 [[targets.htpy.dns]]
115 name = "htpy.app"
116 record_type = "A"
117 expected = []
118
119 [targets.htpy.whois]
120 domain = "htpy.app"
121 warn_days = 30
122
123 [targets.htpy.health]
124 url = "http://100.99.153.68:8080/archive/S_2"
125 timeout_secs = 10
126
127 [targets.htpy.health.expect]
128 status_code = 200
129 body_contains = "htpy"
130
131 [targets.htpy.tls]
132 host = "htpy.app"
133
134 [peers.astra]
135 address = "100.106.221.39:9100"
136 on_missing = "alert"
137 # token = "<astra's POM_API_TOKEN value>"
138
139 [peers.macbook]
140 address = "100.100.246.136:9100"
141 on_missing = "log"
142 # token = "<macbook's POM_API_TOKEN value>"
143
144 [alerts]
145 # postmark_token loaded from POM_POSTMARK_TOKEN env var
146 to = "pom-alerts@makenot.work"
147