diff --git a/00_index.md b/00_index.md index a2aba55..7b30309 100644 --- a/00_index.md +++ b/00_index.md @@ -36,7 +36,7 @@ | 110 | windows11 (VM) | 192.168.1.227 | — | RTX 4060 passthrough, Rhino 7 + Sunshine/Moonlight | | 111 | paperless | 192.168.1.111 | paperless.spendlik.sk | Document management (6-lang OCR, media+data on NAS) | | 112 | mcp-server | 192.168.1.100 | mcp.spendlik.sk | MCP bridge — Proxmox + Gitea tools for Claude | -| 114 | koillection | 192.168.1.114 | collections.spendlik.sk | Collection manager — CT created 2026-08-11, **app deployment in progress** (Docker/Koillection/nginx/SSL/DNS still pending, see `114_koillection_deployment.md`) | +| 114 | koillection | 192.168.1.114 | collections.spendlik.sk | Collection manager — live over HTTPS as of 2026-08-11 (Docker/nginx/SSL/DNS done); **Authelia decision + first admin login still pending**, see `114_koillection_deployment.md` | | 115 | vaultwarden | 192.168.1.115 | vault.spendlik.sk | Password manager (Vaultwarden, Docker, Bitwarden-compatible) | > ⚠️ CT 117 (Radicale) has a deployment guide written but is **NOT yet deployed** — do not treat as live infrastructure. It will be added to this table once physically provisioned. @@ -64,8 +64,8 @@ Script location: `/usr/local/bin/ddns-update.sh` in CT 108. Full credentials map | mcp.spendlik.sk | 327475181 | | paperless.spendlik.sk | 328109687 | | vault.spendlik.sk | 330343277 | +| collections.spendlik.sk | 340219244 | | pdf.spendlik.sk | *(add after DNS record created in WebSupport)* | -| collections.spendlik.sk | *(add after CNAME record created in WebSupport — Koillection app deployment in progress)* | | cal.spendlik.sk | *(add after DNS record created in WebSupport — Radicale not yet deployed)* | > ⚠️ When adding a new subdomain: (1) create **CNAME** record → `spendlik.sk` in WebSupport admin (never a per-subdomain A record), (2) add nginx vhost in CT 101, (3) run certbot, (4) inspect nginx config after certbot. No DDNS script edit needed — see above. @@ -93,7 +93,7 @@ Script location: `/usr/local/bin/ddns-update.sh` in CT 108. Full credentials map | `secrets-index.md` | Map of service credentials and WHERE they are stored (no actual secrets) | | `PROJECT_INSTRUCTIONS.md` | Canonical behavioural/methodology reference — decision defaults, checklists, gotchas, **Pre-Flight Verification protocol (added 2026-08-11)** | | `113_stirling_pdf_deployment.md` | CT 113 — Stirling PDF Docker deploy, nginx, SSL, n8n API integration | -| `114_koillection_deployment.md` | CT 114 — Koillection Docker deploy, NAS uploads mount, collection setup — **IN PROGRESS: CT created 2026-08-11, app install pending** | +| `114_koillection_deployment.md` | CT 114 — Koillection Docker deploy, NAS uploads mount, collection setup — **IN PROGRESS: live over HTTPS, Authelia + first login pending** | | `115_vaultwarden_deployment.md` | CT 115 — Vaultwarden Docker deploy, nginx, SSL | | `117_radicale_deployment.md` | CT 117 — Radicale CalDAV/CardDAV deploy, nginx, SSL, Thunderbird/DAVx⁵ clients — **guide only, not yet deployed** | @@ -102,6 +102,7 @@ Script location: `/usr/local/bin/ddns-update.sh` in CT 108. Full credentials map > 💡 Files `01_` through `11_` referenced previously do not exist — they were placeholders never written. > 💡 For "is CT X running/deployed right now" questions, don't read docs — call `proxmox_list_containers` directly (single cheap live call, always accurate). > 💡 Before running Phase 1 of any not-yet-executed deploy guide, verify volatile values (LXC template version, DNS record type) against `homelab-overview.md` and `obsidian-vault/05 Resources/Proxmox LXC Templates.md` — guides can go stale. See `PROJECT_INSTRUCTIONS.md` → Pre-Flight Verification. +> 💡 Also verify nginx vhost naming convention (full domain, not short service name) and which CT nginx work belongs on (CT 101, never the app container) before giving nginx-related steps — see `114_koillection_deployment.md` Phase 6 gotchas for a concrete example of both mistakes happening in the same deployment. --- @@ -119,6 +120,8 @@ Script location: `/usr/local/bin/ddns-update.sh` in CT 108. Full credentials map | **Gitea writes** | Always read file content before writing — writes replace entire file | | **Proxmox kernel** | PINNED to `6.14.11-5-pve` (`proxmox-boot-tool kernel pin`). **2026-08-11 incident**: an accidental `apt upgrade -y` run directly on the Proxmox host (meant for a container) pulled in `proxmox-kernel-6.14.11-9-pve` and the entire `proxmox-kernel-7.0.x` branch. No impact occurred — the boot pin held, running kernel never changed, NVIDIA DKMS module remained built against the pinned `6.14.11-5-pve` only. Resolved by re-affirming the pin and running `apt-mark hold proxmox-kernel-6.14 proxmox-kernel-7.0 proxmox-kernel-6.14.11-9-pve proxmox-kernel-7.0.14-11-pve-signed proxmox-kernel-7.0.6-2-pve`, which now blocks apt from proposing these kernel packages at all. **Verify hold status with `apt-mark showhold` before assuming any future `apt upgrade` on the host is kernel-safe.** | | **LXC template versions** | Verify exact template filename in `obsidian-vault/05 Resources/Proxmox LXC Templates.md` (or live `pveam list local`) before every `pct create` — versions bump periodically and guides can reference stale strings. Once a container is created, template version is irrelevant — `apt upgrade` keeps it current, no need to recreate existing containers on a newer template. | +| **nginx vhosts belong on CT 101 only** | Never install or configure nginx on an app's own container — all reverse-proxy work happens on CT 101. Check the shell prompt if unsure which container you're in. | +| **nginx vhost filenames** | Named by full domain (e.g. `collections.spendlik.sk`), not by short service name — verify with `ls /etc/nginx/sites-available/` on CT 101 before writing a new one. | | **OpenRGB** | Uninstalled — SMBus interaction with ADATA XPG GAMMIX D35 poses hardware risk. Do not reinstall. | | **Hairpin NAT** | Slovak Telekom router blocks hairpin — test external domains from mobile data, not LAN | | **WebSupport API auth** | HMAC-SHA1 signed requests; `X-Date` header in `YYYYMMDDTHHmmSSZ` format; service ID is numeric `15056760` | @@ -139,7 +142,7 @@ Script location: `/usr/local/bin/ddns-update.sh` in CT 108. Full credentials map | Project | Next Action | Reference | |---|---|---| -| Koillection | CT 114 created 2026-08-11 — continue with Phase 2 (Docker install) onward | CT 114 | +| Koillection | Live over HTTPS (`https://collections.spendlik.sk`) — decide Authelia vs. bypass (Phase 9), then first admin login + collection setup (Phase 10–11) | CT 114 | | kocka-novinky.sk automation | Build n8n POC: Brickset → Claude API → WordPress lego-set + post | CT 100 | | Paperless-ngx | ~730 docs processing; next: Gemini post-processing setup | CT 111 | | Gemini post-processing | Get Gemini API key → install Python package in CT 111 | CT 111 |