Commit Graph

52 Commits

Author SHA1 Message Date
c9f30559b5 add: Basement HTPC to infrastructure docs
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 15:38:10 -05:00
2c8dbe29c8 add: Traefik route for dsm.kavcorp.com
Added Synology DSM access via Traefik at dsm.kavcorp.com
Backend: http://10.4.2.13:5001 (DSM uses HTTP on this port)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-02 20:24:48 -05:00
c12c531c33 add: Guest VLAN access to Traefik HTTPS
Allow Guest VLAN to access Traefik on port 443 so guests can use
https://jellyfin.kavcorp.com etc. with valid Let's Encrypt certs.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 22:06:17 -05:00
3f0c050ff6 add: Internal DNS for kavcorp.com domains via Pi-hole
- Added *.kavcorp.com DNS entries pointing to Traefik (10.4.2.10)
- Internal clients can use https://jellyfin.kavcorp.com with valid certs
- Same URLs work internally and externally, no port numbers needed
- Also added Traefik internal entrypoint on :8080 for .kav HTTP access

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 22:04:18 -05:00
e4506d6a07 Auto-commit: 2025-12-28 22:00 session changes 2025-12-28 22:00:45 -05:00
9002edcf9a add: Guest VLAN access to Jellyfin and Jellyseerr
Added OPNsense firewall rules allowing Guest VLAN (10.4.30.0/24) to
access media services:
- Jellyseerr: 10.4.2.25
- Jellyfin: 10.4.2.26

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:53:40 -05:00
1cfd87f450 fix: Guest VLAN internet - DNS pointed to non-existent IP
Root cause: OPNsense DHCP and firewall rules referenced 10.4.2.129
for Pi-hole DNS, but that IP doesn't exist. Pi-hole is at 10.4.2.11.

Updated all references in OPNsense config.xml and documentation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 21:45:29 -05:00
24728729f2 add: RustDesk server deployment
- LXC 129 on pm2 with static IP 10.4.2.36
- Local DNS: rustdesk.kav
- Updated INFRASTRUCTURE.md and CHANGELOG.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 18:14:00 -05:00
87e3a74aa1 Auto-commit: 2025-12-28 17:41 session changes 2025-12-28 17:41:52 -05:00
4ee4f357c8 config: Update Stop hook to use SSH for git push
Changed from HTTPS to SSH URL (gitea@git.kavcorp.com:kavren/proxmox-infra.git)
to fix authentication issues with auto-push.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:35:17 -05:00
3dd1581a3e docs: Add Gitea integration and tea CLI instructions
- Added Gitea Integration section with server details
- Documented tea CLI as the tool for interacting with Gitea
- Added issue tracking workflow for enhancement management
- Included common tea commands reference

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:32:33 -05:00
9051c84bae docs: Network infrastructure cleanup - static IPs, local DNS, SSH access
- Complete static IP migration for all containers
- Configure Pi-hole local DNS with .kav hostnames
- Add SSH provisioning script for all containers
- Create NETWORK-MAP.md with complete IP allocation
- Create network-map.sh for dynamic map generation
- Update INFRASTRUCTURE.md with new service map
- Add .kav TLD and SSH policy decisions to DECISIONS.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-28 17:11:32 -05:00
1d649c4349 Auto-commit: 2025-12-28 16:32 session changes 2025-12-28 16:32:51 -05:00
128b38a457 Auto-commit: 2025-12-23 15:51 session changes 2025-12-23 15:51:16 -05:00
6b6e029728 docs: Update Frigate and Home Assistant IPs
Both services use DHCP and IPs changed:
- Frigate: 10.4.2.8 → 10.4.2.176
- Home Assistant: 10.4.2.62 → 10.4.2.175

Traefik configs updated on LXC 104.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 11:56:47 -05:00
9cdf6e31ef Auto-commit: 2025-12-22 16:52 session changes 2025-12-22 16:52:44 -05:00
8cdda4933c docs: Complete media stack IP migration
Migrated all media services to 10.4.2.20-29 range:
- Sonarr: 10.4.2.20
- Whisparr: 10.4.2.21
- Prowlarr: 10.4.2.22
- Bazarr: 10.4.2.23
- Radarr: 10.4.2.24
- Jellyseerr: 10.4.2.25
- Jellyfin: 10.4.2.26
- Kometa: 10.4.2.27
- Recyclarr: 10.4.2.28
- Notifiarr: 10.4.2.29
- Immich: 10.4.2.30

