diff --git a/Netgrimoire/Green-Grimoire/Overview.md b/Netgrimoire/Green-Grimoire/Overview.md index aef4eb9..873022a 100644 --- a/Netgrimoire/Green-Grimoire/Overview.md +++ b/Netgrimoire/Green-Grimoire/Overview.md @@ -46,7 +46,7 @@ Data lives at `/data/nfs/Baxter/Green/` with two libraries: Clips and Movies. PocketStash (port 9998) is a separate Stash instance that maintains a curated subset for travel. Before a trip, `syncoid` pushes `vault/Green/Pocket` to the Pocket Grimoire laptop. The Pocket instance runs in read-only travel mode — no writes while traveling. -See [Stash Integration](/Pocket-Grimoire/Software/Stash-Integration) in Pocket Grimoire docs. +See [Stash Integration](/Netgrimoire/Pocket-Grimoire/Software/Stash-Integration) in Pocket Grimoire docs. --- @@ -54,5 +54,5 @@ See [Stash Integration](/Pocket-Grimoire/Software/Stash-Integration) in Pocket G | | | |---|---| -| [Stash Management](/Green-Grimoire/Library/Stash-Management) | Library config, scrapers, metadata workflow | -| [VHS Restoration](/Green-Grimoire/Scripts/VHS-Restoration) | Encoding, deinterlace, restoration scripts | +| [Stash Management](/Netgrimoire/Green-Grimoire/Library/Stash-Management) | Library config, scrapers, metadata workflow | +| [VHS Restoration](/Netgrimoire/Green-Grimoire/Scripts/VHS-Restoration) | Encoding, deinterlace, restoration scripts | diff --git a/Netgrimoire/Gremlin-Grimoire/Overview.md b/Netgrimoire/Gremlin-Grimoire/Overview.md index 5df87a5..f5172bd 100644 --- a/Netgrimoire/Gremlin-Grimoire/Overview.md +++ b/Netgrimoire/Gremlin-Grimoire/Overview.md @@ -49,7 +49,7 @@ Gremlin is a stack of four services running together on `docker4`, all pinned to | `qwen2.5-coder:7b` | ~5 GB | Code review, YAML audits, compose analysis | | `llama3.2:3b` | ~2 GB | Alert triage, Q&A, summarization | -Models must be pulled before workflows run. See [Ollama Model Management](/Gremlin-Grimoire/Runbooks/Model-Management). +Models must be pulled before workflows run. See [Ollama Model Management](/Netgrimoire/Gremlin-Grimoire/Runbooks/Model-Management). --- @@ -57,9 +57,9 @@ Models must be pulled before workflows run. See [Ollama Model Management](/Greml | | | |---|---| -| [Stack](/Gremlin-Grimoire/Stack/Build-Config) | Full build config, volumes, env vars, compose YAML | -| [Workflows](/Gremlin-Grimoire/Workflows/Forgejo-Audit) | All n8n workflows — architecture, patterns, gotchas | -| [Runbooks](/Gremlin-Grimoire/Runbooks/Deploy) | Deploy, model management, troubleshooting | +| [Stack](/Netgrimoire/Gremlin-Grimoire/Stack/Build-Config) | Full build config, volumes, env vars, compose YAML | +| [Workflows](/Netgrimoire/Gremlin-Grimoire/Workflows/Forgejo-Audit) | All n8n workflows — architecture, patterns, gotchas | +| [Runbooks](/Netgrimoire/Gremlin-Grimoire/Runbooks/Deploy) | Deploy, model management, troubleshooting | --- diff --git a/Netgrimoire/Keystone-Grimoire/Mail/MailCow-Overview.md b/Netgrimoire/Keystone-Grimoire/Mail/MailCow-Overview.md index f063404..b64bca9 100644 --- a/Netgrimoire/Keystone-Grimoire/Mail/MailCow-Overview.md +++ b/Netgrimoire/Keystone-Grimoire/Mail/MailCow-Overview.md @@ -71,10 +71,10 @@ $config['imap_conn_options'] = ['ssl' => ['verify_peer' => false, 'verify_peer_n ## Related Docs -- [MXRoute Integration](/Keystone-Grimoire/Mail/MXRoute-Integration) -- [Domain Setup](/Keystone-Grimoire/Mail/Domain-Setup) -- [MailCow Hardening](/Keystone-Grimoire/Mail/Hardening) -- [MailCow Backup](/Vault-Grimoire/Backups/MailCow-Backup) +- [MXRoute Integration](/Netgrimoire/Keystone-Grimoire/Mail/MXRoute-Integration) +- [Domain Setup](/Netgrimoire/Keystone-Grimoire/Mail/Domain-Setup) +- [MailCow Hardening](/Netgrimoire/Keystone-Grimoire/Mail/Hardening) +- [MailCow Backup](/Netgrimoire/Vault-Grimoire/Backups/MailCow-Backup) --- diff --git a/Netgrimoire/Keystone-Grimoire/Overview.md b/Netgrimoire/Keystone-Grimoire/Overview.md index ba8f0ee..6bd2ac6 100644 --- a/Netgrimoire/Keystone-Grimoire/Overview.md +++ b/Netgrimoire/Keystone-Grimoire/Overview.md @@ -20,10 +20,10 @@ The Keystone Grimoire holds the architectural blueprints of Netgrimoire — how | Section | Contents | |---------|----------| -| [Hosts](/Keystone-Grimoire/Hosts/Host-Inventory) | Node inventory, roles, IPs, pinned services, hardware | -| [Network](/Keystone-Grimoire/Network/Topology) | Topology, VLANs, DNS, WireGuard, OpenVPN, port assignments | -| [Docker](/Keystone-Grimoire/Docker/Swarm-Template) | Swarm template standard, overlay network, label rules, volume paths | -| [Mail](/Keystone-Grimoire/Mail/MailCow-Overview) | MailCow, MXRoute, DKIM, SRS, domain setup, hardening | +| [Hosts](/Netgrimoire/Keystone-Grimoire/Hosts/Host-Inventory) | Node inventory, roles, IPs, pinned services, hardware | +| [Network](/Netgrimoire/Keystone-Grimoire/Network/Topology) | Topology, VLANs, DNS, WireGuard, OpenVPN, port assignments | +| [Docker](/Netgrimoire/Keystone-Grimoire/Docker/Swarm-Template) | Swarm template standard, overlay network, label rules, volume paths | +| [Mail](/Netgrimoire/Keystone-Grimoire/Mail/MailCow-Overview) | MailCow, MXRoute, DKIM, SRS, domain setup, hardening | --- diff --git a/Netgrimoire/Overview.md b/Netgrimoire/Overview.md index 7c7bac8..298c287 100644 --- a/Netgrimoire/Overview.md +++ b/Netgrimoire/Overview.md @@ -14,20 +14,7 @@ dateCreated: 2026-04-12T00:00:00.000Z Netgrimoire is the primary self-hosted homelab infrastructure running on `znas` and a cluster of worker nodes under Docker Swarm. It is the foundation every other grimoire depends on. -This section is intentionally high-level — the spine. Detailed technical content lives in the specialized grimoires. - ---- - -## Infrastructure at a Glance - -| Host | Role | IP | Runtime | -|------|------|----|---------| -| znas | NAS + Primary Swarm manager | 192.168.5.10 | Docker Swarm manager + Compose | -| docker2 | VPN gateway | — | Docker Compose | -| docker3 | LibreNMS host | — | Docker Compose | -| docker4 (hermes) | Mail + AI worker | 192.168.5.16 | Docker Compose + Swarm worker | -| docker5 | Media host | 192.168.5.18 | Docker Compose | -| Pi nodes | Swarm workers + vault nodes | various | Docker Swarm workers | +This section is the spine — intentionally high-level. All detailed technical content lives in the specialized grimoires nested here. --- @@ -35,14 +22,27 @@ This section is intentionally high-level — the spine. Detailed technical conte | Grimoire | What Lives There | |----------|-----------------| -| [Keystone Grimoire](/Keystone-Grimoire/Overview) | Architecture, network topology, Caddy, Docker template, DNS, mail infrastructure | -| [Vault Grimoire](/Vault-Grimoire/Overview) | ZFS storage, Kopia backups, NFS exports, offsite replication | -| [Ward Grimoire](/Ward-Grimoire/Overview) | OPNsense, CrowdSec, Authentik, Authelia, LLDAP, WireGuard, blocklists | -| [Watch Grimoire](/Watch-Grimoire/Overview) | Uptime Kuma, Beszel, LibreNMS, Grafana, Graylog, ntfy, DIUN | -| [Gremlin Grimoire](/Gremlin-Grimoire/Overview) | Ollama, Open WebUI, Qdrant, n8n, AI workflows | -| [Shadow Grimoire](/Shadow-Grimoire/Overview) | Usenet, torrents, arr stack, indexers, media acquisition | -| [Green Grimoire](/Green-Grimoire/Overview) | Adult media: Stash, Jellyfinx, Namer, Whisparr | -| [Pocket Grimoire](/Pocket-Grimoire/Overview) | Portable laptop lab, offline-first, travel vault node | +| [Keystone Grimoire](/Netgrimoire/Keystone-Grimoire/Overview) | Architecture, network topology, Caddy, Docker template, DNS, mail | +| [Vault Grimoire](/Netgrimoire/Vault-Grimoire/Overview) | ZFS storage, Kopia backups, NFS exports, offsite replication | +| [Ward Grimoire](/Netgrimoire/Ward-Grimoire/Overview) | OPNsense, CrowdSec, Authentik, Authelia, LLDAP, WireGuard, blocklists | +| [Watch Grimoire](/Netgrimoire/Watch-Grimoire/Overview) | Uptime Kuma, Beszel, LibreNMS, Grafana, Graylog, ntfy, DIUN | +| [Gremlin Grimoire](/Netgrimoire/Gremlin-Grimoire/Overview) | Ollama, Open WebUI, Qdrant, n8n, AI workflows | +| [Shadow Grimoire](/Netgrimoire/Shadow-Grimoire/Overview) | Usenet, torrents, arr stack, indexers, media acquisition | +| [Green Grimoire](/Netgrimoire/Green-Grimoire/Overview) | Adult media: Stash, Jellyfinx, Namer, Whisparr | +| [Pocket Grimoire](/Netgrimoire/Pocket-Grimoire/Overview) | Portable laptop lab, offline-first, travel vault node | + +--- + +## Infrastructure at a Glance + +| Host | Role | IP | Runtime | +|------|------|----|---------| +| znas | NAS + Primary Swarm manager | 192.168.5.10 | Swarm manager + Compose | +| docker2 | VPN gateway | — | Compose only | +| docker3 | LibreNMS | — | Compose only | +| docker4 (hermes) | Mail + AI worker | 192.168.5.16 | Compose + Swarm worker | +| docker5 | Media host | 192.168.5.18 | Compose only | +| Pi nodes | Swarm workers + vault nodes | various | Swarm workers | --- @@ -57,7 +57,7 @@ This section is intentionally high-level — the spine. Detailed technical conte | | | |---|---| | 📋 [Service Catalog](/Netgrimoire/Service-Catalog) | Full service inventory with status and grimoire assignment | -| 📖 [Documentation Standards](/Netgrimoire/Conventions/Doc-Standards) | How docs are structured, named, and maintained | -| 📄 [Service Doc Template](/Netgrimoire/Conventions/Service-Doc-Template) | Template for writing new service docs | +| 📖 [Doc Standards](/Netgrimoire/Conventions/Doc-Standards) | How docs are structured, named, and maintained | +| 📄 [Service Doc Template](/Netgrimoire/Conventions/Service-Doc-Template) | Template for new service docs | | 🎨 [Wiki Theme](/Netgrimoire/Conventions/Theme) | CSS customization and branding | | 🔍 [Audit Reports](/Netgrimoire/Audits/README) | Gremlin-generated weekly YAML audits | diff --git a/Netgrimoire/Pocket-Grimoire/Overview.md b/Netgrimoire/Pocket-Grimoire/Overview.md index a907de1..30f5bb9 100644 --- a/Netgrimoire/Pocket-Grimoire/Overview.md +++ b/Netgrimoire/Pocket-Grimoire/Overview.md @@ -51,7 +51,7 @@ Pocket Grimoire receives a `syncoid` push from `znas` before each trip: syncoid znas:vault/Green/Pocket pocket:/srv/greenpg/Green ``` -This makes it an offsite encrypted backup node whenever it leaves home. See [Vault Architecture](/Vault-Grimoire/Offsite/Vault-Architecture). +This makes it an offsite encrypted backup node whenever it leaves home. See [Vault Architecture](/Netgrimoire/Vault-Grimoire/Offsite/Vault-Architecture). --- @@ -59,6 +59,6 @@ This makes it an offsite encrypted backup node whenever it leaves home. See [Vau | | | |---|---| -| [Hardware](/Pocket-Grimoire/Hardware/Inventory) | Full hardware list, power kit, storage layout | -| [Software](/Pocket-Grimoire/Software/Stack) | Services, Docker config, ZFS pool | -| [Sync & Deployment](/Pocket-Grimoire/Sync/Pre-Travel-Sync) | Pre-travel checklist, syncoid, deployment guide | +| [Hardware](/Netgrimoire/Pocket-Grimoire/Hardware/Inventory) | Full hardware list, power kit, storage layout | +| [Software](/Netgrimoire/Pocket-Grimoire/Software/Stack) | Services, Docker config, ZFS pool | +| [Sync & Deployment](/Netgrimoire/Pocket-Grimoire/Sync/Pre-Travel-Sync) | Pre-travel checklist, syncoid, deployment guide | diff --git a/Netgrimoire/Pocket-Grimoire/Sync/Pre-Travel-Sync.md b/Netgrimoire/Pocket-Grimoire/Sync/Pre-Travel-Sync.md index 2b79b5a..a1eaca3 100644 --- a/Netgrimoire/Pocket-Grimoire/Sync/Pre-Travel-Sync.md +++ b/Netgrimoire/Pocket-Grimoire/Sync/Pre-Travel-Sync.md @@ -47,4 +47,4 @@ ssh pocket "zpool status pocket-green" ## Deployment Guide -See original [Deployment Guide](/Pocket-Grimoire/Sync/Deployment-Guide) for full from-scratch build procedure. +See original [Deployment Guide](/Netgrimoire/Pocket-Grimoire/Sync/Deployment-Guide) for full from-scratch build procedure. diff --git a/Netgrimoire/Vault-Grimoire/Offsite/Vault-Architecture.md b/Netgrimoire/Vault-Grimoire/Offsite/Vault-Architecture.md index f9fd1fb..4b37385 100644 --- a/Netgrimoire/Vault-Grimoire/Offsite/Vault-Architecture.md +++ b/Netgrimoire/Vault-Grimoire/Offsite/Vault-Architecture.md @@ -41,4 +41,4 @@ The vault container (`vault.yaml`) runs a Kopia server on port 51516 that serves Pocket Grimoire's ZFS pool (`pocket-green` at `/srv/greenpg/`) receives a `syncoid` push from `znas` before each trip. This makes Pocket Grimoire an offsite backup node whenever it leaves the house. -See [Pocket Grimoire Sync](/Pocket-Grimoire/Sync/Pre-Travel-Sync) for the pre-travel checklist. +See [Pocket Grimoire Sync](/Netgrimoire/Pocket-Grimoire/Sync/Pre-Travel-Sync) for the pre-travel checklist. diff --git a/Netgrimoire/Vault-Grimoire/Overview.md b/Netgrimoire/Vault-Grimoire/Overview.md index 76e7d42..8cda2ee 100644 --- a/Netgrimoire/Vault-Grimoire/Overview.md +++ b/Netgrimoire/Vault-Grimoire/Overview.md @@ -20,10 +20,10 @@ The Vault Grimoire covers all storage and backup infrastructure. Data starts at | Section | Contents | |---------|----------| -| [ZFS](/Vault-Grimoire/ZFS/Storage-Layout) | ZFS pools, datasets, NFS exports, commands reference | -| [Kopia](/Vault-Grimoire/Kopia/Kopia-Overview) | Backup repos, retention, restore, two-repo architecture | -| [Backups](/Vault-Grimoire/Backups/Services-Backup) | Per-service backup runbooks (Immich, MailCow, Nextcloud, Wiki, services) | -| [Offsite](/Vault-Grimoire/Offsite/Vault-Architecture) | Pi vault nodes, ZFS raw send, syncoid workflow | +| [ZFS](/Netgrimoire/Vault-Grimoire/ZFS/Storage-Layout) | ZFS pools, datasets, NFS exports, commands reference | +| [Kopia](/Netgrimoire/Vault-Grimoire/Kopia/Kopia-Overview) | Backup repos, retention, restore, two-repo architecture | +| [Backups](/Netgrimoire/Vault-Grimoire/Backups/Services-Backup) | Per-service backup runbooks (Immich, MailCow, Nextcloud, Wiki, services) | +| [Offsite](/Netgrimoire/Vault-Grimoire/Offsite/Vault-Architecture) | Pi vault nodes, ZFS raw send, syncoid workflow | --- diff --git a/Netgrimoire/Ward-Grimoire/Notifications/Alert-Routing.md b/Netgrimoire/Ward-Grimoire/Notifications/Alert-Routing.md index 884ff9f..7d14f07 100644 --- a/Netgrimoire/Ward-Grimoire/Notifications/Alert-Routing.md +++ b/Netgrimoire/Ward-Grimoire/Notifications/Alert-Routing.md @@ -24,8 +24,8 @@ All Netgrimoire alerts route through self-hosted ntfy at `ntfy.netgrimoire.com`. ## Alert Sources -**OPNsense → ntfy:** CrowdSec HTTP plugin (`/usr/local/etc/crowdsec/notifications/ntfy.yaml`) + Monit script (`/usr/local/bin/ntfy-alert.sh`). See [OPNsense Alerts](/Ward-Grimoire/Notifications/OPNsense-Alerts). +**OPNsense → ntfy:** CrowdSec HTTP plugin (`/usr/local/etc/crowdsec/notifications/ntfy.yaml`) + Monit script (`/usr/local/bin/ntfy-alert.sh`). See [OPNsense Alerts](/Netgrimoire/Ward-Grimoire/Notifications/OPNsense-Alerts). -**Uptime Kuma → Gremlin → ntfy:** Kuma webhook fires on DOWN/RECOVERED → n8n triage workflow → Ollama analysis (DOWN path only) → ntfy `gremlin-alerts`. See [Gremlin Kuma Triage](/Gremlin-Grimoire/Workflows/Kuma-Triage). +**Uptime Kuma → Gremlin → ntfy:** Kuma webhook fires on DOWN/RECOVERED → n8n triage workflow → Ollama analysis (DOWN path only) → ntfy `gremlin-alerts`. See [Gremlin Kuma Triage](/Netgrimoire/Gremlin-Grimoire/Workflows/Kuma-Triage). **DIUN → ntfy:** Docker image update watcher. Schedule: every 6 hours. Priority must be integer (1–5), not string `"default"`. diff --git a/Netgrimoire/Ward-Grimoire/Overview.md b/Netgrimoire/Ward-Grimoire/Overview.md index 924b130..15ae948 100644 --- a/Netgrimoire/Ward-Grimoire/Overview.md +++ b/Netgrimoire/Ward-Grimoire/Overview.md @@ -20,9 +20,9 @@ The Ward Grimoire covers all security enforcement, access control, and threat re | Section | Contents | |---------|----------| -| [Firewall](/Ward-Grimoire/Firewall/OPNsense) | OPNsense dual-WAN, NAT, static IPs, Suricata IDS, Zenarmor, blocklists, GeoIP | -| [Access](/Ward-Grimoire/Access/Auth-Overview) | Authentik (SSO), Authelia (wasted-bandwidth), LLDAP, Vaultwarden, YubiKey, WireGuard | -| [Notifications](/Ward-Grimoire/Notifications/Alert-Routing) | ntfy, CrowdSec alerts, OPNsense Monit, alert routing | +| [Firewall](/Netgrimoire/Ward-Grimoire/Firewall/OPNsense) | OPNsense dual-WAN, NAT, static IPs, Suricata IDS, Zenarmor, blocklists, GeoIP | +| [Access](/Netgrimoire/Ward-Grimoire/Access/Auth-Overview) | Authentik (SSO), Authelia (wasted-bandwidth), LLDAP, Vaultwarden, YubiKey, WireGuard | +| [Notifications](/Netgrimoire/Ward-Grimoire/Notifications/Alert-Routing) | ntfy, CrowdSec alerts, OPNsense Monit, alert routing | --- diff --git a/Netgrimoire/Watch-Grimoire/Overview.md b/Netgrimoire/Watch-Grimoire/Overview.md index cd29fb1..3ff8dad 100644 --- a/Netgrimoire/Watch-Grimoire/Overview.md +++ b/Netgrimoire/Watch-Grimoire/Overview.md @@ -20,9 +20,9 @@ The Watch Grimoire is the observatory of Netgrimoire. The Oracle sees every hear | Section | Contents | |---------|----------| -| [Monitoring](/Watch-Grimoire/Monitoring/Services) | Uptime Kuma, AutoKuma, Beszel, LibreNMS, DIUN, phpIPAM, Scrutiny | -| [Logging](/Watch-Grimoire/Logging/Log-Stack) | Graylog, Loki + Promtail + Grafana, Dozzle | -| [Dashboards](/Watch-Grimoire/Dashboards/Homepage) | Homepage, Glance, Portainer, Homelable | +| [Monitoring](/Netgrimoire/Watch-Grimoire/Monitoring/Services) | Uptime Kuma, AutoKuma, Beszel, LibreNMS, DIUN, phpIPAM, Scrutiny | +| [Logging](/Netgrimoire/Watch-Grimoire/Logging/Log-Stack) | Graylog, Loki + Promtail + Grafana, Dozzle | +| [Dashboards](/Netgrimoire/Watch-Grimoire/Dashboards/Homepage) | Homepage, Glance, Portainer, Homelable | --- diff --git a/Periphery/Overview.md b/Periphery/Overview.md new file mode 100644 index 0000000..ff16389 --- /dev/null +++ b/Periphery/Overview.md @@ -0,0 +1,23 @@ +--- +title: Periphery +description: Non-homelab documentation — family, business, and work +published: true +date: 2026-04-12T00:00:00.000Z +tags: periphery +editor: markdown +dateCreated: 2026-04-12T00:00:00.000Z +--- + +# Periphery + +Things that don't relate directly to Netgrimoire infrastructure — family services, business operations, and work documentation. + +--- + +## Sections + +| Section | Purpose | +|---------|---------| +| [PNC Harris](/Periphery/PNC-Harris/Overview) | Family services — Immich, Nextcloud, Mealie, Vikunja, Vaultwarden | +| [PNC Fish & More](/Periphery/PNC-Fish/Overview) | Saltwater fish and coral store — IT, operations, accounting, equipment | +| [Work](/Periphery/Work/Overview) | Cisco switching builds, NTP configs, upgrades, Ducky automation | diff --git a/Periphery/PNC-Fish/Accounting/Overview.md b/Periphery/PNC-Fish/Accounting/Overview.md new file mode 100644 index 0000000..21a9e01 --- /dev/null +++ b/Periphery/PNC-Fish/Accounting/Overview.md @@ -0,0 +1,68 @@ +--- +title: Accounting Overview +description: Bigcapital setup, Schedule C, COGS, livestock deaths, owner draws +published: true +date: 2026-04-12T00:00:00.000Z +tags: pncfish, accounting, bigcapital +editor: markdown +dateCreated: 2026-04-12T00:00:00.000Z +--- + +# Accounting Overview + +## Tool: Bigcapital + +Self-hosted, open-source accounting at `accounts.netgrimoire.com` (docker5, static Caddyfile entry). + +Bigcapital handles: +- Income entry from Square sales reports +- Expense categorization to Schedule C lines +- Livestock death inventory shrinkage journal entries +- Owner draw tracking (separate from business expenses) + +## Chart of Accounts + +Mapped to **Schedule C** lines. Setup is in progress — not yet finalized. + +Key accounts to establish: + +| Account | Type | Schedule C Line | +|---------|------|----------------| +| Sales — Livestock | Revenue | Line 1 (Gross receipts) | +| Sales — Supplies/Accessories | Revenue | Line 1 | +| COGS — Livestock purchases | COGS | Line 36-39 | +| Inventory shrinkage (deaths) | COGS adjustment | Line 39 | +| Rent | Expense | Line 20b | +| Utilities | Expense | Line 25 | +| Supplies | Expense | Line 22 | +| Advertising | Expense | Line 8 | +| Owner draws | Equity | Not on Schedule C | + +## COGS for Livestock + +Livestock is inventory. COGS is calculated as: + +``` +Beginning Inventory + Purchases - Ending Inventory = COGS +``` + +**Livestock deaths** reduce ending inventory. Track in dedicated Google Sheet tab, then enter as inventory shrinkage journal entries in Bigcapital. Do not process deaths through Square. + +## Owner Draws + +Owner draws are equity withdrawals — not business expenses. They do not appear on Schedule C and must not be categorized as expenses. Record separately in Bigcapital as equity/drawing transactions. + +## Income Entry Workflow + +1. Pull sales report from Square (weekly or monthly) +2. Enter total sales as income in Bigcapital +3. Categorize to appropriate revenue accounts (livestock vs. supplies/accessories) +4. Enter any expenses paid that period (receipts, invoices) +5. Record any livestock deaths from the Google Sheet tab as shrinkage journal entries + +## Pending + +- [ ] Finalize chart of accounts — map all accounts to Schedule C lines +- [ ] Confirm COGS tracking method aligns with chosen inventory accounting method (FIFO vs. average cost) +- [ ] Set up livestock death log tab in Google Sheets +- [ ] Establish journal entry cadence for shrinkage entries diff --git a/Periphery/PNC-Fish/Equipment/Reef-Tank.md b/Periphery/PNC-Fish/Equipment/Reef-Tank.md new file mode 100644 index 0000000..fd634f7 --- /dev/null +++ b/Periphery/PNC-Fish/Equipment/Reef-Tank.md @@ -0,0 +1,51 @@ +--- +title: Reef Tank Maintenance +description: Saltwater reef tank maintenance, water parameters, and cyanobacteria protocol +published: true +date: 2026-04-12T00:00:00.000Z +tags: pncfish, reef, equipment +editor: markdown +dateCreated: 2026-04-12T00:00:00.000Z +--- + +# Reef Tank Maintenance + +## Cyanobacteria Treatment Protocol + +Use this protocol in order. Do not skip to later steps without completing earlier ones. + +| Step | Action | Notes | +|------|--------|-------| +| 1 | Manual siphon removal | During water change — remove as much as possible physically | +| 2 | Verify RO/DI TDS = 0 | Replace resin if TDS is above 0 — contaminated source water is a primary cause | +| 3 | Check phosphate | If undetectable (<0.03 ppm), dose KH2PO4 to raise slightly — paradoxically low phosphate favors cyano over corals | +| 4 | 3-day blackout + large water change | Starves cyano of light. Combine both for best effect. | +| 5 | Add chaeto to refugium | Outcompetes cyano for nutrients long-term | +| 6 | Vibrant liquid bacteria | If cyano persists after steps 1–5 | + +**Note:** Chemi-Clean was used previously and did not fully resolve the issue. Underlying cause (RO/DI quality, phosphate imbalance, flow dead spots) was suspected. Provide current water parameters — nitrate, phosphate, TDS, salinity — to continue diagnosis. + +## Water Parameters to Track + +| Parameter | Target Range | Notes | +|-----------|-------------|-------| +| Salinity | 1.025–1.026 SG | Use refractometer | +| Temperature | 76–78°F | Inkbird ITC-306A controls this | +| pH | 8.1–8.3 | Check morning and evening | +| Ammonia | 0 | Should always be undetectable | +| Nitrite | 0 | Should always be undetectable | +| Nitrate | <10 ppm | Lower for SPS; <20 for LPS/fish-only | +| Phosphate | 0.03–0.10 ppm | Too low favors cyano; too high causes algae | +| TDS (RO/DI output) | 0 | Replace resin if above 0 | + +## Lighting: ReefBreeder + +*Document ReefBreeder light model, schedule, and intensity settings here.* + +## Water Change Schedule + +*Document water change frequency, volume, and salt mix used.* + +## Equipment List + +*Document all tank equipment: skimmer, return pump, powerheads, refugium light, dosing equipment, etc.* diff --git a/Periphery/PNC-Fish/Equipment/Temperature-Controllers.md b/Periphery/PNC-Fish/Equipment/Temperature-Controllers.md new file mode 100644 index 0000000..f65e75e --- /dev/null +++ b/Periphery/PNC-Fish/Equipment/Temperature-Controllers.md @@ -0,0 +1,43 @@ +--- +title: Temperature Controllers +description: Inkbird ITC-306A WiFi temperature controller setup and troubleshooting +published: true +date: 2026-04-12T00:00:00.000Z +tags: pncfish, equipment, inkbird, reef +editor: markdown +dateCreated: 2026-04-12T00:00:00.000Z +--- + +# Inkbird ITC-306A Temperature Controller + +## Specs & Requirements + +| Item | Detail | +|------|--------| +| Model | Inkbird ITC-306A | +| WiFi | 2.4GHz only — will not connect to 5GHz | +| App | INKBIRD+ (iOS and Android) | + +## Setup + +1. Ensure phone is connected to a **2.4GHz WiFi network** (not 5GHz) before pairing +2. Put device in pairing mode (hold button per manual) +3. Open INKBIRD+ app → Add device → follow pairing wizard +4. Enter 2.4GHz WiFi credentials in app — do not attempt to connect to 5GHz SSID + +## Known Issue — App Not Functioning After WiFi Connect + +**Status: INCOMPLETE — resolution not confirmed** + +Symptom: Device connects to WiFi successfully but INKBIRD+ app still does not function correctly (cannot control or read device). + +Troubleshooting steps to try: +- [ ] Close and fully restart INKBIRD+ app +- [ ] Check if a firmware update is available in the app +- [ ] Try re-pairing: remove device from app → factory reset device → re-add +- [ ] Try a different phone if available +- [ ] Check if router has AP isolation enabled (would prevent app ↔ device communication even on same network) + +## Configuration (Once App Working) + +Set temperature probe calibration offset if probe reads inaccurately. Configure heating/cooling setpoints appropriate for the tank species being controlled. diff --git a/Periphery/PNC-Fish/IT/Digital-Signage-Runbook.md b/Periphery/PNC-Fish/IT/Digital-Signage-Runbook.md new file mode 100644 index 0000000..2688577 --- /dev/null +++ b/Periphery/PNC-Fish/IT/Digital-Signage-Runbook.md @@ -0,0 +1,63 @@ +--- +title: Digital Signage Runbook +description: How to update price boards and manage the TV signage system +published: true +date: 2026-04-12T00:00:00.000Z +tags: pncfish, signage, runbook +editor: markdown +dateCreated: 2026-04-12T00:00:00.000Z +--- + +# Digital Signage Runbook + +## Updating a Price + +1. Open Google Sheets (master inventory) +2. Find the item row, edit price (col C), name (col B), or tank designator (col D) +3. Google Slides updates automatically +4. TVs pick up the change within 5 minutes — no further action needed +5. **Immediate update:** force-stop ScreenLite on that FireTV → relaunch + +## Adding New Inventory + +1. Add new row: SKU (A), display name (B), price (C), tank designator(s) (D) +2. Multiple tank designators are space-separated: `T4 T5` +3. Slides update automatically +4. Push to Square: currently manual via Square catalog CSV upload + +## When an Item Sells — Manual Fallback + +1. Remove the tank designator from col D of that item's row +2. Slides update automatically within a minute +3. TV picks it up within 5 minutes + +## Google Sheets Column Reference + +| Column | Field | Example | +|--------|-------|---------| +| A | SKU | `CLOWN-001` | +| B | Display name | `Ocellaris Clownfish` | +| C | Price | `29.99` | +| D | Tank designator(s) | `T4` or `T4 T5` | + +## Troubleshooting + +| Problem | Fix | +|---------|-----| +| TV showing stale price | Force-stop ScreenLite → relaunch | +| Image blurry/soft text | Add `?sz=s1920` to PNG export URL in HTML file | +| Slides not updating from Sheet | Check Apps Script in Extensions → Apps Script for errors | +| FireTV lost the URL | Re-enter Apache URL in ScreenLite settings | + +## Square Webhook Automation (When Deployed) + +Once live, the automation flow will be: + +``` +Square sale → Webhook POST → Google Apps Script Web App + → Find item SKU in Sheet + → Remove tank designator from col D + → Slides auto-update → TV picks up within 5 min +``` + +**Status:** Designed, not yet deployed. Next step: configure Square developer dashboard webhook endpoint to the Apps Script URL and test with a real sale. diff --git a/Periphery/PNC-Fish/IT/Overview.md b/Periphery/PNC-Fish/IT/Overview.md index fae560d..f5df489 100644 --- a/Periphery/PNC-Fish/IT/Overview.md +++ b/Periphery/PNC-Fish/IT/Overview.md @@ -1,6 +1,6 @@ --- title: IT Overview -description: PNC Fish & More IT infrastructure +description: PNC Fish & More IT infrastructure — web server, digital signage, networking published: true date: 2026-04-12T00:00:00.000Z tags: pncfish, it @@ -10,19 +10,61 @@ dateCreated: 2026-04-12T00:00:00.000Z # IT Overview -## Website +## Infrastructure -Hosted on `pncfishandmore.com`. Static/PHP stack via the Netgrimoire `web.yaml` Apache/PHP service. +| Resource | Details | +|----------|---------| +| Domain | `pncfishandmore.com` — managed via ISPConfig | +| Web server | Apache on NetGrimoire (self-hosted Docker, `web.yaml`) | +| Email | MailCow + MXRoute relay | +| DNS | ISPConfig + internal Technitium | +| Accounting | Bigcapital (Docker on docker5, `accounts.netgrimoire.com`) | -## Email +--- -Handled via MailCow + MXRoute. Domain configured as part of the 8-domain mail setup. -See [MailCow Domain Setup](/Keystone-Grimoire/Mail/Domain-Setup). +## Digital Signage System -## POS System +Three FireTV devices display live price board slides on in-store TVs. Each TV runs ScreenLite kiosk app loading an Apache HTML page, which fetches a Google Slides PNG export and refreshes it every 5 minutes via JavaScript. -*Document POS system here.* +### TV Pages on Apache -## Network +| File | Slide Deck | Purpose | +|------|-----------|---------| +| `left.html` | Saltwater fish | Main fish price board | +| `right.html` | Secondary | Freshwater or secondary display | +| `inverts.html` | Invertebrates | Inverts price board | -*Document store network here — router, AP, any on-site devices.* +### Google Slides Deck IDs + +| Deck | Slide ID | +|------|---------| +| Left (saltwater fish) | `1S3j0K1QlWAtkjq73E73At3gz9vWp9vVr_yZswUHiyN8` | +| Right (secondary) | `1mWzgisxMQAFAhME9HXY_PEK0v_hIuQ4Md0PQS10ES8Q` | +| Inverts | `1nzunM4pQxqmW82_Ab0rrOsV4QuO8G5TVUDodplI_4tY` | + +PNG export URL format: `https://docs.google.com/presentation/d//export/png?sz=s1920` + +Use `sz=s1920` for sharper text. If display looks soft, increase canvas size in Google Slides settings. + +### Critical: ScreenLite Does Not Respond to Meta-Refresh + +ScreenLite ignores ``. All TV page refreshes use JavaScript `setInterval` image src swap only: + +```javascript +setInterval(function() { + var img = document.getElementById('slide'); + img.src = SLIDE_URL + '?t=' + Date.now(); +}, 300000); // 300,000ms = 5 minutes +``` + +### Force Immediate Refresh + +Force-stop ScreenLite on the FireTV and relaunch. It reloads the Apache URL and picks up the latest PNG immediately. + +--- + +## Pending + +- [ ] Square webhook → Apps Script → Google Sheets automation (designed, not deployed) +- [ ] "Push to Square" Apps Script button in Google Sheets +- [ ] Store network documentation (router, AP, FireTV connections) diff --git a/Periphery/PNC-Fish/Marketing/Overview.md b/Periphery/PNC-Fish/Marketing/Overview.md index f818683..b02c6b5 100644 --- a/Periphery/PNC-Fish/Marketing/Overview.md +++ b/Periphery/PNC-Fish/Marketing/Overview.md @@ -1,6 +1,6 @@ --- title: Marketing Overview -description: PNC Fish & More marketing and promotions +description: Digital signage content, promotions, social media published: true date: 2026-04-12T00:00:00.000Z tags: pncfish, marketing @@ -10,4 +10,18 @@ dateCreated: 2026-04-12T00:00:00.000Z # Marketing Overview -*Add marketing documentation here: social media accounts, posting schedules, ad campaigns, promotions, photography workflow for livestock, etc.* +## Digital Signage + +In-store TV price boards are the primary customer-facing marketing surface. See [Digital Signage Runbook](/PNC-Fish/IT/Digital-Signage-Runbook) for how to update content. + +## Social Media + +*Document social media accounts, posting schedule, and content workflow here.* + +## Promotions + +*Document any recurring promotions, seasonal sales, or loyalty programs here.* + +## Photography Workflow + +*Document how livestock photos are taken and used for signage, social media, and Square catalog.* diff --git a/Periphery/PNC-Fish/Operations/Inventory.md b/Periphery/PNC-Fish/Operations/Inventory.md new file mode 100644 index 0000000..0c7146c --- /dev/null +++ b/Periphery/PNC-Fish/Operations/Inventory.md @@ -0,0 +1,67 @@ +--- +title: Inventory Management +description: Google Sheets master inventory, Square POS, and sales workflow +published: true +date: 2026-04-12T00:00:00.000Z +tags: pncfish, inventory, square +editor: markdown +dateCreated: 2026-04-12T00:00:00.000Z +--- + +# Inventory Management + +## Source of Truth + +**Google Sheets is the master inventory.** Square is a downstream target. Never update Square first and then try to sync back to Sheets — always update Sheets first. + +## Google Sheets Structure + +| Column | Field | Notes | +|--------|-------|-------| +| A | SKU | Unique identifier | +| B | Display name | Name shown on price board | +| C | Price | Retail price | +| D | Tank designator(s) | Space-separated: `T4 T5`. Drives which TV slide shows the item. Remove when sold. | + +A separate tab tracks **livestock deaths** — used for inventory shrinkage journal entries in Bigcapital. See [Accounting](/PNC-Fish/Accounting/Overview). + +## Square POS Integration + +### Current State (Manual) + +New inventory added to Square via CSV catalog upload. Sales are recorded in Square, then manually reconciled against Google Sheets. + +### Planned Automation + +| Direction | Method | Status | +|-----------|--------|--------| +| Sale → Sheet | Square webhook → Google Apps Script → remove tank designator | Designed, not deployed | +| Sheet → Square | "Push to Square" Apps Script button | Planned, not built | + +### Square API Notes + +- Square API access is free — no additional cost beyond transaction fees +- Webhook + Apps Script integration has zero incremental cost +- Apps Script is deployed as a Google Web App to receive Square webhook POSTs + +## Adding New Livestock + +1. Add row to Google Sheet: SKU, display name, price, tank designator +2. Slides auto-update → TV price board updates within 5 minutes +3. Push to Square: CSV upload to Square catalog (manual until automation is live) + +## When Item Sells + +**With automation (planned):** Square fires webhook → Apps Script removes tank designator → done + +**Manual fallback (current):** +1. Process sale in Square +2. Open Google Sheet +3. Remove tank designator from col D for that item +4. Slides auto-update, TV picks up within 5 minutes + +## Livestock Death Tracking + +1. Record death in dedicated Google Sheet tab (date, species, SKU, cost) +2. Enter as inventory shrinkage journal entry in Bigcapital +3. Do NOT process through Square diff --git a/Periphery/PNC-Fish/Operations/Overview.md b/Periphery/PNC-Fish/Operations/Overview.md index 86cb658..4c3c321 100644 --- a/Periphery/PNC-Fish/Operations/Overview.md +++ b/Periphery/PNC-Fish/Operations/Overview.md @@ -1,6 +1,6 @@ --- title: Operations Overview -description: PNC Fish & More day-to-day operations documentation +description: Day-to-day store operations — sales, inventory, payroll published: true date: 2026-04-12T00:00:00.000Z tags: pncfish, operations @@ -10,4 +10,19 @@ dateCreated: 2026-04-12T00:00:00.000Z # Operations Overview -*Add operations documentation here: inventory management, supplier contacts, tank maintenance schedules, livestock sourcing, water chemistry protocols, etc.* +## Key Runbooks + +| | | +|---|---| +| [Inventory Management](/PNC-Fish/Operations/Inventory) | Google Sheets, Square POS, adding livestock, sales workflow | +| [Payroll](/PNC-Fish/Operations/Payroll) | Current process, Florida Reemployment Tax, tool decision | + +## Quick Reference + +**Updating a price board:** Edit Google Sheet → TV updates in 5 minutes + +**New livestock arrived:** Add to Sheet → Push to Square (CSV) → update tank designator + +**Item sold:** Remove tank designator from Sheet col D + +**Employee paid:** Weekly by check — record hours in inherited Excel spreadsheets diff --git a/Periphery/PNC-Fish/Operations/Payroll.md b/Periphery/PNC-Fish/Operations/Payroll.md new file mode 100644 index 0000000..019686d --- /dev/null +++ b/Periphery/PNC-Fish/Operations/Payroll.md @@ -0,0 +1,43 @@ +--- +title: Payroll +description: Current payroll process, Florida Reemployment Tax, tool decision +published: true +date: 2026-04-12T00:00:00.000Z +tags: pncfish, payroll, hr +editor: markdown +dateCreated: 2026-04-12T00:00:00.000Z +--- + +# Payroll + +## Current Process + +| Item | Method | +|------|--------| +| Pay schedule | Weekly | +| Payment method | Handwritten check | +| Hours tracking | Inherited Excel spreadsheets | +| Quarterly filing | Florida Reemployment Tax — filed manually | +| Annual | W-2s | + +The Excel spreadsheets were inherited from the prior accountant. They are still in active use. + +## Compliance Requirements + +- **Florida Reemployment Tax** must be filed quarterly +- **W-2s** issued annually to employees +- **Owner draws** are not wages — do not run through payroll, do not appear on Schedule C + +## Tool Decision — Pending + +| Option | Cost | Notes | +|--------|------|-------| +| Continue manual (Excel) | Free | Works but scales poorly; compliance risk increases with headcount | +| Square Payroll | ~$35/mo + $6/employee | Handles FL Reemployment Tax, W-2s, direct deposit | +| Other managed payroll | Varies | QuickBooks Payroll, Gusto, etc. | + +**Decision not yet made.** Key factor: Florida Reemployment Tax compliance and W-2 accuracy. The manual approach is viable for 1-2 employees but becomes a compliance risk as the team grows. + +## Next Step + +Review inherited Excel spreadsheets. Determine current employee count and pay structure. Make managed vs. manual decision based on headcount and compliance comfort level. diff --git a/Periphery/PNC-Fish/Overview.md b/Periphery/PNC-Fish/Overview.md index acc3804..ed7e9e7 100644 --- a/Periphery/PNC-Fish/Overview.md +++ b/Periphery/PNC-Fish/Overview.md @@ -1,6 +1,6 @@ --- title: PNC Fish & More -description: Saltwater fish and coral store — IT, operations, and business documentation +description: Saltwater fish and coral store — IT, operations, accounting, and equipment published: true date: 2026-04-12T00:00:00.000Z tags: pncfish, business @@ -12,7 +12,9 @@ dateCreated: 2026-04-12T00:00:00.000Z ![pncfish-badge](/images/pncfish-badge.png) -PNC Fish & More is a saltwater fish and coral store. This section of the grimoire covers IT infrastructure, business operations, and marketing documentation for the store. +PNC Fish & More is a saltwater fish and coral store (single-member LLC, Fort Walton Beach, FL). This grimoire covers all IT infrastructure, business operations, accounting, and equipment documentation for the store. + +**Design principle:** Zero/low-cost, self-managed stack. No unnecessary SaaS subscriptions. Open-source tools where maintenance burden is manageable. **Domain:** `pncfishandmore.com` @@ -22,21 +24,50 @@ PNC Fish & More is a saltwater fish and coral store. This section of the grimoir | Section | Contents | |---------|----------| -| [IT](/PNC-Fish/IT/Overview) | Website, POS system, networking, hosting | -| [Operations](/PNC-Fish/Operations/Overview) | Inventory management, suppliers, tank management | -| [Marketing](/PNC-Fish/Marketing/Overview) | Social media, promotions, advertising | +| [IT](/PNC-Fish/IT/Overview) | Apache web server, digital signage, networking, hosting | +| [Operations](/PNC-Fish/Operations/Inventory) | Inventory management, Square POS, sales workflow | +| [Accounting](/PNC-Fish/Accounting/Overview) | Bigcapital, Schedule C, COGS, payroll | +| [Equipment](/PNC-Fish/Equipment/Temperature-Controllers) | Inkbird ITC-306A, ReefBreeder lights, reef tank | +| [Marketing](/PNC-Fish/Marketing/Overview) | Digital signage content, promotions | --- -## IT Overview +## Stack at a Glance -| Resource | Details | -|----------|---------| -| Domain | `pncfishandmore.com` (managed via ISPConfig) | -| Website | Hosted on Netgrimoire Apache/PHP stack | -| Email | Via MailCow + MXRoute relay | -| DNS | ISPConfig + OPNsense internal | +| Service | Host | Purpose | Cost | +|---------|------|---------|------| +| Apache web server | NetGrimoire (self-hosted) | Serves TV signage pages | Free | +| Bigcapital | NetGrimoire (Docker) | Accounting / Schedule C | Free / self-hosted | +| Google Sheets | Google | Master inventory source of truth | Free | +| Google Slides (3 decks) | Google | Digital signage content | Free | +| Google Apps Script | Google | Square webhook + automation | Free | +| Square POS | In-store | Point-of-sale, transaction processing | Transaction fees only | +| ScreenLite | FireTV devices | Kiosk app, loads Apache pages | App cost | +| FireTV (multiple) | In-store TVs | Display hardware | Hardware only | --- -*Sections below are stubs — add content as needed.* +## Integration Architecture + +``` +Google Sheets (master inventory) + → Google Slides (auto-updated from Sheet) + → Apache HTML pages (PNG export, 5-min refresh) + → FireTV + ScreenLite (display) + +Square sale + → Webhook → Google Apps Script + → Google Sheets (decrement / remove tank designator) + → Slides update automatically +``` + +--- + +## Key Design Decisions + +- **Google Sheets is the master source of truth** for inventory — Square is a downstream target, not the source +- **ERPNext rejected** — US tax table upkeep burden too high for a small operation +- **ScreenLite ignores meta-refresh** — all TV page refreshes must use JavaScript `setInterval` image src swap, not `` +- **Square API access is free** — webhook + Apps Script integration has zero incremental cost +- **Livestock deaths** tracked via dedicated Sheet tab + Bigcapital journal entries, not through Square +- **Owner draws are not business expenses** and must not appear on Schedule C diff --git a/home.md b/home.md index db9fa58..2f0cee7 100644 --- a/home.md +++ b/home.md @@ -22,36 +22,29 @@ dateCreated: 2026-04-12T00:00:00.000Z --- -## 🔮 The Grimoires — Homelab +## 🔮 Netgrimoire — Homelab | Grimoire | Badge | Purpose | |----------|-------|---------| | 🟢 [Netgrimoire](/Netgrimoire/Overview) | `netgrimoire-badge.png` | Core homelab — service catalog, host inventory, standards | -| 🏰 [Keystone Grimoire](/Keystone-Grimoire/Overview) | `keystone-badge.png` | Architecture — network design, Caddy, Docker Swarm, DNS, mail | -| 🗄️ [Vault Grimoire](/Vault-Grimoire/Overview) | `vault-badge.png` | Storage & backup — ZFS, Kopia, NFS, offsite replication | -| 🛡️ [Ward Grimoire](/Ward-Grimoire/Overview) | `ward-badge.png` | Security — OPNsense, CrowdSec, auth, VPN, blocklists | -| 🔮 [Watch Grimoire](/Watch-Grimoire/Overview) | `watch-badge.png` | Monitoring — Uptime Kuma, Beszel, Grafana, alerts, logs | -| 🤖 [Gremlin Grimoire](/Gremlin-Grimoire/Overview) | `gremlin-badge.png` | Local AI — Ollama, Open WebUI, n8n, Qdrant, workflows | -| 💀 [Shadow Grimoire](/Shadow-Grimoire/Overview) | `shadow-badge.png` | Acquisition — Usenet, torrents, arr stack, indexers | -| 🌿 [Green Grimoire](/Green-Grimoire/Overview) | `green-badge.png` | Adult media — Stash, Jellyfinx, Namer, Whisparr | -| 🎒 [Pocket Grimoire](/Pocket-Grimoire/Overview) | `pocket-badge.png` | Portable lab — laptop, offline-first, travel vault node | +| 🏰 [Keystone Grimoire](/Netgrimoire/Keystone-Grimoire/Overview) | `keystone-badge.png` | Architecture — network, Caddy, Docker Swarm, DNS, mail | +| 🗄️ [Vault Grimoire](/Netgrimoire/Vault-Grimoire/Overview) | `vault-badge.png` | Storage & backup — ZFS, Kopia, NFS, offsite replication | +| 🛡️ [Ward Grimoire](/Netgrimoire/Ward-Grimoire/Overview) | `ward-badge.png` | Security — OPNsense, CrowdSec, auth, VPN, blocklists | +| 🔮 [Watch Grimoire](/Netgrimoire/Watch-Grimoire/Overview) | `watch-badge.png` | Monitoring — Kuma, Beszel, Grafana, alerts, logs | +| 🤖 [Gremlin Grimoire](/Netgrimoire/Gremlin-Grimoire/Overview) | `gremlin-badge.png` | Local AI — Ollama, Open WebUI, n8n, Qdrant, workflows | +| 💀 [Shadow Grimoire](/Netgrimoire/Shadow-Grimoire/Overview) | `shadow-badge.png` | Acquisition — Usenet, torrents, arr stack, indexers | +| 🌿 [Green Grimoire](/Netgrimoire/Green-Grimoire/Overview) | `green-badge.png` | Adult media — Stash, Jellyfinx, Namer, Whisparr | +| 🎒 [Pocket Grimoire](/Netgrimoire/Pocket-Grimoire/Overview) | `pocket-badge.png` | Portable lab — laptop, offline-first, travel vault node | --- -## 🏠 Personal & Business +## 🌐 Periphery — Beyond the Lab | Section | Badge | Purpose | |---------|-------|---------| -| 👨‍👩‍👧 [PNC Harris](/PNC-Harris/Overview) | `pncharris-badge.png` | Family services — Immich, Nextcloud, Mealie, Vikunja | -| 🐠 [PNC Fish & More](/PNC-Fish/Overview) | `pncfish-badge.png` | Saltwater fish & coral store — IT, operations, marketing | - ---- - -## 💼 Work - -| | | -|---|---| -| 🔧 [Work Overview](/Work/Overview) | Cisco switching builds, NTP, upgrades, Ducky automation | +| 👨‍👩‍👧 [PNC Harris](/Periphery/PNC-Harris/Overview) | `pncharris-badge.png` | Family services — Immich, Nextcloud, Mealie, Vikunja | +| 🐠 [PNC Fish & More](/Periphery/PNC-Fish/Overview) | `pncfish-badge.png` | Saltwater fish & coral store — IT, ops, accounting | +| 💼 [Work](/Periphery/Work/Overview) | — | Cisco switching, NTP, upgrades, Ducky automation | --- @@ -59,31 +52,32 @@ dateCreated: 2026-04-12T00:00:00.000Z | | | |---|---| -| 📋 [Service Catalog](/Netgrimoire/Service-Catalog) | All services — status, host, URL, grimoire assignment | -| 🏗️ [Docker Swarm Template](/Keystone-Grimoire/Docker/Swarm-Template) | Standard YAML, label rules, volume paths | -| 📄 [Service Doc Template](/Netgrimoire/Conventions/Service-Doc-Template) | Template for new service documentation | -| 📖 [Documentation Standards](/Netgrimoire/Conventions/Doc-Standards) | Structure, naming, diagram, git workflow | -| 🔍 [Audit Reports](/Netgrimoire/Audits/README) | Gremlin-generated YAML compliance audits | +| 📋 [Service Catalog](/Netgrimoire/Service-Catalog) | All services — status, host, URL, grimoire | +| 🏗️ [Docker Swarm Template](/Netgrimoire/Keystone-Grimoire/Docker/Swarm-Template) | Standard YAML, label rules, volume paths | +| 📄 [Service Doc Template](/Netgrimoire/Conventions/Service-Doc-Template) | Template for new service docs | +| 📖 [Doc Standards](/Netgrimoire/Conventions/Doc-Standards) | Structure, naming, diagram, git workflow | +| 🔍 [Audit Reports](/Netgrimoire/Audits/README) | Gremlin-generated weekly YAML audits | --- -## 🗺️ Wiki Structure +## 🗺️ Structure ``` wiki/ -├── home.md ← you are here -├── Netgrimoire/ ← spine: catalog, standards, conventions -├── Keystone-Grimoire/ ← architecture: hosts, network, Docker, mail -├── Vault-Grimoire/ ← storage: ZFS, Kopia, NFS, backups -├── Ward-Grimoire/ ← security: OPNsense, CrowdSec, auth, VPN -├── Watch-Grimoire/ ← monitoring: Kuma, Beszel, Grafana, ntfy -├── Gremlin-Grimoire/ ← AI: Ollama, n8n, Qdrant, workflows -├── Shadow-Grimoire/ ← acquisition: arr stack, Usenet, torrents -├── Green-Grimoire/ ← adult media: Stash, Jellyfinx, Namer -├── Pocket-Grimoire/ ← portable lab: laptop + Beryl AX -├── PNC-Harris/ ← family services -├── PNC-Fish/ ← business docs -└── Work/ ← Cisco / network engineering +├── home.md +├── Netgrimoire/ ← homelab spine + all grimoires +│ ├── Keystone-Grimoire/ ← architecture +│ ├── Vault-Grimoire/ ← storage & backup +│ ├── Ward-Grimoire/ ← security +│ ├── Watch-Grimoire/ ← monitoring +│ ├── Gremlin-Grimoire/ ← AI stack +│ ├── Shadow-Grimoire/ ← acquisition +│ ├── Green-Grimoire/ ← adult media +│ └── Pocket-Grimoire/ ← portable lab +└── Periphery/ ← non-homelab + ├── PNC-Harris/ ← family + ├── PNC-Fish/ ← business + └── Work/ ← Cisco / networking ``` --- diff --git a/netgrimoire-export.zip b/netgrimoire-export.zip new file mode 100644 index 0000000..77d6fb1 Binary files /dev/null and b/netgrimoire-export.zip differ