Infrastructure Roadmap Homelab

Project: Secure and Segmented Network with pfSense


🎯 Project Vision

Build a professional, secure, and scalable homelab network infrastructure, based on pfSense, allowing segmentation by VLANs, blocking malicious content, advanced network monitoring, and self-hosting services.

Guiding Principles: - Security First: Deep defense (firewall + IDS + DNS filtering) - Scalability: Modular architecture prepared for growth - Performance: Optimized hardware, continuous monitoring - Controlled Cost: Balance between investment and functionality


✅ Phase 1: Foundations (Completed)

Duration: 2 weeks (Novembre 2025) Budget Invested: 112€

Base Infrastructure

Hardware Deployed

  • Mini PC Zotac ZBOX CI337 nano (85€)
    • Intel N100, 8GB DDR5, 128GB SSD
    • 2x Realtek GbE optimisés (realtek-re-kmod)
    • pfSense 2.8.1 installé et opérationnel
  • Access Point Afoundry EW1200 (27€)
    • WiFi AC1200 dual-band (2.4 + 5 GHz)
    • Native 802.1Q VLAN support
    • Multiple SSID (jusqu’à 8)

Software and Services

  • pfSense Community Edition 2.8.1
    • Firewall stateful moderne
    • NAT, routing, DHCP server
    • DNS Resolver (Unbound)
  • Security Packages Installed
    • pfBlockerNG-devel: Blocage DNS (DNSBL) + IP filtering
    • Suricata: IDS/IPS avec règles ET Open
    • WireGuard: Modern VPN (ready to configure)
    • ACME: Automatic Let’s Encrypt Certificates
    • ntopng: Real-time network monitoring
    • iftop: Bandwidth monitoring

Network Architecture

  • Simple topology in place: Internet → Box ISP → pfSense (WAN+LAN) → EW1200 AP → Clients WiFi

text - ✅ Preliminary segmentation: 1 VLAN (LAN principal) - ✅ Active Services: DHCP, DNS, Firewall, AdBlock, IDS

Security Implemented

  • Active Ad Blocking (pfBlockerNG DNSBL)

  • 500k+ domains blocked (ads, trackers, malware)

  • Daily automatic update

  • Blocking rate: 20-40% DNS queries

  • IDS Suricata on WAN

  • IPS inline mode (active blocking)

  • ET Open rules activated

  • Catégories: attack, dos, exploit, malware, scan

  • Firewall rules: Deny by default, explicit allow

  • WiFi Encryption: WPA2-PSK/AES

Documentation

  • Guides written:
  • Part 1: pfSense Installation and Initial Configuration
  • Part 2: WiFi AP and pfBlockerNG Deployment
  • Roadmap (this document)

🚀 Phase 2: Network Segmentation (Short Term)

Estimated Duration: 3-4 weeks Estimated Budget: 80-150€

Objectives

Implement a multi-segment VLAN architecture to isolate different traffic types: - VLAN 10 (LAN): Main Network (laptops, smartphones) - VLAN 30 (IoT): Isolated Connected Objects (smart home, cameras) - VLAN 99 (Guest): Guests without LAN access - VLAN 50 (Management): Network equipment admin access

Required Hardware

8-Port Managed Switch

Recommended Models: - TP-Link TL-SG108E (40-50€) - Budget - Netgear GS308T (60-80€) - Intermediate - UniFi Switch Flex Mini (70-90€) - Prosumer

Required Features: - Support 802.1Q VLAN tagging - Port-based VLANs - Web management interface - Fanless (silent)

Network Configuration

pfSense VLANs

Interfaces > Assignments > VLANs: VLAN 10 (LAN): Existing main network VLAN 30 (IoT): [Subnet IoT]/24 VLAN 99 (Guest): [Subnet Guest]/24 VLAN 50 (Mgmt): [Subnet Management]/24

text

DHCP Services per VLAN: - Distinct IP pools - DNS = pfSense (pfBlockerNG filtering for all) - DHCP Lease: 24h (LAN), 2h (Guest)

EW1200 Multiple SSID

Segmented WiFi Configuration: SSID: Homelab_Principal → VLAN 10 (WPA2-PSK) SSID: Homelab_IoT → VLAN 30 (WPA2-PSK) SSID: Homelab_Guest → VLAN 99 (WPA2-PSK, AP Isolation)

