# VM-03

management-server

Hosting personal engineering portfolio and project documentation website.

Overview

Purpose:

Centralized management and observability platform for the homelab environment capable of hosting:

  • Personal portfolio website
  • Monitoring tools
  • Self-hosted infrastructure
  • Containerized applications
  • Centralized dashboard
  • Private remote access

The project was built to gain hands-on experience in Linux administration, virtualization, networking, containerization, observability, and DevOps practices.

Runtime Architecture

Admin Devices

Tailscale Network

Management VM

├── Homepage

├── Portainer

├── Systems

├── Uptime Kuma

└── Remote Access

Infrastructure Architecture

Proxmox Host:
└── VM-03 Management Server
    ├── Homepage
    ├── Portainer
    ├── Uptime Kuma
    ├── Prometheus
    ├── Grafana
    └── Node Exporter

Monitoring Flow

Node Exporter

cAdvisor

Prometheus

Grafana

Homepage

├── Proxmox API

├── Portainer API

├── Grafana API

├── Uptime Kuma Status Page

└── Crafty API

Challenges

  • Providing Secure Remote Access Without Port ForwardingTo self-host tools, access is needed to be available from the internet while keeping the home network encrypted and secure.
  • Building Centralized Monitoring Across Multiple VMsAs the homelab expanded, monitoring became fragmented across different virtual machines and applications, making it difficult to quick status health.
  • Collecting Container-Level MetricsNode Exporter provided host-level metrics, but it was not capable of tracking resource consumption for individual Docker containers.
  • Integrating Proxmox Metrics into HomepageHomepage initially failed to display Proxmox metrics due to API authentication issues, preventing dashboard compilation requests because Proxmox API user and token were blocked by security rule statistics.

Solutions

  • Implemented TailscaleConfigure Tailscale to locally expose services without opening ports on the router, reducing the attack surface and maintaining public accessibility.
  • Implemented Cloudflare Tunnel for Secure Public AccessInstead of exposing the server through port forwarding, I configured Cloudflare Tunnel and mapped the service to a custom domain. This provided HTTPS by default while keeping the home network completely hidden from the public internet.
  • Built a Centralized DashboardIntegrated Proxmox, Portainer, Uptime Kuma, and Minecraft services into a single dashboard to simplify cluster management.
  • Added Prometheus and cAdvisor MonitoringDeployed Prometheus for metrics collection, Node Exporter for OS monitoring, and cAdvisor for Docker container metrics, building detailed infrastructure visibility.
  • Configured API-Based Service IntegrationsIntegrated Homepage with multiple services including Proxmox, Portainer, Grafana, Crafty Controller, and Uptime Kuma to provide automated operational overviews.

What I Learned

  • Container-level monitoring provides insights that host-level metrics alone cannot reveal.
  • Cloudflare Tunnel offers a secure alternative to traditional port forwarding for self-hosted applications.
  • Separating workloads into dedicated virtual machines improves maintainability and resource management.
  • Building and maintaining a homelab provides practical experience with Linux administration, networking, Docker, monitoring, and DevOps workflows.
  • Managing infrastructure becomes significantly easier when monitoring and observability are treated as first-class components.
  • Monitoring systems become significantly more valuable when infrastructure data, application status, and container metrics are centralized into a single dashboard.