Featured Project
Personal Infrastructure Homelab
Designed and maintain a Proxmox-based homelab that hosts Linux virtual machines, containers, networking services, automation platforms, storage, media applications, and secure remote-access systems.
Primary focus
Infrastructure troubleshooting
Environment
Virtual machines and containers
Core outcome
Reliable, secure self-hosted services
Why I Built It
I wanted a practical environment where I could learn infrastructure technologies by deploying real services rather than relying only on tutorials or isolated labs.
The environment gives me hands-on experience with operating systems, virtualization, networking, authentication, storage, automation, monitoring, and service recovery.
How I Use It
I use the homelab as a production-like troubleshooting environment. Services occasionally fail, configurations conflict, certificates expire, addresses change, or containers stop starting correctly.
Each issue becomes an opportunity to gather symptoms, inspect logs, reproduce behavior, identify root causes, implement a fix, and improve the environment so the problem is less likely to return.
Environment Architecture
The environment is organized around a Proxmox virtualization host with separate workloads for infrastructure, automation, media, storage, and application services.
Proxmox VE Host
├── Pi-hole / Unbound
├── Home Assistant VM
├── Docker VM
│ ├── Portainer
│ ├── Caddy
│ └── Self-hosted applications
├── Jellyfin LXC
├── VPN and Remote Access Services
└── ZFS Storage and Backup Datasets This diagram is intentionally simplified and excludes sensitive networking, credential, and endpoint information.
Technical Capabilities
Virtualization
Configured and maintained Proxmox virtual machines and Linux containers for isolated infrastructure workloads.
Linux administration
Managed Ubuntu and Debian systems using SSH, systemd, package management, permissions, logs, and service configuration.
Networking and DNS
Configured local DNS, DHCP reservations, firewall rules, reverse proxies, VPN access, and remote connectivity.
Containers and services
Deployed and maintained Docker-based applications, self-hosted services, and supporting infrastructure.
Storage and backups
Implemented ZFS-backed storage, shared datasets, permission controls, automated backups, and recovery workflows.
Monitoring and troubleshooting
Diagnosed service failures using logs, system commands, network testing, configuration review, and controlled reproduction.
Hosted Services
- Pi-hole and Unbound DNS
- Home Assistant
- Docker and Portainer
- Jellyfin
- Cloudflare Tunnel and Caddy
- WireGuard VPN
- SMB storage and ZFS datasets
Troubleshooting Approach
- Confirm the symptoms and affected services
- Check service health, logs, networking, and recent changes
- Reproduce the issue where possible
- Isolate the failure to the application, host, or network layer
- Implement and test the resolution
- Document the root cause and preventive improvement
Selected Troubleshooting Cases
Examples of issues diagnosed and resolved within the environment.
Home Assistant connectivity failure
Problem
The Home Assistant interface became inaccessible even though automations continued running.
Investigation
Verified service health through the console, checked IP addressing, local DNS records, proxy behavior, and endpoint responses.
Resolution
Identified an address and DNS routing mismatch, updated the local DNS configuration, and restored reliable access.
Jellyfin GPU acceleration
Problem
Video transcoding was not consistently using the NVIDIA GPU inside a Linux container.
Investigation
Validated host drivers, device nodes, container mappings, library paths, startup logs, and playback behavior.
Resolution
Configured GPU passthrough, corrected container dependencies, and verified hardware-accelerated transcoding.
Secure remote game server
Problem
A self-hosted Palworld server needed to be securely accessible to remote players while remaining maintainable.
Investigation
Tested service availability, firewall rules, port forwarding, DNS resolution, version compatibility, and external connectivity.
Resolution
Deployed the server in an isolated Ubuntu VM with firewall controls, DNS, automated updates, backups, and external access testing.
Skills Demonstrated
- Linux and service administration
- Virtualization and container management
- DNS, VPN, firewall, and reverse-proxy troubleshooting
- Log analysis and root-cause investigation
- Storage, permissions, and backup management
- Technical documentation and change validation
What I’d Improve Next
- Centralized monitoring and alerting
- Infrastructure-as-code for repeatable deployments
- Expanded automated health checks
- More formal incident documentation
- Improved backup testing and recovery validation
- Network segmentation for stronger isolation
Project Outcome
The homelab has become an ongoing technical learning environment that strengthens my ability to investigate failures across application, operating-system, virtualization, storage, and networking layers.
More importantly, it has helped me develop a repeatable support mindset: gather evidence, isolate the issue, communicate clearly, validate the resolution, and improve the system after recovery.