text

Security per VLAN: - VLAN 30 (IoT): Client Isolation enabled - VLAN 99 (Guest): No inter-VLAN access

Firewall Rules per VLAN

VLAN 10 (LAN): Full Internet access + inter-VLAN mgmt VLAN 30 (IoT): - Internet: Allow ports 80/443 only - Inter-VLAN: Block (except LAN for control devices) - IoT cloud destinations: Explicit Whitelist

VLAN 99 (Guest): - Internet: Allow - Inter-VLAN: Block ALL - Session time: 4 hours (Captive Portal optionnel)

VLAN 50 (Management): - Admin access to network equipment only - No Internet access (except updates)

Phase 2 Deliverables


🏗️ Phase 3: Rack Infrastructure (Short Term)

Estimated Duration: 1-2 weeks Estimated Budget: 70-150€

Objectives

Organize the infrastructure in a professional rack to improve cabling, cooling, and scalability.

Hardware to Acquire

Mini Server Rack

Recommended Size: 9U or 12U (19 pouces standard)

Options Tanger: - Avito.ma second hand: 250-400 dh (23-36€) - iris.ma new: 990 dh (90€) - DIY wood: 100-200 dh (9-18€)

Selection Criteria: - Depth: 400-600mm (sufficient for mini PC) - Ventilation: Side perforations - Doors: Front (glass/grid) + removable rear - Wheels: Mobility (optional)

Rack Surge Protector Power Strip

Options: - Rack power strip 19” 1U - 8 sockets (600-900 dh / 54-81€) - Standard surge protector power strip 8-10 sockets (150-300 dh / 14-27€)

Mandatory Protection: - Integrated surge protector (overvoltage protection) - Switch with indicator light - Cable 2-3m minimum

Rack Accessories

  • Fixed Shelves 1U (x2-3): 50-150 dh/piece
    • To place mini PC pfSense and EW1200
  • 8-port Patch Panel (optionnel): 100-200 dh
    • Ethernet cable organization
  • Cable Pass-Throughs (x2): 30-80 dh/piece
    • Clean cable management
  • Blank Panels 1U (x2-3): 20-50 dh/piece
    • Aesthetics + optimized airflow

Target 9U Rack Organization

┌─────────────────────────┐ │ 1U - 8-socket Power Strip│ ← Top (easy wiring) ├─────────────────────────┤ │ 1U - 8p Patch Panel│ ← Patch panel (optionnel) ├─────────────────────────┤ │ 1U - Shelf: pfSense │ ← Zotac ZBOX CI337 ├─────────────────────────┤ │ 1U - Shelf: EW1200 │ ← Access Point WiFi ├─────────────────────────┤ │ 1U - Managed Switch │ ← TP-Link ou Netgear ├─────────────────────────┤ │ 2U - Expansion Space │ ← Future serveur/NAS ├─────────────────────────┤ │ 2U - Proxmox / Docker │ ← Phase 4 └─────────────────────────┘

text

Phase 3 Deliverables


🔐 Phase 4: Self-Hosted Services (Mid Term)

Estimated Duration: 4-6 weeks Estimated Budget: 0-200€ (selon matériel existant)

Objectives

Deploy secure self-hosted services behind pfSense, accessible locally and remotely via VPN.

Server Infrastructure

Option A: Reuse Existing Proxmox Server

Proxmox network migration: - Reconfigure Proxmox network interfaces to new subnet - Integrate Proxmox to VLAN 10 (LAN) or VLAN 50 (Management) - Test VMs/Containers connectivity after migration

Option B: Dedicated Docker Server

Additional Mini PC (second hand): - Beelink, Intel NUC, ou similaire (100-200€) - Docker + Docker Compose - Lightweight containerized services

Services to Deploy

Network Management and Monitoring

  • Uptime Kuma: Monitoring uptime services
  • Grafana + Prometheus: Metrics Dashboards
  • LibreNMS: SNMP network equipment monitoring
  • Netdata: Real-time server monitoring

Productivity and Collaboration

  • Nextcloud: Personal cloud (files, calendar, contacts)
  • OnlyOffice ou Collabora: Online office suite
  • Bookstack: Internal Wiki/documentation
  • Vaultwarden: Password Manager (Bitwarden)

