Infrastructure
Core MRDTech platform, network, security, automation, and operations documentation.
The sidebar lists pages assigned to this category through WikiDocs frontmatter. No nested document folders are used.
WikiDocs category sidebar patch durability
WikiDocs uses a custom MRDTech category-frontmatter sidebar patch. Stock zavy86/wikidocs does not understand the category: field used by the document files, so replacing the service with the bare upstream image will flatten the sidebar again.
Durable deployment details:
- Compose stack:
/data/compose/107/docker-compose.yml - Compose project:
wikidocs - Custom image:
mrdtech/wikidocs-category:20260728 - Build context:
/home/michaeld/stacks/wikidocs-category-patch - Dockerfile:
/home/michaeld/stacks/wikidocs-category-patch/Dockerfile - Patched files baked into the image:
/var/www/localhost/htdocs/classes/Document.class.php/var/www/localhost/htdocs/template.inc.php
Required patch markers:
Document::getMetadata()Document::stripMetadata()Document::getCategory()Document::indexByCategory()- template logic using
Document::getCategory($DOC->ID)
Expected verification after any rebuild or recreate:
cd /data/compose/107
docker compose -p wikidocs up -d --force-recreate wikidocs
docker inspect wikidocs-wikidocs-1 --format 'Image={{.Config.Image}} ImageID={{.Image}}'
docker exec wikidocs-wikidocs-1 sh -lc 'grep -nE "getMetadata|stripMetadata|getCategory|indexByCategory|current_category" /var/www/localhost/htdocs/classes/Document.class.php /var/www/localhost/htdocs/template.inc.php'Rendered expectation:
- Homepage/top sidebar has exactly 5 top-level items: About Michael, Hacker Culture, Infrastructure, Projects, Runbooks.
Infrastructurerenders 19 categorized child pages.Projectsrenders 3 categorized child pages.- No categorized page shows raw
category:frontmatter.
Do not change the image back to zavy86/wikidocs unless the category patch is also preserved another way. The previous regression happened because the patch lived only inside the disposable container filesystem.
- AdGuard and Unbound DNS
- Agent Context / Current State
- Architecture Overview
- Cloudflare Zero Trust and Edge Protection
- Credential Storage Map
- Decision Log
- Docker Compose Templates
- Actualbudget
- AdGuard Home Sync
- Authelia
- Cloudflare Ddns
- Crowdsec
- Cryptgeon
- Dukuwiki
- Excalidraw
- Fail2Ban
- Firefox
- Gotify
- Grocy
- Guacamole
- Homarr
- Homebox
- IT Tools
- Koffan
- Memos
- NOC Dashboard 1
- Nextcloud
- Nextcloudaio
- Nginx Proxy Manager
- Overseerr
- Pingvin
- Privatebin
- Pwndrop
- Seafile
- Speedtest Tracker
- Tandoor
- Ubuntu
- Uptime Kuma
- Vikunja
- Wallos
- Watchtower
- WikiDocs
- Wikijs
- Wizarr
- Wordpress
- Wygiwyh Server
- Home Assistant Configuration
- Home Lab
- Known Issues and Quirks
- NOC Dashboard
- Naming Conventions and Glossary
- Proxmox, PBS, QNAP, and Backup Architecture
- SIEM and Threat Detection: Wazuh plus CrowdSec
- Scheduled Jobs Index
- Security
- UniFi Network and VLAN Segmentation
- mrdtech-mcp-gateway
- n8n Self-Healing Infrastructure