Homelab Server Project Showcase

My homelab is a personal server that I built and maintain to learn real-world IT skills. It runs on Unraid OS and hosts services for myself, friends, and family - everything from media streaming and photo backup to game servers and project management tools.

The goal is simple: get hands-on experience with technologies that matter in professional IT environments. I treat this server like a production system, which means focusing on security, reliability, and proper organization. Every service I add teaches me something new about Linux, networking, Docker, or system administration - skills that directly translate to IT jobs.

Hardware Specifications

A repurposed desktop turned server, built from spare parts and a few targeted upgrades to handle everything from media streaming to container orchestration.

Server Components

ComponentSpecification
Rosewill 4U Rackmount Server Chassis 7x 3.5" + 2x 5.25" drive bays
ASUS TUF B360M-PLUS GAMING S
Intel Core i5-8400 6-Core @ 2.80GHz
RAM
RAM
32GB DDR4-2666MHz
Intel Arc A380 6GB
Netgear GS308EP [8 port, 1000Mbps, PoE+]
Router
Router
ISP-provided gateway
GL.iNet Comet IP KVM
APC BE600M1 UPS & Surge Protector

Hosted Services

All services run in Docker containers, managed through Docker Compose with automated backups via Duplicati.
Take a look at live uptime statistics for each of these services here!

Media & Content

Plex

Plex

Media streaming server for movies, TV shows, and music. Uses the dedicated GPU for hardware-accelerated transcoding to support multiple simultaneous streams.

MediaStreamingTranscoding
Audiobookshelf

Audiobookshelf

Audiobook and podcast server with progress tracking and mobile app support.

MediaAudiobooksPodcasts
Immich

Immich

Self-hosted photo and video backup solution. A Google Photos alternative that keeps my data under my control.

PhotosBackupPrivacy

Productivity & Collaboration

AFFiNE

AFFiNE

Open-source workspace for notes, docs, and project planning.

ProductivityNotesCollaboration
OwnCloud

OwnCloud

Personal cloud storage for file sync and sharing across devices, serving as a self-hosted alternative to Google Drive or Dropbox.

Cloud StorageFile SyncPrivacy
Open WebUI

Open WebUI

Open WebUI is a self-hosted web interface for interacting with local AI models via Ollama or OpenAI-compatible APIs, with support for chat history, model switching, and multimodal input.

AILLMSelf-Hosted
n8n

n8n

Open-source workflow automation tool that connects APIs, databases, and other services. Supports custom workflows and integrations.

AutomationWorkflowsIntegrations
Omnitools

Omnitools

OmniTools is a self-hosted collection of everyday utility tools — unit converters, text formatters, encoders, calculators, and more — accessible from a single web interface without sending data to third-party sites.

UtilitiesPrivacySelf-Hosted
Picoshare

Picoshare

Self-hosted file sharing service that allows users to upload and share files with friends and family.

File SharingPrivacySelf-Hosted

Infrastructure & Management

Homarr

Homarr

Customizable dashboard that serves as the central hub for all my services. Displays real-time container status with start/stop/restart controls, plus live server resource monitoring.

DashboardMonitoringManagement
AMP (Application Management Platform)

AMP (Application Management Platform)

Manages and hosts game servers for friends.

GamingServer Management
Cloudflare Tunnel

Cloudflare Tunnel

Securely exposes public-facing services to the internet without opening ports on my router. Each service gets its own custom domain.

SecurityNetworkingTunnel
Duplicati

Duplicati

Automated backup solution for critical data and configurations.

BackupAutomation
Dockhand

Dockhand

Organized and interactive management interface for Docker containers and Compose stacks.

Container ManagementDockerDocker Compose
Uptime Kuma

Uptime Kuma

Real-time monitoring dashboard for all my services.

MonitoringDashboard
Syncthing

Syncthing

Self-hosted file synchronization and sharing tool that uses peer-to-peer technology to sync files across multiple devices.

File SyncPrivacy

Security & Access

Tailscale

Tailscale

Zero-trust mesh VPN for secure remote access to the server and admin panels. All sensitive services stay behind the VPN and aren't exposed publicly.

VPNSecurityRemote Access
Vaultwarden

Vaultwarden

Password manager that stores encrypted credentials in a local database. Supports two-factor authentication and password generation.

Password Manager2FAEncryption

Storage Architecture

My server uses Unraid's flexible storage system, which combines drives of different sizes into a single protected array.

How It Works

Parity Drive (1x 20TB)

Provides fault tolerance for the entire array. If any single data drive fails, the parity drive can rebuild it. The parity drive must be equal to or larger than the biggest data drive.

Data Drives (1x 20TB, 2x 2TB)

