My Proxmox Homelab Plan for Real-World Home Use Cases
Intro
After installing Proxmox VE 9.2 on my Dell OptiPlex 3070 Micro, the next step is deciding which services should actually run on it.
The goal of this homelab is not simply to create virtual machines for testing. I want to build a small server that provides useful services for daily use at home.
My current Proxmox server specifications are:
- Dell OptiPlex 3070 Micro
- Intel Core i3-9100T
- 16GB DDR4 RAM
- 256GB NVMe SSD
- Proxmox VE 9.2
- ZFS
My initial Proxmox architecture will be:
:::code
Proxmox VE
├── Privileged LXC: Frigate + Docker
├── LXC: Jellyfin
├── LXC: Monitoring
├── LXC: Immich + Docker
├── VM: Home Assistant OS
└── VM: Standby Windows or Linux
:::
1. Frigate for CCTV Detection
Purpose
Frigate will be used specifically for intelligent CCTV analysis.
My existing NVR will remain responsible for the main camera recording system. Frigate will not replace the NVR.
Deployment
Frigate will initially run inside Docker in a privileged LXC container.
:::code
Proxmox
└── Privileged LXC
└── Docker
└── Frigate
:::
Main Functions
Frigate will process RTSP streams from selected cameras and provide:
- Person detection
- Object detection
- Line-crossing detection
- Detection around the house perimeter
- Events that can be sent to Home Assistant
Scope Boundary
Frigate is only responsible for camera analysis and detection.
Long-term CCTV recording, media streaming, photo storage, and general network monitoring are outside the scope of this container.
If LXC hardware passthrough becomes difficult or unstable, I may move Frigate to a dedicated Linux VM.
2. Jellyfin for Local Media Streaming
Purpose
Jellyfin will be used as the home media server. Its main job is to organize and stream movies, TV shows, and other media to devices inside the home network.
Deployment
Jellyfin will run inside its own LXC container.
:::code
Proxmox
└── LXC
└── Jellyfin
:::
Main Functions
Jellyfin will provide:
- Movie and TV library management
- Local network streaming
- Media metadata
- Playback to TVs, phones, and computers
Direct Play will be preferred whenever possible. The Intel Core i3-9100T also has integrated Intel graphics, so hardware transcoding can be explored later if required.
Scope Boundary
Jellyfin will only handle media library management and playback. Large media files will eventually be stored outside the 256GB Proxmox system SSD.
3. Monitoring for Network and Server Visibility
Purpose
The monitoring container will collect and display information about the health of my home network and homelab.
Deployment
Monitoring tools will run inside a dedicated LXC container.
:::code
Proxmox
└── LXC
└── Monitoring
:::
Possible applications include:
- Grafana
- VictoriaMetrics or Prometheus
- Uptime Kuma
- Blackbox Exporter
Main Functions
This environment will monitor:
- Internet latency
- Internet uptime
- Proxmox availability
- Server uptime
- Network device availability
- CPU usage
- RAM usage
- Disk usage
- Service availability
The main benefit is historical visibility.
For example, if the internet becomes unstable, I can check previous latency and uptime data instead of relying on memory.
Scope Boundary
The monitoring container will only collect, store, and visualize infrastructure metrics. It will not control smart-home devices, analyze cameras, stream media, or manage personal photos.
4. Immich for Photo and Video Management
Purpose
Immich will be used as a private photo and video management platform.
Deployment
Immich will run using Docker inside a dedicated LXC container.
:::code
Proxmox
└── LXC
└── Docker
└── Immich
:::
Main Functions
Immich will provide:
- Photo library management
- Video library management
- Mobile photo backup
- Search and organization
- Private access to personal media
The application and database can remain on fast storage, while the main photo and video library can later be moved to larger storage.
Scope Boundary
Immich is dedicated to personal photos and videos. It will not be used for Jellyfin movies, CCTV recordings, system backups, or monitoring data.
5. Home Assistant OS for Home Automation
Purpose
Home Assistant will be the central platform for smart-home automation.
Deployment
Unlike the other services, Home Assistant OS will run as a full virtual machine.
:::code
Proxmox
└── VM
└── Home Assistant OS
:::
Main Functions
Home Assistant can integrate:
- Temperature sensors
- Smart lights
- Smart switches
- Network devices
- Frigate detection events
- Home status sensors
- Automation routines
For example, a Frigate person-detection event could trigger a notification or automation inside Home Assistant.
Scope Boundary
Home Assistant will focus on device integration and automation. It will not perform the actual CCTV object detection, media streaming, infrastructure monitoring, or photo management. Those functions remain handled by their dedicated services.
6. Standby Windows or Linux VM
Purpose
The standby VM will provide a general-purpose environment for temporary tasks.
Deployment
This will be a normal Proxmox virtual machine.
Depending on the requirement, it may run:
- Windows (Most likely windows LTSC version)
- Ubuntu
- Debian
- Another Linux distribution
Main Functions
Possible uses include:
- Remote administration
- Network troubleshooting
- Software testing
- Configuration utilities
- Temporary development
- Windows-only applications
Scope Boundary
This VM is not intended to host permanent production services. Permanent applications should remain in their dedicated LXC containers or VMs.
7. Resource Planning
Resource allocation is separate from the function of each service.
The current host has:
- Intel Core i3-9100T
- 4 cores / 4 threads
- 16GB RAM
- 256GB NVMe SSD
A possible initial allocation is:
:::code
Frigate
2 vCPU
2GB RAM
Jellyfin
1 vCPU
2 GB RAM
Monitoring
1 vCPU
1 GB RAM
Immich
2 vCPU
4 GB RAM (could go up to 6GB depending on usage)
Home Assistant OS
2 vCPU
2 GB RAM
Standby VM
2 vCPU
2 GB RAM
:::
Proxmox can overcommit CPU because virtual CPUs do not represent permanently reserved physical cores. RAM requires more careful planning because all active services consume real memory.
For this reason, 16GB should be enough for initial testing, but it may become restrictive when Frigate, Immich, Jellyfin, monitoring, and Home Assistant run simultaneously.
8. Planned RAM Upgrade
The current system uses:
- 16GB DDR4
- 2 x 8GB
I am still thinking to intentionally put 16 GB as a limit to do optimization, not just making upgrade to runs everything. But in upgrade required, I might go with 2 x 16GB.
9. Storage Planning
Storage is a separate concern from CPU and RAM allocation. The current server uses a 256GB NVMe SSD.
This drive will primarily contain:
- Proxmox VE
- LXC system disks
- VM system disks
- Application databases
- Configuration files
- Monitoring databases
It should not become the main storage location for large data sets. Large data will eventually be moved to additional storage.
Possible future storage layout:
256GB NVMe SSD
- Proxmox OS
- VM disks
- LXC disks
- Application databases
Additional SATA SSD, NAS, or other storage
- Frigate recordings
- Jellyfin media
- Immich photo library
- Immich video library
- Proxmox backups
Scope Boundary
The NVMe SSD is primarily compute and application storage. Bulk media, CCTV recordings, photo libraries, and backups should be stored separately.
10. Why Separate Every Service?
The main design principle of this Proxmox homelab is service separation.
Each workload has one clear responsibility:
- Frigate: CCTV detection
- Jellyfin: Media streaming
- Monitoring: Infrastructure visibility
- Immich: Personal photo and video management
- Home Assistant: Home automation
- Standby VM: Temporary general-purpose computing
This separation makes troubleshooting easier.
If Jellyfin has a problem, I can restart or rebuild the Jellyfin container without affecting Home Assistant or Frigate. It also makes backups, upgrades, resource limits, and security easier to manage.
Final Proxmox Homelab Architecture
:::code
Proxmox VE 9.2
├── Privileged LXC
│ └── Docker
│ └── Frigate
│ Purpose: CCTV detection
│
├── LXC
│ └── Jellyfin
│ Purpose: Media streaming
│
├── LXC
│ └── Monitoring
│ ├── Grafana
│ ├── VictoriaMetrics / Prometheus
│ └── Uptime Kuma
│ Purpose: Infrastructure monitoring
│
├── LXC
│ └── Docker
│ └── Immich
│ Purpose: Photo and video management
│
├── VM
│ └── Home Assistant OS
│ Purpose: Home automation
│
└── Standby VM
└── Windows or Linux
Purpose: Temporary administration and testing
:::
Conclusion
My Proxmox homelab is designed around real home use cases, with each service having a clearly defined responsibility.
- Frigate handles CCTV intelligence.
- Jellyfin handles local media streaming.
- Monitoring provides visibility into the network and servers.
- Immich manages personal photos and videos.
- Home Assistant controls home automation.
- The standby VM provides a flexible environment for temporary Windows or Linux workloads.
The current Dell OptiPlex 3070 Micro with an Intel Core i3-9100T, 16GB RAM, and 256GB NVMe SSD is enough to start building the environment.
The first likely upgrade will be 32GB RAM, followed by additional storage for CCTV recordings, media files, personal photos, and backups.
The end goal is not to run as many applications as possible, but to build a small, organized, and power-efficient Proxmox homelab where every service has a clear purpose.
:::toc enable
Post a Comment for "My Proxmox Homelab Plan for Real-World Home Use Cases"
Post a Comment