<feed xmlns='http://www.w3.org/2005/Atom'>
<title>console.git/statuspage/README.md, branch master</title>
<subtitle>Monitor for my server
</subtitle>
<id>http://cgit.dandokmang.com/console.git/atom?h=master</id>
<link rel='self' href='http://cgit.dandokmang.com/console.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://cgit.dandokmang.com/console.git/'/>
<updated>2026-07-01T07:52:22Z</updated>
<entry>
<title>Add pf visibility and a wg-quick watcher check, add a neutral row status</title>
<updated>2026-07-01T07:52:22Z</updated>
<author>
<name>batsumaru</name>
<email></email>
</author>
<published>2026-07-01T07:52:22Z</published>
<link rel='alternate' type='text/html' href='http://cgit.dandokmang.com/console.git/commit/?id=a034c6724381b172ba4b6d36357682c44f18b8de'/>
<id>urn:sha1:a034c6724381b172ba4b6d36357682c44f18b8de</id>
<content type='text'>
checks/pf.sh reports pf enabled/disabled, state table usage (warn/down
as it nears the configured limit), and the loaded filter/nat rule
count, then lists each active rule as its own row for at-a-glance
visibility into what's actually being enforced.

Those rule rows use a new "info" status (gray square) rather than
"ok" - they're not a health check on any individual rule, so a green
square there would misleadingly imply otherwise. render.sh maps
info -&gt; gray; anything else still falls back to red.

checks/wg-watcher.sh checks the route-monitor process wg-quick spawns
to react to WAN interface/address changes - it isn't rc.d-managed, so
there's no `service status` for it, hence the new proc_running helper
in lib/common.sh (pgrep -f based).

Co-Authored-By: Claude Sonnet 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Document the core.hooksPath setup for new clones</title>
<updated>2026-07-01T07:37:45Z</updated>
<author>
<name>batsumaru</name>
<email></email>
</author>
<published>2026-07-01T07:37:45Z</published>
<link rel='alternate' type='text/html' href='http://cgit.dandokmang.com/console.git/commit/?id=bb3567aa4bd5d03fcd0fa74eea42381f159227b0'/>
<id>urn:sha1:bb3567aa4bd5d03fcd0fa74eea42381f159227b0</id>
<content type='text'>
Co-Authored-By: Claude Sonnet 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Auto-discover jails and add WireGuard peer info to status page</title>
<updated>2026-07-01T07:25:42Z</updated>
<author>
<name>batsumaru</name>
<email></email>
</author>
<published>2026-07-01T07:25:42Z</published>
<link rel='alternate' type='text/html' href='http://cgit.dandokmang.com/console.git/commit/?id=358106287b28bffa8505b67fe623f77a3fbceae3'/>
<id>urn:sha1:358106287b28bffa8505b67fe623f77a3fbceae3</id>
<content type='text'>
Replace the per-jail check scripts with checks/jails.sh, which lists
running jails via jls and resolves each one's IPv4 (falling back to
jexec+ifconfig for VNET jails, which don't set the ip4.addr jail
parameter). New jails now show up without adding a script; the
trade-off is a stopped jail just disappears rather than showing down,
since jls only lists what's running.

checks/wireguard.sh now also reports each configured peer's allowed-IP
and time since last handshake, parsed from `wg show wg0 dump`.

Co-Authored-By: Claude Sonnet 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>Split monolithic status check.sh into modular check scripts</title>
<updated>2026-07-01T06:38:51Z</updated>
<author>
<name>batsumaru</name>
<email></email>
</author>
<published>2026-07-01T06:38:51Z</published>
<link rel='alternate' type='text/html' href='http://cgit.dandokmang.com/console.git/commit/?id=dfec6df2fb876fadb20d24a5bd8f4b4400a0f659'/>
<id>urn:sha1:dfec6df2fb876fadb20d24a5bd8f4b4400a0f659</id>
<content type='text'>
Replace the single-file prototype with independently-addable check
scripts (checks/*.sh) that each emit JSONL rows, a shared helper lib,
and one orchestrator/renderer (render.sh) that groups rows by section
and writes the static status page. A broken check script now shows up
as a down/warn row instead of crashing the whole render.

Co-Authored-By: Claude Sonnet 5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
