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"