3-Node Proxmox Cluster

Self-hosted services on three Proxmox nodes, backed up nightly and replicated every 15 minutes.

LinkedIn: carlservice Contact: dot.card GitHub: cservicode

demo

What it does

I built and run a three-node Proxmox cluster for self-hosted services: Nextcloud for file storage, Pi-hole for network-wide ad blocking, Nginx Proxy Manager for web traffic routing, and Uptime Kuma for uptime monitoring. The network is split into isolated VLANs with one shared login, and a GPU server runs AI models locally for the rest of the network.

Nightly snapshot backups and ZFS replication to a standby node every 15 minutes protect the data, and a set boot order brings key services back on their own after a reboot.

The demo shows the cluster audit, a Python script that reads cluster state through the Proxmox API with GET requests only.

How it works

Flowchart: Isolated VLANs; 3-node Proxmox cluster; Nextcloud · Pi-hole · Nginx Proxy Manager · Uptime Kuma; Nightly snapshot backups; ZFS replication every 15 minutes; Standby node; Local GPU server

Built with

Proxmox VE · ZFS · Linux · Docker · Python · VLANs

Selected code

FileWhat it shows
pve_audit.pyGET-only cluster audit that reports denied endpoints.
pve_ops.pyNamed cluster actions; backup and migrate require confirmation.
backup-and-replication.mdBackup retention, replication cadence, and boot order.
tls.mdCertificate setup for the cluster API.
sanitize_audit.pyTurns raw audit output into the replay used for the demo.

Design notes