All Traefik configs updated.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 16:51:20 -05:00
9c96acb428 docs: Update git remote to HTTPS domain
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 16:40:12 -05:00
d999047b1c docs: Update migration plan - radarr conflict resolved
- Radarr moved from 10.4.2.16 to 10.4.2.24 to resolve UniFi conflict
- UniFi, Immich, Gitea verified working through Traefik
- Updated current IP maps

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 16:35:39 -05:00
9784c51ffb Auto-commit: 2025-12-22 16:25 session changes 2025-12-22 16:25:12 -05:00
7e4ff79a11 docs: Add IP migration plan, fix gateways and static IPs
- Created IP-MIGRATION-PLAN.md with new allocation scheme
- Fixed all LXC gateways from 10.4.2.254 (Asus) to 10.4.2.1 (OPNsense)
- Set static IPs: UniFi (.16), Gitea (.17), Immich (.30)
- Migrated critical containers to local-lvm storage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 15:58:23 -05:00
cc72ed8309 Auto-commit: 2025-12-22 15:43 session changes 2025-12-22 15:43:29 -05:00
c3f567f639 docs: Document NAT reflection and Traefik gateway fix
- Root cause was Traefik using Asus (10.4.2.254) as gateway instead of OPNsense (10.4.2.1)
- Enabled NAT reflection in OPNsense for VLAN access via WAN IP
- Fixed NFS mount issues with KavNas

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 15:20:30 -05:00
4815a70dd0 Auto-commit: 2025-12-22 00:34 session changes 2025-12-22 00:34:55 -05:00
913b413522 docs: Document NAT reflection fix for internal service access
- Pure NAT mode doesn't work when clients/servers on same subnet
- Must use enablenatreflectionhelper for proper source NAT
- Added to Common Gotchas in DECISIONS.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 00:16:40 -05:00
34825ed1a3 docs: Add Protectli Vault as failover option
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-22 00:15:40 -05:00
9fd5735586 docs: Add NAT port forward migration and port range fix
- Migrated all port forwards from Asus router to OPNsense
- Documented port range NAT syntax (local-port must be starting port only)
- Added Common Gotcha #4 for port range rules in DECISIONS.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 23:55:19 -05:00
9aacc8e19d docs: Add WireGuard VPN and AT&T passthrough setup
- WireGuard configured on OPNsense (port 51820, 10.10.10.0/24)
- AT&T IP Passthrough enabled for public IP on OPNsense
- qemu-guest-agent and tailscale plugins installed

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 23:47:00 -05:00
13966f2b09 docs: Add firewall fixes and OPNsense config patterns
- Document LAN→IoT firewall rule for HA/Frigate access
- Add OPNsense interface naming (opt1, not lan in config.xml)
- Document IPv6 rule fix that was blocking ruleset loading
- Add pfctl troubleshooting commands
- Mark network isolation tests complete

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 23:01:34 -05:00
e6ad3bcf1d docs: Mark Asus DHCP cutover complete
OPNsense is now the sole DHCP server for LAN (10.4.2.0/24).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 22:40:24 -05:00
66763e3f10 Auto-commit: 2025-12-21 22:33 session changes 2025-12-21 22:33:16 -05:00
ae071a5064 docs: VLAN isolation working, OPNsense WAN cutover complete
- Updated INFRASTRUCTURE.md with VLAN traffic path and required configs
- Updated CHANGELOG.md with WAN cutover and VLAN troubleshooting fixes
- Updated TASKS.md to reflect completed network work
- pm4 bridge VLAN config made persistent via post-up commands
- Pi-hole listeningMode changed to ALL for multi-subnet DNS