Store all media, backups, and user files. Unlike traditional RAID, each drive contains its own filesystem and can be accessed individually if needed. Total usable storage: ~24TB.

Cache Drive (512GB NVMe)

Acts as a high-speed landing zone for new writes. Data gets written here first for speed, then moved to the array overnight. Dramatically improves performance for file transfers and application writes.

Appdata Pool (240GB + 1TB)

Two SSDs in a BTRFS RAID0 pool dedicated to Docker container persistent storage (databases, configurations, app data). The striped configuration maximizes throughput and usable capacity while keeping container I/O fast and separate from the main array.

USB Boot Drive (128GB)

Unraid runs entirely from RAM but boots from USB. The USB drive stores the OS and configuration.

Benefits of This Setup

  • Mix and match drive sizes (don't need matching drives like traditional RAID)
  • Easy expansion - just add another drive to the array
  • Single drive failure protection without losing data
  • Fast performance for Docker apps and frequent file access
  • Lower power consumption (Unraid spins down idle drives)

Network & Security

A straightforward network setup paired with a zero-trust security approach — services are accessed through secure tunnels and VPN rather than traditional port forwarding.

Network Setup

Internet / ISP
ISP Router
Primary gateway
Ethernet
Netgear GS308EP
Managed PoE+ switch
Ethernet
Homelab Server
Unraid OS • Docker
Remote Access
Tailscale VPN
Mesh VPN overlay
Encrypted tunnel
Remote Devices
Phone, laptop, etc.
Public Access
Cloudflare Tunnel
Zero-trust proxy
HTTPS
Public Users
Custom domains

Security Strategy

I use a modern approach to security that focuses on secure tunneling and VPN access rather than exposing services directly:

Cloudflare Tunnel

Cloud Tunneling Service

Public-facing services (like Plex, Immich, AFFiNE) are accessible via custom domains that route through Cloudflare's infrastructure. This means no ports are opened on my router, and Cloudflare provides DDoS protection and SSL encryption automatically.

Tailscale VPN

Private VPN

All administrative interfaces and sensitive services are only accessible through Tailscale's mesh VPN. This includes server management panels, databases, and configuration tools. Even when I'm remote, I connect through Tailscale before accessing anything sensitive.

Separation of Access

Access Control Strategy

Public services get Cloudflare domains for convenience. Private/admin services stay VPN-only. This keeps management interfaces completely isolated from the internet.

Docker Network Isolation

Container Security

Services run in isolated Docker networks with only necessary ports exposed to the host.

Skills Demonstrated

Running a homelab is hands-on learning — here are the technical and soft skills I practice and develop through building and maintaining this infrastructure.

Technical Skills

Operating Systems

  • Linux administration (Unraid OS, Ubuntu, Debian)
  • Windows 10/11 desktop and Windows Server 2024 (VM)
  • macOS

Containerization & Orchestration

  • Docker container deployment and management
  • Docker Compose for multi-container applications
  • Container networking and isolation

Networking

  • Network configuration and troubleshooting
  • Managed switch configuration and VLANs (Netgear GS308EP)
  • VPN implementation (Tailscale)
  • Reverse proxy and tunnel configuration (Cloudflare)
  • DNS management and domain routing

Storage Management

  • Unraid parity-protected arrays
  • BTRFS RAID pools and filesystem management
  • Multi-tiered storage architecture (NVMe, SSD, HDD)
  • Backup strategies and automation (Duplicati, Syncthing)

Databases

  • PostgreSQL deployment and management
  • Redis caching implementation

Scripting & Development

  • Bash scripting and shell automation
  • Python
  • Web technologies (HTML, CSS, JavaScript, TypeScript, React, Next.js)
  • Version control (Git, GitHub)

System Administration

  • Service monitoring and uptime tracking (Uptime Kuma)
  • Automated backup solutions (Duplicati, Syncthing)
  • Virtual machine provisioning and management
  • Documentation and ticketing systems
  • Remote server management

Soft Skills

  • Problem-solving - Troubleshooting complex technical issues across multiple systems
  • Self-directed learning - Continuously exploring new technologies and implementing solutions
  • Documentation - Maintaining organized records of configurations and fixes
  • Security mindset - Implementing layered security with VPNs, tunnels, and network isolation

Future Plans

The homelab is always evolving — these are some of the upgrades and projects on the roadmap.

Storage Upgrades

Planning to upgrade both the cache drive and appdata SSD to 1-2TB drives for increased capacity and performance as more services are added.

Home Automation

Exploring home automation technologies and integration with the homelab infrastructure.

Continuous Learning

Always looking to expand knowledge and implement new services that provide value while teaching practical IT skills.