Building My First Proxmox Homelab
A technical overview of my first always-on Proxmox server: a Minisforum UM890 Pro running virtual machines, LXC containers, automation, agentic AI infrastructure, monitoring, and game servers—with a NAS, VLANs, OPNsense, media services, and dedicated AI hardware still planned.
Building My First Proxmox Homelab
Status:
building
Host: Minisforum UM890 Pro
Hypervisor: Proxmox VE 9.1.7
Overview
This is my first serious homelab and my first experience running a computer as a permanent server.
The host is a Minisforum UM890 Pro with:
| Component | Specification |
|---|---|
| CPU | AMD Ryzen 9 PRO 8945HS |
| Graphics | AMD Radeon 780M |
| Memory | 64 GB RAM |
| Storage | 1 TB Kingston NVMe SSD |
| Hypervisor | Proxmox VE 9.1.7 |
| Base system | Debian 13 |
| Storage backend | LVM-thin through local-lvm |
Minisforum, please sponsor me.
The machine is now my always-on environment for:
- development;
- automation;
- agentic AI experiments;
- monitoring;
- self-hosted services;
- game servers.
The homelab works, but it is still unfinished.
There is currently:
- no dedicated AI workstation;
- no NAS;
- no dedicated OPNsense machine;
- no VLAN segmentation;
- no media server;
- no network-wide ad blocker.
Why I built it
Before this project, I did not have a machine dedicated to running services continuously.
I wanted one computer that could stay online, host multiple environments, and give my projects somewhere permanent to run.
I also wanted to learn virtualization seriously rather than only running occasional desktop VMs.
My current rule is simple:
- use a VM when I want a complete operating system or several services together;
- use an LXC container when the machine has one main purpose.
Host configuration
Hostname: pve.homelab
Address: 192.168.0.10/24
Gateway: 192.168.0.1
Bridge: vmbr0
Storage: local-lvm
The host currently uses:
- one active network interface;
- one Linux bridge,
vmbr0; - one flat
192.168.0.0/24network; - one main NVMe drive;
- Tailscale for remote access.
There are currently no VLANs and no network bond.
Infrastructure
VM 100 — Agent HQ
Role: Main development and agentic AI environment Status: Running OS: Ubuntu 24.04.4 LTS
| Resource | Allocation |
|---|---|
| CPU | 12 cores |
| RAM | 36 GB |
| Storage | 400 GB |
| Address | 192.168.0.11 |
| Machine type | Q35 |
| Firmware | OVMF UEFI |
Agent HQ is the main VM for my development work and Paperclip AI environment.
It receives direct access to:
- the Radeon 780M iGPU;
- the associated USB controller.
Current workloads include:
- Docker;
- local AI tooling;
- Paperclip AI;
- LM Studio Server;
- Node-based services;
- a custom homelab-builder application;
- PostgreSQL;
- IP address management tooling.
Docker workloads
| Service | Purpose |
|---|---|
homelab-builder-backend | Custom Go backend |
homelab-builder-frontend | Web interface |
homelab-builder-db | PostgreSQL database |
homelab-builder-ipam | IP address management |
The VM also runs llmster and another Node process used as an agent or connector.
LM Studio Server on this VM provides local model inference for other services in the homelab, including Pulse.
LXC 101 — SearXNG
Role: Self-hosted search for local AI Status: Stopped
| Resource | Allocation |
|---|---|
| CPU | 2 cores |
| RAM | 2 GB |
| Swap | 512 MB |
| Storage | 7 GB |
| Address | 192.168.0.12 |
SearXNG was originally intended to provide search for local AI workflows.
It worked, but its performance was too far behind OpenAI search, which was already included in my subscription.
So I had successfully self-hosted a slower version of something I was already paying for.
The container is currently stopped.
LXC 102 — n8n
Role: Automation and companion services Type: Unprivileged Debian LXC Status: Running
| Resource | Allocation |
|---|---|
| CPU | 4 cores |
| RAM | 4 GB |
| Swap | 2 GB |
| Storage | 10 GB |
| Address | 192.168.0.13 |
The container runs:
- n8n;
- the n8n task runner;
- Ollama;
- a Google Maps scraping service;
- a local lead-storage API;
- a Gotenberg-compatible PDF service;
- Postfix;
- Avahi;
- SSH.
It started as an n8n container and gradually became the main automation environment.
VM 103 — Game Server
Role: Game-server host Status: Running OS: Ubuntu 24.04.4 LTS
| Resource | Allocation |
|---|---|
| CPU | 6 cores |
| RAM | 16 GB |
| Storage | 160 GB |
| Address | 192.168.0.14 |
| Management | CubeCoders AMP |
| Remote access | Playit.gg |
This VM hosts game servers through CubeCoders AMP.
Configured instances include:
- Satisfactory;
- modded Minecraft;
- several Minecraft worlds;
- AMP’s ADS management service.
Playit.gg provides tunneled access to the game and AMP ports.
LXC 104 — Pulse
Role: Monitoring platform Status: Running Address:
192.168.0.15
Pulse runs in its own LXC container and monitors the homelab infrastructure.
Its AI features are supported by my own local model provider through LM Studio Server running inside Agent HQ — VM 100.
The flow is:
Pulse — LXC 104
│
└── AI requests
│
▼
Agent HQ — VM 100
│
└── LM Studio Server
│
▼
Local model inference
Pulse therefore has two roles in the homelab:
- monitoring the infrastructure;
- using locally hosted AI capabilities provided by VM 100.
Networking
Current topology
Internet
│
Router — 192.168.0.1
│
vmbr0
│
├── 192.168.0.10 Proxmox host
├── 192.168.0.11 Agent HQ
├── 192.168.0.12 SearXNG
├── 192.168.0.13 n8n
├── 192.168.0.14 Game server
└── 192.168.0.15 Pulse
Everything currently lives on one flat subnet:
192.168.0.0/24
There is currently:
- no VLAN separation;
- no internal reverse proxy;
- no dedicated firewall appliance;
- no network-wide DNS filtering.
Remote access is handled through:
| Method | Purpose |
|---|---|
| Tailscale | Proxmox administration |
| Playit.gg | Game-server access |
Storage
The current storage setup is:
1 × 1 TB Kingston NVMe SSD
└── LVM-thin
└── local-lvm
There is currently no:
- NAS;
- RAID;
- ZFS mirror;
- Proxmox Backup Server;
- separate bulk-storage pool.
This is enough for experiments, but storage and backups are still unfinished parts of the setup.
Hardware passthrough
The Agent HQ VM receives direct access to:
- the AMD Radeon 780M iGPU;
- the associated USB controller.
Getting this working required learning about:
- IOMMU;
- PCI passthrough;
- Q35;
- OVMF UEFI;
- guest drivers;
- multifunction PCI devices.
The first Ubuntu VM absorbed most of the damage while I learned how GPU passthrough, guest agents, Ethernet bridges, and memory allocation worked.
What I learned
This project introduced me to:
- Proxmox administration;
- QEMU/KVM virtual machines;
- LXC containers;
- Linux bridges;
- static IP configuration;
- QEMU guest agents;
- memory allocation;
- CPU passthrough;
- PCI and iGPU passthrough;
- Docker inside VMs;
- remote administration;
- monitoring;
- game-server tunneling;
- connecting local AI services across machines.
What works now
The homelab currently provides:
- an always-on development environment;
- automation through n8n;
- monitoring through Pulse;
- locally hosted AI support for Pulse through LM Studio Server on VM 100;
- Paperclip AI infrastructure;
- local AI experimentation;
- game-server hosting;
- remote administration;
- isolated environments for testing.
The most useful part is having a permanent place where unfinished projects can keep running.
Roadmap
Dedicated AI workstation
The current Radeon 780M is useful for experimentation, but there is no dedicated AI workstation yet.
NAS
The homelab still needs proper shared storage and backups.
OPNsense
There is no dedicated OPNsense machine yet.
VLANs
The current network is still flat and has no VLAN segmentation.
Media server
There is no media server yet.
Network-wide ad blocking
There is no LAN-wide ad-blocking or DNS-filtering service yet.
Current status
host: online
virtualization: working
automation: working
monitoring: working
pulse_ai: provided_by_lmstudio_on_vm100
game_servers: working
agent_infrastructure: working
nas: missing
vlans: missing
opnsense: missing
media_server: missing
ai_workstation: missing
network_adblock: missing
The homelab is operational, but it is still evolving.
That is not a failure of the project.
That is the project.
Not final. Just finally online.

Connected work
Documents
- Technically, It Workedarticle