From dfdb0ce732f43710c674b915669446b5239c6edb Mon Sep 17 00:00:00 2001 From: boban Date: Sat, 20 Jun 2026 23:26:15 +0200 Subject: [PATCH] =?UTF-8?q?docs(wg):=20SP2=20Phase=201=20plan=20=E2=80=94?= =?UTF-8?q?=20live-status=20dashboard=20page?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- ...026-06-20-wireguard-dashboard-p1-status.md | 752 ++++++++++++++++++ 1 file changed, 752 insertions(+) create mode 100644 docs/superpowers/plans/2026-06-20-wireguard-dashboard-p1-status.md diff --git a/docs/superpowers/plans/2026-06-20-wireguard-dashboard-p1-status.md b/docs/superpowers/plans/2026-06-20-wireguard-dashboard-p1-status.md new file mode 100644 index 0000000..4cc3c8d --- /dev/null +++ b/docs/superpowers/plans/2026-06-20-wireguard-dashboard-p1-status.md @@ -0,0 +1,752 @@ +# WireGuard dashboard — Phase 1 (live status) Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** A read-only `/wireguard` dashboard page showing live WireGuard status — gate state, server info, and connected peers (handshake, endpoint, rx/tx) — fed by a periodic host collector through the `./run` bridge. + +**Architecture:** A new `clusev-wg.sh collect` subcommand (run by a systemd `.timer` every 5 s) writes `run/wg-status.json`. A PHP `WgStatus` reader parses + validates that file; a full-page Livewire component renders it and `wire:poll`s every 5 s. No writes, no DB, no chart (those are P2–P4). Container never touches the host — same constraint as SP1. + +**Tech Stack:** bash + `wg`/`iptables`/`systemctl` (host), systemd `.timer`/`.service`, Laravel 13 + Livewire 3, Tailwind v4 tokens, Pint, shellcheck. Spec: `docs/superpowers/specs/2026-06-20-wireguard-dashboard-sp2-design.md` (§0 Bridge 1, §1, §2). + +**Run tooling (R8):** tests `docker compose --project-directory /home/nexxo/clusev exec -T -u 1002:1002 app sh -lc 'mkdir -p /tmp/views-test && VIEW_COMPILED_PATH=/tmp/views-test php artisan test --filter='`; Pint `… vendor/bin/pint `; shellcheck `docker run --rm -v "$PWD:/mnt" -w /mnt koalaman/shellcheck:stable