Multimedia

  • Jellyfin ou Plex: Media Server (movies, series, music)
  • Photoprism: Smart photo gallery
  • Audiobookshelf: Audiobook library

Automation and IoT

  • Home Assistant: Centralized home automation (VLAN IoT)
  • Node-RED: Workflow automations
  • Mosquitto MQTT: IoT Broker

Reverse Proxy and Security

  • Nginx Proxy Manager: Reverse proxy + automatic SSL
  • Authelia ou Authentik: SSO (Single Sign-On)
  • Fail2Ban: Brute-force protection

Secure Access

WireGuard VPN

road warrior configuration: - Nomadic clients (laptop, smartphone) - Secure access to internal services from Internet - Split tunneling (only LAN traffic via VPN)

Configuration: VPN > WireGuard > Tunnels > Add Listen Port: 51820 Tunnel Address: [Subnet VPN]/24 Peers: Laptop, Smartphone, Tablette

text

WireGuard Firewall Rules: - Allow WireGuard → LAN services - Block WireGuard → VLAN IoT (except Home Assistant) - Allow WireGuard → Internet (optionnel)

Phase 4 Deliverables


📊 Phase 5: Advanced Monitoring (Mid Term)

Estimated Duration: 2-3 weeks Estimated Budget: 0-50€

Objectives

Implement a complete monitoring stack with centralized dashboards, automatic alerts, and performance metrics.

Monitoring Stack

Grafana + Prometheus

Metrics collected: - pfSense: CPU, RAM, WAN/LAN throughput, firewall states - Servers: Uptime, CPU, RAM, disk, network - Services: Availability, response time - Network: Latency, packet loss, bandwidth

Pre-configured Dashboards: - pfSense Dashboard (community template) - Node Exporter Dashboard (Linux servers) - Docker Containers Dashboard

Loki + Promtail

Centralized log aggregation: - pfSense Logs (firewall, IDS Suricata, pfBlockerNG) - Linux server logs (syslog, auth, kernel) - Docker containers logs

Search and analysis: - Query language LogQL - Temporal filters - Event correlation

Alerting

Alertmanager + Ntfy.sh: - Slack/Discord/Email Alerts - Mobile push notifications - Configurable thresholds (CPU >80%, disk >90%, service down)

Phase 5 Deliverables


🌐 Phase 6: High Availability (Long Term)

Estimated Duration: 4-6 weeks Estimated Budget: 150-300€

Objectives

Implement redundancy on critical components to eliminate SPOF (Single Point of Failure).

pfSense High Availability (CARP)

Required Hardware

  • Second mini PC identical or similar (100-200€)
    • Beelink, HUNSN, Topton N5105/N100
    • 2x NIC Ethernet minimum

CARP Configuration

How it works: - 2 pfSense systems in master/backup - Virtual IP (VIP) shared via CARP - Real-time config synchronization (xmlrpc) - Automatic failover <2 seconds

HA Architecture: Internet → Box ISP → [VIP pfSense] ↓ ┌──────┴──────┐ pfSense1 pfSense2 (Master) (Backup) └──────┬──────┘ Switch

text

Redundant Managed Switch

Stack switches or LACP: - 2x switches with port aggregation - Redundant link between switches (stack or LAG) - Redundant uplink to pfSense (LACP)

Redundant Storage

NAS with RAID: - Synology, QNAP, ou TrueNAS (DIY) - Minimum RAID 1 (2 mirror disks) - Backup 3-2-1: 3 copies, 2 media, 1 off-site

UPS (Uninterruptible Power Supply)

Recommended Model: 600-1000VA - Power outage protection - Autonomy 10-20 minutes (clean shutdown) - USB monitoring via NUT (Network UPS Tools)

Budget: 80-150€

Phase 6 Deliverables


🚀 Phase 7: Advanced Optimizations (Long Term)

Estimated Duration: Ongoing Estimated Budget: Variable

Advanced Security

Multi-Factor Authentication (MFA)

  • pfSense WebGUI: 2FA Authentication (TOTP)
  • Services: SSO with Authelia/Authentik + mandatory 2FA
  • WireGuard VPN: Certificats + pre-shared keys

Internal Certificate Authority

  • Step-CA ou OpenSSL CA maison
  • Locally signed internal SSL certificates
  • Compromised certificate revocation