Key fixes:
- pm4 vmbr0 bridge-vlan-aware with VLANs 10,20,30 on eno1
- Pi-hole veth added to VLANs for routed traffic
- Pi-hole gateway set to OPNsense (10.4.2.1)
- OPNsense default route fixed to use WAN gateway

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 22:29:19 -05:00
e93030ba9b docs: Complete OPNsense VLAN and firewall configuration
- Updated CHANGELOG with implemented VLAN config (VLANs 10, 20, 30)
- Updated DECISIONS with complete VLAN architecture and firewall rules
- Updated INFRASTRUCTURE with VLANs/subnets table and bridge configs
- Updated TASKS to mark VLAN/firewall work complete, add UniFi VLAN tasks
- Updated README last updated date

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 20:52:38 -05:00
b69435bd57 add: Traefik routes for UniFi and OPNsense
- unifi.kavcorp.com → 10.4.2.242:8443
- opnsense.kavcorp.com → 10.4.2.1
- Resized Traefik LXC rootfs to 4GB (was 2GB, kept filling up)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 19:25:57 -05:00
e0a64b1b92 docs: Add DHCP-based network isolation strategy
- Document OPNsense WAN configuration (pm4 vmbr1 with USB NIC)
- Add DHCP-based isolation workaround for unmanaged Gigabyte switches
- Plan subnet scheme: LAN (10.4.2.0/24), IoT (10.4.10.0/24), Guest (10.4.20.0/24)
- Document planned OPNsense firewall rules for isolation
- Update tasks with OPNsense migration and isolation steps
- Fix Claude Code hooks settings (remove matcher from Stop hook)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 19:20:07 -05:00
9e050d4677 add: OPNsense VM and UniFi network config
- OPNsense VM 130 on pm4 (KavSense, 10.4.2.1)
- VLAN 10 configured (10.4.10.0/24) for future use
- pm4 vmbr0 now VLAN-aware
- UniFi SSIDs: Trusted, IOT, Guest
- VLAN testing paused until GiGaPlus switches arrive

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 19:31:51 -05:00
fe83b760f3 add: UniFi Controller LXC on pm4
Deployed for managing U7 AP in server closet testing.
IP: 10.4.2.242 (DHCP for now)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 16:55:02 -05:00
7fd75250c6 docs: Optimize server closet port allocation
- pm1 uses 10G port (auto-negotiates 2.5G, no PoE needed)
- pm2, pm3, pm4, U6 Enterprise use 2.5G PoE ports
- All 6 ports utilized, no injector needed
- GS308EP dedicated to cameras

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 14:09:02 -05:00
8d991bf82e docs: Add pm1-3 nodes to server closet topology
- pm1, pm2, pm3 connect via GS308EP (1G managed PoE)
- GS308EP uplinks to GiGaPlus for 10G backhaul access
- pm4 connects directly to GiGaPlus at 2.5G (OPNsense host)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 14:06:57 -05:00
eb5676653f docs: Clarify NIC bridging for pm4 LXCs
- NICs use bridges (not passthrough) so other LXCs can share
- vmbr0 (Intel) shared by OPNsense LAN + all pm4 LXCs
- vmbr1 (USB) dedicated to OPNsense WAN
- Added diagram showing LXC connectivity

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 14:05:40 -05:00
3674bcc147 docs: Update network plan - OPNsense on pm4 with USB NIC
- OPNsense moves to pm4 (server closet, next to AT&T modem)
- USB 2.5G NIC for WAN (~$25), Intel I226-V for LAN
- pm4 has USB 3.1 (10Gbps) - verified
- Updated topology diagram with pm4/OPNsense placement
- Total cost now ~$605

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 12:41:38 -05:00
ef02ff5eb6 docs: Add comprehensive network upgrade plan
- Created NETWORK-UPGRADE-PLAN.md with full topology and VLAN design
- Hardware: 2× GiGaPlus 10G PoE ($202), 2× U7 Pro ($378) = $580 total
- 10G backhaul between server closet and basement
- VLANs: Trusted (1), Servers (10), IoT (20), Guest (30)
- OPNsense VM for routing, UniFi Controller LXC for APs
- Updated TASKS.md with implementation checklist
- Updated DECISIONS.md with architecture rationale

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 12:32:05 -05:00
6449212620 docs: Add Pi-hole Traefik config and router setup
- Added Pi-hole section to CONFIGURATIONS.md
- Includes Traefik config, DNS setup, and Asus router instructions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 10:00:09 -05:00
fae16719e4 fix: Correct Pi-hole location to LXC 103 on pm4
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 09:56:36 -05:00
7f59443424 add: Pi-hole LXC with Unbound recursive DNS
- IP: 10.4.2.129 on pm2
- Domain: pihole.kavcorp.com
- Unbound configured for recursive DNS resolution

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 09:54:44 -05:00
eb4a9b3d2b fix: Update hooks config to new format
Changed hook event name from 'stop' to 'Stop' and restructured
to use the new matcher/hooks array format required by Claude Code.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 09:43:23 -05:00
18b4eb9bb6 docs: Remove Shinobi and old Frigate (LXC 103, 111 purged)
- Destroyed LXC 103 (Shinobi) and LXC 111 (old Frigate)
- Removed Shinobi Traefik config
- Cleaned up documentation references

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 21:24:30 -05:00
e8d34127b6 docs: Update Frigate migration and Traefik config
- Frigate migrated to LXC 128 (Docker) with auth enabled
- Updated IP to 10.4.2.8, port 8971 for authenticated access
- Traefik uses HTTPS backend with insecureSkipVerify for self-signed cert
- Added logrotate for Traefik logs (50MB max, 3 rotations)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 21:13:20 -05:00
7b78c474f5 docs: Add git commit policy to CLAUDE.md
Instructs Claude to commit frequently and evaluate after each tool call
whether changes should be committed. Includes commit message format
and guidelines for immediate vs batched commits.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07 22:18:42 -05:00
b9f73eb1c7 Add Claude Code hooks for auto-commit on session end
- Automatically commits and pushes changes when Claude Code session ends
- Only triggers if there are uncommitted changes
- Includes timestamp in commit message

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07 22:16:48 -05:00