HomeLabDocs/homelab_inventory.md

3.8 KiB

🏡 Homelab Inventory and Recovery Reference

🖥️ Physical Hosts

proxmox04

  • IP: 192.168.1.37
  • Hostname: proxmox04
  • Proxmox Version: 8.4.0
  • Kernel: 6.8.12-9-pve
  • Boot Drive: Crucial 256GB SATA SSD
  • Rack: 10" Lab Rax (3D-printed)
  • Firewall: Enabled (host-level)
  • NTP: Enabled
  • Root Access: Enabled
  • SSH: Enabled (static IP)

🧠 Hardware

  • Motherboard: ASRock B550 Phantom Gaming-ITX/AX
  • CPU: AMD Ryzen 5 5600G (6c/12t)
  • RAM: 62 GiB DDR4
  • Swap: 8 GiB

💾 Storage

  • ZFS Pool: vm_data (NVMe)
    • /vm_data/subvol-###-disk-0
    • /vm_data/vm-100-disk-1
  • ZFS Pool: zfs_pool (RAIDZ1)
    • 5x 6TB HDDs
    • Usable: ~21.7TB
    • /zfs_pool/nc_data → Nextcloud
    • /zfs_pool/immich/immich_library → Immich media
    • /zfs_pool/immich/immich_database → Immich PostgreSQL
  • Additional SSD: /dev/sda, 525GB, used for torrents → /mnt/torrents

🔁 Backup & Sync Overview

PBS (proxmox-backup-server)

  • Hostname: backup
  • IP: 192.168.1.35
  • Datastore: /mnt/backup_nvme (name: proxmox04-backups)
  • Prune Policy:
    • Hourly: 7
    • Daily: 4
    • Weekly: 6
    • Monthly: 2
    • Yearly: 1
  • GC Schedule: Daily
  • PBS Encryption: Disabled (using rclone crypt only)
  • Offsite Sync: Daily to B2 via rclone with encryption (b2-pbs-encrypted)
  • rclone path: All of /mnt/backup_nvme

📦 Database Backups

Immich

  • Runs in: LXC 109 (Proxmox04)
  • DB Engine: PostgreSQL
  • DB Path: /zfs_pool/immich/immich_database
  • Script: /usr/local/bin/immich-db-backup.sh (on proxmox04)
  • Dump Path: /mnt/backup_nvme/db_dumps/
  • Cron: 30 4 * * * → Immich DB dump

Nextcloud

  • Runs in: LXC 115 (Nextcloud AIO via Docker)
  • DB Engine: PostgreSQL 17.5
  • DB Container: nextcloud-aio-database
  • Script: /usr/local/bin/nextcloud-db-backup.sh (inside LXC 115)
  • Dump Path: /mnt/nc_data/db_dumps/
  • Cron: 0 4 * * * → Nextcloud DB dump

🧠 Credential Management

  • All critical secrets are stored in Bitwarden under homelab/
    • rclone crypt keys
    • PBS access
    • Database passwords (Nextcloud, Immich)
    • Cloudflare tunnel tokens

🧩 LXC Containers & Apps (Proxmox04)

CT ID Name IP Address Role/Service
100 HomeAssistant 192.168.1.36 Home automation
102 Gitea 192.168.1.40 Markdown/docs repo
103 Pi-hole 192.168.1.3 DNS ad blocker
104 Sonarr 192.168.1.43 TV automation
105 Radarr 192.168.1.43 Movie automation
106 Jackett 192.168.1.45 Indexer proxy
107 FlareSolverr 192.168.1.46 Cloudflare captcha bypass
108 qBittorrent 192.168.1.47 Torrent client
109 Immich 192.168.1.48 Photo library
110 Nextcloud N/A Legacy or placeholder
111 Cloudflared 192.168.1.49 Cloudflare tunnel
112 Homarr 192.168.1.33 Dashboard
113 Prowlarr 192.168.1.34 Indexer manager
114 Collabora N/A Office suite
115 Nextcloud 192.168.1.50 Nextcloud AIO stack

🎯 Restore Strategy (high-level)

  • PBS Restore:
    • Use GUI or CLI to select CT/VM → restore to new ID
  • Database Restore:
    • gunzip the .sql.gz dump
    • Use psql inside Immich (109) or docker exec for Nextcloud
  • Media Restore:
    • ZFS rollback or rsync from backup

This doc should be stored in Gitea (HomeLabDocs) and printed to paper or PDF for offline disaster recovery.