Threat Intelligence

  • Feeds IP reputation dans pfBlockerNG
  • GeoIP blocking: Block irrelevant countries
  • CrowdSec: Threat intel community-driven

Performance

Hardware Offloading

  • Netmap pour Suricata (si CPU bottleneck)
  • Hardware offloading enabled after Suricata validation
  • Multi-queue NIC si upgrade hardware

DNS Cache

  • Optimized Unbound cache: TTL, prefetch
  • DNS over TLS (DoT) vers upstream (Cloudflare, Quad9)

QoS (Quality of Service)

  • Traffic shaping per VLAN
  • VoIP/video priority if applicable
  • Bandwidth limits per client/VLAN

Automation

Infrastructure as Code (IaC)

  • Ansible playbooks: Automatic server configuration
  • Terraform: Proxmox VMs Provisioning
  • Git: Versioning configurations

CI/CD Pipeline

  • Gitea ou GitLab: Internal Git server
  • Drone CI: Automatic Build/test/deploy
  • Watchtower: Docker containers Auto-update

Phase 7 Deliverables


📈 Success Metrics

Technical KPIs

Availability

  • pfSense Uptime: >99.5% (goal: 99.9%)
  • Critical service Uptime: >99% (Nextcloud, VPN)
  • MTTR (Mean Time To Repair): <1 hour

Performance

  • WAN Latency: <30ms (vers 8.8.8.8)
  • LAN Latency: <5ms (WiFi vers pfSense)
  • 5GHz WiFi Throughput: >300 Mbps réel
  • Ad Blocking: >20% DNS queries

Security

  • Intrusion attempts blocked: Suricata Monitoring
  • Updates: <7 days after release
  • Backups tested: Monthly test restore
  • Vulnerabilities: 0 critical unpatched >30 days

Operational KPIs

Costs

  • OPEX electricity: <10€/month
  • Hardware ROI: <2 years vs equivalent cloud solutions
  • Annual budget: <200€ (maintenance + upgrades)

Productivity

  • Daily management time: <15 min/day
  • Major incidents: <1 per quarter
  • Planned downtime: <2 hours/month

🎓 Acquired Skills

Networking

  • ✅ Protocoles TCP/IP, routing, NAT
  • ✅ VLANs 802.1Q, trunking
  • ✅ DNS, DHCP, fundamental network services
  • 🔄 QoS, traffic shaping
  • 🔄 Advanced routing protocols (BGP, OSPF - futur)

Security

  • ✅ Firewall stateful, advanced rules
  • ✅ IDS/IPS (Suricata)
  • ✅ DNS Filtering (pfBlockerNG)
  • ✅ VPN (WireGuard)
  • 🔄 Certificate management
  • 🔄 Threat intelligence

Systems

  • ✅ Linux system administration
  • ✅ FreeBSD (pfSense)
  • ✅ Virtualisation (Proxmox)
  • ✅ Containerisation (Docker)
  • 🔄 Ansible automation
  • 🔄 Infrastructure as Code

Monitoring

  • ✅ ntopng, iftop
  • 🔄 Grafana, Prometheus
  • 🔄 Loki, Promtail
  • 🔄 Alerting

Legend: ✅ Acquired | 🔄 In Progress | ⏳ Planned


💰 Global Estimated Budget

Expenditure Achieved (Phase 1)

Zotac ZBOX CI337 nano: 85€ Afoundry EW1200: 27€ Total Phase 1: 112€

text

Planned Short-Term Expenditure (Phases 2-3)

8p Managed switch: 40-80€ 9U Rack: 25-40€ Surge protector power strip: 15-30€ Rack accessories: 10-30€ Total Short Term: 90-180€

text

Planned Mid-Term Expenditure (Phases 4-5)

Mini PC server (opt): 0-200€ Storage disks: 50-100€ Total Mid Term: 50-300€

text

Planned Long-Term Expenditure (Phases 6-7)

Second pfSense (HA): 100-200€ NAS/RAID Disks: 150-400€ UPS: 80-150€ Total Long Term: 330-750€

text

Total Project Budget (3 years)

Minimum (basic): 252€ (Phase 1+2+3 minimal) Average (complete): 642€ (Phases 1-5 complete) Maximum (HA + pro): 1,492€ (All phases maximal)

