289 lines
20 KiB
Markdown
289 lines
20 KiB
Markdown
# Canonical Content Dataset & Single Source of Truth for Design Samples
|
||
|
||
**Document Purpose:** Standardized dataset containing canonical profile data, active services, technical blog notes, engineering projects, hardware nodes, and interactive ASCII daemon assets. All design sample layouts (`homepage.html`, `split-panel.html`, `companion.html`, `document-flow.html`, `portfolio.html`, `homelab.html`, `public-services.html`, `sample-dashboard.html`, `sample-command-center.html`, `sample-dual-pane-explorer.html`) pull from this common material.
|
||
|
||
---
|
||
|
||
## 1. Persona & Identity (`whoami`)
|
||
|
||
| Field | Canonical Value |
|
||
| :--- | :--- |
|
||
| **Full Name** | `River Rooks` |
|
||
| **Primary Title** | `Systems Architecture & Cybersecurity` |
|
||
| **Academic / Institutional Role** | Cybersecurity student at the University of Alabama College of Engineering |
|
||
| **Specialization Areas** | Network forensics, self-hosted infrastructure, systems architecture, low-level tooling, bare-metal virtualization |
|
||
| **Physical Node Location** | Alabama, USA / `RACK-01` |
|
||
| **System Hostname Prompt** | `dev-blog@system:~$` / `agy --node-01` |
|
||
| **PGP Key Fingerprint** | `0x4A8E92F1C0B3D4E7` |
|
||
| **SSH Public Key Digest** | `SHA256:7uK+N04wP5rL/9z3Q8s1vX4dF6mK2pT8yB1wN0qZ8` |
|
||
| **Email Address** | `river@rooks.dev` (or `river@example.com`) |
|
||
| **Public Git Forge** | `https://git.rooks.dev` / `https://github.com` |
|
||
| **Matrix Chat Endpoint** | `@river:rooks.dev` |
|
||
|
||
### Biography Snippets
|
||
* **One-Line Meta:** `Cybersecurity student at UA College of Engineering focusing on network forensics, self-hosted infrastructure, and systems architecture.`
|
||
* **Extended Bio:** `Cybersecurity student and systems practitioner. Spends time architecting high-throughput homelab networks, reverse engineering IoT firmware, hardening FreeBSD/Linux hypervisors, and writing zero-allocation Unix utilities.`
|
||
|
||
### Active Tech Stack Tags
|
||
```text
|
||
[#network-forensics] [#docker-traefik] [#arch-linux] [#neovim] [#wireguard]
|
||
[#posix-sh] [#python] [#golang] [#rust] [#proxmox] [#truenas]
|
||
```
|
||
|
||
---
|
||
|
||
## 2. Services Directory & Infrastructure Catalog
|
||
|
||
### A. Core & Network Infrastructure
|
||
| Service Name | Category | Port / Protocol | Domain / Routing | Access | Description |
|
||
| :--- | :--- | :--- | :--- | :--- | :--- |
|
||
| **Traefik Proxy (v3.1)** | `#core` | `443/tcp` (TLS) | `https://proxy.rooks.dev` | `INTERNAL / ONLINE` | Edge HTTP reverse proxy and load balancer with dynamic Docker provider discovery and ACME Let's Encrypt TLS wildcard certificates. |
|
||
| **OPNsense Firewall (v24.7)** | `#core` | `VLAN 10 / Mgmt` | Gateway IP | `PROTECTED / ACTIVE` | Hardened FreeBSD firewall routing 10GbE traffic with VLAN isolation, Suricata IDS/IPS, and Unbound DNS resolvers. |
|
||
| **AdGuard Home** | `#dns` | `53/udp`, `853/tcp` | `https://dns.rooks.dev` | `INTERNAL / PROTECTED` | Network-wide DNS sinkhole filtering trackers and ad domains across all VLANs with DNS-over-HTTPS upstream security. |
|
||
| **WireGuard Mesh** | `#vpn` | `51820/udp` | Peer Mesh | `PUBLIC / 14 PEERS` | High-performance encrypted point-to-point VPN tunnel connecting remote laptops and mobile endpoints to homelab subnet. |
|
||
|
||
### B. Compute, Virtualization & Storage
|
||
| Service Name | Category | Port / Protocol | Domain / Routing | Access | Description |
|
||
| :--- | :--- | :--- | :--- | :--- | :--- |
|
||
| **Proxmox VE (v8.2)** | `#compute` | `8006/tcp` | `https://pve.rooks.dev` | `INTERNAL / ONLINE` | Enterprise hypervisor cluster hosting Debian LXC containers and KVM virtual machines with Ceph & ZFS backend. |
|
||
| **TrueNAS SCALE** | `#storage` | `NFS / SMB / 443` | `https://nas.rooks.dev` | `INTERNAL / ONLINE` | Primary network attached storage managing 48TB ZFS RaidZ2 array, dataset snapshots, NFS exports, and scrub jobs. |
|
||
| **Forgejo Git Server** | `#dev-git` | `3000/tcp`, `2222/ssh` | `https://git.rooks.dev` | `PUBLIC / OPEN` | Lightweight self-hosted Git forge hosting infrastructure-as-code repos, Ansible playbooks, dotfiles, and CTF archives. |
|
||
|
||
### C. Public Tools & Developer Utilities
|
||
| Service Name | Category | Port / Protocol | Domain / Routing | Access | Description |
|
||
| :--- | :--- | :--- | :--- | :--- | :--- |
|
||
| **CyberChef Workbench** | `#security-tool` | `443/tcp` | `https://chef.rooks.dev` | `PUBLIC / OPEN` | Cyber Swiss Army Knife for hex decoding, Base64 operations, regex extraction, cryptographic hashing, and CTF payload analysis. |
|
||
| **Stirling PDF Studio** | `#pdf-tools` | `443/tcp` | `https://pdf.rooks.dev` | `PUBLIC / OPEN` | Self-hosted document processing suite for merging, splitting, OCR text extraction, password encryption, and PDF page manipulation. |
|
||
| **HedgeDoc Collaborative** | `#markdown` | `443/tcp` | `https://pad.rooks.dev` | `PUBLIC / OPEN` | Real-time collaborative Markdown editor for technical specs, RFC drafts, and collaborative meeting notes. |
|
||
|
||
### D. Media, Reading & Content Automation
|
||
| Service Name | Category | Port / Protocol | Domain / Routing | Access | Description |
|
||
| :--- | :--- | :--- | :--- | :--- | :--- |
|
||
| **Jellyfin Media Portal** | `#media-video` | `8096/tcp` | `https://watch.rooks.dev` | `AUTH REQUIRED` | FOSS media streaming engine leveraging Intel QuickSync GPU hardware acceleration for 4K HDR transcoding. |
|
||
| **Arr Automation Suite** | `#automation` | `8989 / 7878 / 9696` | `https://arr.rooks.dev` | `INTERNAL / RUNNING` | Automated content indexing, Prowlarr indexer management, Sonarr/Radarr pipeline, and SABnzbd queue downloader. |
|
||
| **Audiobookshelf** | `#media-audio` | `443/tcp` | `https://listen.rooks.dev` | `INVITE ONLY` | Self-hosted audiobook and podcast streaming server with continuous playback position synchronization across mobile clients. |
|
||
| **Calibre-Web Library** | `#ebooks` | `443/tcp` | `https://read.rooks.dev` | `PUBLIC READ` | E-book library catalog with e-reader OPDS feed integration and in-browser reading support. |
|
||
|
||
### E. Security, Telemetry & Communications
|
||
| Service Name | Category | Port / Protocol | Domain / Routing | Access | Description |
|
||
| :--- | :--- | :--- | :--- | :--- | :--- |
|
||
| **Vaultwarden** | `#secrets` | `443/tcp` (E2EE) | `https://vault.rooks.dev` | `2FA / AUTH` | Lightweight Rust implementation of the Bitwarden API hosting encrypted credentials, SSH keys, and TOTP tokens. |
|
||
| **Prometheus & Grafana** | `#telemetry` | `3000 / 9090` | `https://mon.rooks.dev` | `INTERNAL / SCRAPING` | Time-series metric collection with Node Exporter, Telegraf agents, and live cluster performance dashboards. |
|
||
| **Uptime Kuma** | `#status` | `3001/tcp` | `https://status.rooks.dev` | `PUBLIC / 100% HEALTH`| Synthetic HTTP, Ping, and TCP health monitor broadcasting real-time service uptime alerts to Discord webhooks. |
|
||
| **Matrix Synapse** | `#messaging` | `8448/tcp` | `https://matrix.rooks.dev` | `FEDERATED / OPEN` | Federated Matrix homeserver for encrypted messaging, public security channels, and cross-server communication. |
|
||
|
||
---
|
||
|
||
## 3. Technical Notes & Blog Articles
|
||
|
||
### Post 1: Featured Article (Full Writeup)
|
||
* **Title:** `Reverse Engineering IoT Firmware: SPI Flash Extraction`
|
||
* **File / Path:** `~/notes/iot-firmware-spi-extraction.md`
|
||
* **Publication Date:** `2026-07-20`
|
||
* **Reading Time:** `8 mins`
|
||
* **Tags:** `[#firmware]`, `[#hardware]`, `[#security]`, `[#bus-pirate]`
|
||
* **Abstract:** In security audits of embedded systems, retrieving the firmware is the critical first step. When over-the-air updates are encrypted and debug ports (UART, JTAG) are disabled in production silicon, dumping physical SPI Flash memory becomes necessary. This writeup covers extracting firmware from an 8-pin SOP SPI flash chip using a Bus Pirate and flashrom to bypass bootloader lockdowns.
|
||
* **Code Snippet (`extract_firmware.sh`):**
|
||
```bash
|
||
#!/bin/sh
|
||
# Query the SPI flash details using flashrom via Bus Pirate
|
||
flashrom -p buspirate_spi:dev=/dev/ttyUSB0,spispeed=1M -r firmware_dump.bin
|
||
|
||
# Verify the integrity of the binary dump by comparing hashes
|
||
if [ $? -eq 0 ]; then
|
||
echo "Dump successful. Running md5sum..."
|
||
md5sum firmware_dump.bin
|
||
else
|
||
echo "Failed to read flash memory." >&2
|
||
exit 1
|
||
fi
|
||
```
|
||
|
||
### Post 2: Traefik Docker Architecture
|
||
* **Title:** `Building a High-Availability Traefik Router with Docker Compose`
|
||
* **File / Path:** `~/notes/ha-traefik-docker.md`
|
||
* **Publication Date:** `2026-07-15`
|
||
* **Reading Time:** `12 mins`
|
||
* **Tags:** `[#homelab]`, `[#docker-traefik]`, `[#networking]`
|
||
* **Abstract:** Architecting automated TLS wildcard certificate propagation, Docker provider label routing, zero-downtime container updates, and backend health-check failover routes.
|
||
|
||
### Post 3: Shell Portability
|
||
* **Title:** `POSIX sh vs. Bash: Portability in Modern Scripts`
|
||
* **File / Path:** `~/notes/posix-sh-vs-bash.md`
|
||
* **Publication Date:** `2026-07-10`
|
||
* **Reading Time:** `6 mins`
|
||
* **Tags:** `[#posix-sh]`, `[#shell]`, `[#unix]`
|
||
* **Abstract:** Analyzing edge-case incompatibilities, syntax overhead, eliminating bashisms, and writing fast, bulletproof bootstrapping scripts for Alpine and embedded targets conforming to IEEE Std 1003.1.
|
||
|
||
### Post 4: Low-Level CTF Exploitation
|
||
* **Title:** `CTF Write-up: Heap Exploitation in glibc 2.35`
|
||
* **File / Path:** `~/notes/ctf-heap-glibc-2-35.md`
|
||
* **Publication Date:** `2026-06-28`
|
||
* **Reading Time:** `15 mins`
|
||
* **Tags:** `[#ctf]`, `[#binary-exploitation]`, `[#security]`
|
||
* **Abstract:** Deconstructing modern glibc memory allocator defenses: tcache safe-linking pointer mangling, bypass primitives, and House of Apple file structure hijacking for arbitrary code execution.
|
||
|
||
### Post 5: Network Isolation
|
||
* **Title:** `Zero-Trust Network Isolation with WireGuard & OPNsense VLANs`
|
||
* **File / Path:** `~/notes/zero-trust-wireguard-opnsense.md`
|
||
* **Publication Date:** `2026-06-14`
|
||
* **Reading Time:** `10 mins`
|
||
* **Tags:** `[#networking]`, `[#wireguard]`, `[#security]`
|
||
* **Abstract:** Designing strict zone-based firewall rules across isolated VLANs (Management, Server DMZ, IoT, Trusted Clients) with point-to-point WireGuard cryptographic routing.
|
||
|
||
---
|
||
|
||
## 4. Engineering Projects & System Modules
|
||
|
||
### Module 1: Custom POSIX Shell Parser
|
||
* **Path / Identifier:** `/dev/posix-shell-parser`
|
||
* **Version:** `v1.2.0`
|
||
* **Primary Language:** `Lua`
|
||
* **Tags:** `[#lua]`, `[#ast-parser]`, `[#compilers]`
|
||
* **Summary:** A lightweight Lexer and AST parser written in Lua for parsing POSIX-compliant shell scripts. Optimized to avoid runtime heap allocations during tokenization, enabling real-time syntax coloring inside terminal buffers.
|
||
* **Code Snippet (`lexer.lua`):**
|
||
```lua
|
||
local function tokenize(src)
|
||
local tokens = {}
|
||
for pos, char in ipairs(src) do
|
||
if char == ";" or char == "|" then
|
||
table.insert(tokens, { type = "OPERATOR", value = char })
|
||
end
|
||
end
|
||
return tokens
|
||
end
|
||
```
|
||
|
||
### Module 2: WireGuard Mesh Topology Builder
|
||
* **Path / Identifier:** `/dev/wireguard-mesh`
|
||
* **Version:** `v0.8.4`
|
||
* **Primary Language:** `Python` / `POSIX sh`
|
||
* **Tags:** `[#networking]`, `[#wireguard]`, `[#automation]`
|
||
* **Summary:** Automated configuration generator that computes public/private key matrices and generates atomic configuration files for full-mesh WireGuard overlay networks spanning cloud VMs and homelab servers.
|
||
|
||
### Module 3: Zero-Allocation Logger (Go)
|
||
* **Path / Identifier:** `/dev/zero-alloc-logger`
|
||
* **Version:** `v2.1.1`
|
||
* **Primary Language:** `Go`
|
||
* **Tags:** `[#go]`, `[#performance]`, `[#systems]`
|
||
* **Summary:** A high-throughput structured JSON logger utilizing `sync.Pool` memory recycling to eliminate GC pause overhead during disk I/O (>500,000 log events/second).
|
||
|
||
### Module 4: Embedded Kernel Boot Strap
|
||
* **Path / Identifier:** `/dev/kernel-bootstrap`
|
||
* **Version:** `v0.1.0`
|
||
* **Primary Language:** `ARM Cortex Assembly` / `C`
|
||
* **Tags:** `[#arm-cortex]`, `[#assembly]`, `[#embedded]`
|
||
* **Summary:** Bare-metal boot sector and initial C runtime setup for ARM Cortex-M microcontrollers. Configures vector table offset registers, performs memory section copying, and initializes early UART debugging output.
|
||
|
||
### Module 5: Traefik Cloudflare Dynamic DNS Daemon
|
||
* **Path / Identifier:** `/dev/ddns-daemon`
|
||
* **Version:** `v1.0.2`
|
||
* **Primary Language:** `Python` / `Docker SDK`
|
||
* **Tags:** `[#docker]`, `[#traefik]`, `[#cloudflare]`
|
||
* **Summary:** Background controller daemon monitoring Docker container state transitions and synchronizing container label subdomains with Cloudflare DNS A/AAAA records.
|
||
|
||
---
|
||
|
||
## 5. Physical Hardware Nodes & Telemetry
|
||
|
||
```text
|
||
+-------------------+ 10GbE SFP+ +-------------------+
|
||
| gw-node01.lan | <==================> | pve-node02.lan |
|
||
| OPNsense 24.7 | | Proxmox VE 8.2 |
|
||
| Intel N100 (4C/4T)| | AMD 5900X (12C/24T|
|
||
+-------------------+ +-------------------+
|
||
|| ||
|
||
|| 10GbE Trunk || 10GbE NFS/SMB
|
||
\/ \/
|
||
+--------------------------------------------------------------+
|
||
| nas-node03.lan |
|
||
| TrueNAS SCALE (48TB RaidZ2 Pool) |
|
||
| Intel Core i5-12400 (6C/12T) / 64GB ECC |
|
||
+--------------------------------------------------------------+
|
||
```
|
||
|
||
| Hostname | Role / Operating System | Hardware Specifications | Nominal Load |
|
||
| :--- | :--- | :--- | :--- |
|
||
| **`gw-node01.lan`** | Edge Gateway / OPNsense 24.7 | Intel N100 (4C/4T), 16GB DDR5, 4x 2.5GbE I226-V | CPU: 18% \| RAM: 32% |
|
||
| **`pve-node02.lan`** | Hypervisor / Proxmox VE 8.2 | AMD Ryzen 9 5900X (12C/24T), 128GB ECC DDR4, 2x 2TB NVMe | CPU: 42% \| RAM: 68% |
|
||
| **`nas-node03.lan`** | Storage / TrueNAS SCALE | Intel Core i5-12400 (6C/12T), 64GB ECC, 6x 16TB Enterprise SAS | CPU: 14% \| RAM: 82% (ZFS ARC) |
|
||
|
||
---
|
||
|
||
## 6. ASCII Mascot & Daemon Artframes (`sys-daemon`)
|
||
|
||
### Frame 1: Idle / Scanning
|
||
```text
|
||
.-----------------.
|
||
/ ^ ^ ^ /|
|
||
/ (_) (_) (_) / |
|
||
/__________________/ |
|
||
| ___ ___ | |
|
||
| [o_o] [o_o] | |
|
||
| `-' `-' | |
|
||
| ______ | |
|
||
| / \ | /
|
||
| | -- | | /
|
||
| \____/ |/
|
||
`------------------'
|
||
```
|
||
|
||
### Frame 2: Active / Alert
|
||
```text
|
||
.-----------------.
|
||
/ ^ ^ ^ /|
|
||
/ (_) (_) (_) / |
|
||
/__________________/ |
|
||
| ___ ___ | |
|
||
| [-_-] [-_-] | |
|
||
| `-' `-' | |
|
||
| ______ | |
|
||
| / \ | /
|
||
| | O | | /
|
||
| \____/ |/
|
||
`------------------'
|
||
```
|
||
|
||
### Frame 3: Scroll-Tracker Cat Daemon
|
||
```text
|
||
/\___/\
|
||
( o o ) sys-daemon
|
||
( =^= ) [TRACKING]
|
||
(---)
|
||
```
|
||
|
||
---
|
||
|
||
## 7. Sample Pages Material Mapping Matrix
|
||
|
||
This matrix specifies which components and data entries from this canonical document are presented in each sample layout:
|
||
|
||
| Sample File | Layout Style | Persona / Bio | Services Included | Notes / Articles | Project Modules | Nodes & Telemetry | Mascot / Daemon |
|
||
| :--- | :--- | :---: | :---: | :---: | :---: | :---: | :---: |
|
||
| [`index.html`](file:///home/venus/code/blog/index.html) | Root Minimalist Business Card | Full whoami | — | — | Active Stack Tags | Terminal stdout | — |
|
||
| [`samples/homepage.html`](file:///home/venus/code/blog/samples/homepage.html) | Sample 1: Developer Homepage | Profile header | — | Post 1 (Full) + Archive Index (2,3,4) | — | — | — |
|
||
| [`samples/split-panel.html`](file:///home/venus/code/blog/samples/split-panel.html) | Sample 2: Split Panel Feed | — | — | — | Modules 1–5 | Status row | Frame 1/2 Animated |
|
||
| [`samples/companion.html`](file:///home/venus/code/blog/samples/companion.html) | Sample 3: Companion Layout | — | — | — | Modules 1–5 | Terminal card | Frame 3 Cat Daemon |
|
||
| [`samples/document-flow.html`](file:///home/venus/code/blog/samples/document-flow.html) | Sample 4: Continuous Document Flow | Header banner | — | Post 1 Snippets | Modules 1–5 in detail | — | Frame 3 Scroll Tracker |
|
||
| [`samples/portfolio.html`](file:///home/venus/code/blog/samples/portfolio.html) | Sample 5: Portfolio Card | Full whoami | — | — | Active Stack Tags | Terminal stdout | — |
|
||
| [`samples/homelab.html`](file:///home/venus/code/blog/samples/homelab.html) | Sample 6: Homelab Lander | Header banner | All Core & Compute (12 services) | — | — | Nodes 1–3 + ASCII Topology | Terminal logs |
|
||
| [`samples/public-services.html`](file:///home/venus/code/blog/samples/public-services.html) | Sample 7: Public Portal | Header banner | All Public Utilities (9 services) | — | — | Keys & PGP box | — |
|
||
| [`samples/sample-dashboard.html`](file:///home/venus/code/blog/samples/sample-dashboard.html) | Sample 8: 3-Tile Workspace | Center tile bio | Left tile services | Right tile archive | Center tile projects | Status bar | Vim command bar |
|
||
| [`samples/sample-command-center.html`](file:///home/venus/code/blog/samples/sample-command-center.html) | Sample 9: Tabbed Command Center | Tab 3 (Resume) | Tab 1 (Services) | Tab 2 (Blog Notes) | Tab 3 (Projects) | Tab 1 (Nodes) | Status dots |
|
||
| [`samples/sample-dual-pane-explorer.html`](file:///home/venus/code/blog/samples/sample-dual-pane-explorer.html) | Sample 10: Helix Tree Explorer | Sidebar links | Services subtree | Notes subtree | Modules subtree | Status bar | Sidebar companion |
|
||
| [`samples/blog-lander-stream.html`](file:///home/venus/code/blog/samples/blog-lander-stream.html) | Blog Lander 1: Minimalist Stream | Header & Bio | — | Posts 1–5 (Linear Feed & Topic Filter) | — | — | — |
|
||
| [`samples/blog-lander-terminal.html`](file:///home/venus/code/blog/samples/blog-lander-terminal.html) | Blog Lander 2: Terminal Directory Index | Header & Subtitle | — | Posts 1–5 (Dense Tabular Index & Code Inspection) | — | Terminal Status Bar | — |
|
||
| [`samples/blog-lander-cards.html`](file:///home/venus/code/blog/samples/blog-lander-cards.html) | Blog Lander 3: Curated Dispatch & Cards | Profile & Bio | — | Post 1 (Pinned Lead Card) + Posts 2–5 (Cards Grid) | — | — | — |
|
||
| [`samples/service-gateway-manifesto.html`](file:///home/venus/code/blog/samples/service-gateway-manifesto.html) | Gateway Lander 1: Manifesto & System Hub | Hero Manifesto & Bio | 6 Core/Public Services | Posts 1–3 Excerpts | — | Status banner | — |
|
||
| [`samples/service-gateway-terminal.html`](file:///home/venus/code/blog/samples/service-gateway-terminal.html) | Gateway Lander 2: Host Console & MOTD Router | MOTD Narrative & Specs | 6 Tabular Services | Posts 1–5 Log Lines | — | Hardware summary | — |
|
||
| [`samples/service-gateway-tiling.html`](file:///home/venus/code/blog/samples/service-gateway-tiling.html) | Gateway Lander 3: Tiling Workspace Hub | Hero Landing Tile | 5 Grid Services (Blog Core Tile) | Posts 1–4 Sublinks | — | Nodes 1–3 Live Telemetry | — |
|
||
| [`samples/blog-tiling-lead.html`](file:///home/venus/code/blog/samples/blog-tiling-lead.html) | Tiling Blog 1: Hero Dispatch & Dual Stream | Hero Tile & Topic Filter | — | Post 1 (Lead with Code) + Posts 2–5 (Feed) | — | Archive Telemetry | — |
|
||
| [`samples/blog-tiling-split.html`](file:///home/venus/code/blog/samples/blog-tiling-split.html) | Tiling Blog 2: Asymmetric 3-Tile Workspace | Hero Tile & Grep Bar | — | Posts 1–3 (Featured) + Posts 4–5 (Wire) | — | Curated Tracks | — |
|
||
| [`samples/blog-tiling-catalog.html`](file:///home/venus/code/blog/samples/blog-tiling-catalog.html) | Tiling Blog 3: Dual-Lead Grid & Inspection Feed | Hero Tile & Badges | — | Posts 1–2 (Dual Leads) + Posts 3–5 (Table) | — | Inline Note Inspector | — |
|
||
| [`samples/article-tiling-firmware.html`](file:///home/venus/code/blog/samples/article-tiling-firmware.html) | Article 1: IoT Firmware Extraction | Header & Meta | — | Post 1 (Full Markdown, Code, Tables, Alerts) | — | Winbond 25Q64 specs | — |
|
||
| [`samples/article-tiling-traefik.html`](file:///home/venus/code/blog/samples/article-tiling-traefik.html) | Article 2: HA Traefik Router | Header & Meta | — | Post 2 (Full Markdown, Compose YAML, ASCII Diagram) | — | pve-node02.lan specs | — |
|
||
| [`samples/article-tiling-heap.html`](file:///home/venus/code/blog/samples/article-tiling-heap.html) | Article 3: CTF Heap Exploitation | Header & Meta | — | Post 4 (Full Markdown, GDB session, C payload, Formula) | — | glibc 2.35 runtime | — |
|
||
|
||
|
||
|