text

Average monthly cost over 3 years: 7-41€/month depending on ambition

Equivalent cloud comparison: - Managed Firewall: 20-50€/month - VPN: 10€/month - Cloud storage 1TB: 10€/month - VPS Servers: 20-50€/month - Total cloud: 60-120€/month = 2,160-4,320€ over 3 years

Homelab ROI: 3-10x cheaper than cloud over 3 years


📅 Timeline Summary

Nov 2025 ━━━━━━━━━━━━━━━━━━━━━━━━━━ Phase 1 ✅ │ └─ pfSense Installation └─ EW1200 Deployment └─ pfBlockerNG Configuration

Déc 2025 ━━━━━━━━━━━━━━━━━━━━━━━━━━ Phase 2 🔄 │ └─ Managed switch └─ Multi-segment VLANs └─ Multiple WiFi SSIDs

Jan 2026 ━━━━━━━━━━━━━━━━━━━━━━━━━━ Phase 3 ⏳ │ └─ 9U Rack + accessories └─ Physical organization └─ Cable management

Fév-Mar 2026 ━━━━━━━━━━━━━━━━━━━━━━ Phase 4 ⏳ │ └─ Proxmox Migration └─ Containerized services └─ WireGuard VPN

Avr-Mai 2026 ━━━━━━━━━━━━━━━━━━━━━━ Phase 5 ⏳ │ └─ Monitoring Stack └─ Grafana dashboards └─ Automated Alerting

Jun-Sep 2026 ━━━━━━━━━━━━━━━━━━━━━━ Phase 6 ⏳ │ └─ pfSense HA (CARP) └─ NAS RAID └─ UPS

Oct 2026+ ━━━━━━━━━━━━━━━━━━━━━━━━━ Phase 7 ⏳ │ └─ Continuous Optimizations └─ Advanced security └─ IaC Automation

text


🎯 Project Objectives (3-Year Vision)

Technical

Learning

Community


🔗 Resources and References

Official Documentation

Communities

  • Reddit: r/PFSENSE, r/homelab, r/selfhosted
  • Forums: Netgate Forum, ServeTheHome
  • Discord: Homelab Community, pfSense Unofficial

Tools


📝 Notes and Lessons Learned

Successes

  • Controlled budget: Second-hand hardware + mini PC = optimal cost
  • Outstanding pfBlockerNG: Blocks 30%+ queries without complex configuration
  • EW1200 excellent choice: Native VLAN + dual-band performance
  • Diligent documentation: Huge time saver for troubleshooting

Challenges Encountered

  • ⚠️ Realtek Cards: Unstable generic driver → Solution: realtek-re-kmod
  • ⚠️ Intel CNVi WiFi: Unusable FreeBSD → Fallback: External AP
  • ⚠️ Firewall rules: Initial WAN blocking → Solution: Temporarily disable blockpriv

To Improve

  • 🔧 Regular backup: Automate weekly config snapshots
  • 🔧 Failover tests: Simulate failures regularly
  • 🔧 Live documentation: Internal Wiki (BookStack) instead of static Markdown

🚀 Innovation and Future Projects

Short Term (6 months)

  • Guest Captive Portal: Styled login page for guests
  • Pi-hole Secondary DNS: DNS redundancy with list synchronization
  • Tailscale mesh VPN: WireGuard alternative/complement

Mid Term (1-2 years)

  • Kubernetes cluster: Docker → K3s/MicroK8s Migration
  • GitOps: ArgoCD for automated deployments
  • Observability: Traces (Tempo), metrics (Prometheus), logs (Loki)
  • Homelab YouTube/Blog: Community experience sharing

Long Term (2-3 years)

  • Multi-site VPN: Connect homelab to remote site (family/friends)
  • Edge computing: Raspberry Pi edge nodes
  • AI/ML services: Local LLMs (Ollama), image recognition
  • Ham Radio integration: APRS, Meshtastic, LoRa

✅ Regular Maintenance Checklist

Daily (5 min)

Weekly (20 min)

Monthly (1-2h)

  • For English articles: your-article-title.md
  • For French articles: your-article-title-fr.md

The workflow will automatically: - Detect language from filename - Generate title from filename - Add current date - Clean YAML for Pandoc processing –>