Setting Up My Own Home Server: A Journey into Networking and Development

Rob

2 min read

MacBook Pro on table beside white iMac and Magic Mouse
MacBook Pro on table beside white iMac and Magic Mouse

Setting the Foundation: Hardware and Software

At the moment, my home server is fairly bare-bones, but it provides a robust platform for learning and future expansion. While I have many ideas on the horizon, such as setting up a home AI assistant, media server, ad blocker, and VPN, my current setup allows me to spin up containers and virtual machines to explore software development and cybersecurity.

To ensure my server could handle these tasks efficiently, I selected high-performance components:

  • Processor: Intel Core i7

  • Storage: 2TB SSD

  • Memory: 64GB RAM

  • Operating System: Ubuntu Linux

  • Virtualisation and Containerisation: Docker, VirtualBox

  • Dashboard Management: Dashy

This configuration provides a powerful base for testing, deploying, and managing various applications, making it an ideal learning environment.

Virtualisation and Containerisation for Skill Development

One of the most significant advantages of my home server is the ability to run multiple virtual machines (VMs) and containers. With VirtualBox, I can spin up different operating systems such as Ubuntu and Windows Server to test various setups. Meanwhile, Docker allows me to deploy and manage lightweight containers, enabling rapid experimentation with software without the need for full VM deployments.

By leveraging these technologies, I have created several learning environments:

  • Cybersecurity Lab: Running penetration testing tools such as Metasploit and Wireshark.

  • Web Development Sandbox: Hosting development environments with Python, Node.js, and MySQL.

  • Network Analysis and Monitoring: Using tools like Pi-hole for ad-blocking and OpenVPN for secure remote access.

The flexibility of these tools ensures that I can continually adapt my server to support my evolving learning journey.

Expanding Storage and Future Scalability

Although my server currently has 2TB of SSD storage, I am planning for future expansion. To facilitate this, I have ensured that my motherboard supports additional SATA and NVMe drives. Implementing RAID (Redundant Array of Independent Disks) is also on my roadmap to enhance performance and data redundancy.

For now, my setup provides ample storage for my needs, but as I begin to host more services—such as a media server or AI assistant—I will implement scalable storage solutions.

Home AI Assistant: A Future Project

One of the most exciting ideas on my horizon is integrating a home AI assistant. For this, I am considering deploying an AI model such as LLaMA or DeepSeek to handle tasks like voice recognition, automation, and personal assistant functions. This would require:

  • GPU acceleration (potential future upgrade)

  • Optimised AI frameworks running in Docker containers

  • Integration with smart home devices

By leveraging open-source AI models, I aim to create a personalised, local AI assistant that respects privacy while offering powerful automation capabilities.

Monitoring and Maintenance with Open Source Tools

To keep my server running smoothly, I have implemented several open-source monitoring tools:

  • Grafana & Prometheus: Visualising server performance metrics like CPU, RAM, and disk usage.

These tools allow me to proactively manage my home server, ensuring optimal performance and uptime.

Looking Ahead

While my home server is still in its early stages, it already serves as an invaluable tool for learning and experimentation. Over time, I plan to expand its capabilities with additional services such as:

  • A fully-fledged media server (Plex or Jellyfin)

  • An enterprise-level ad-blocking system (Pi-hole)

  • A VPN for secure remote access (OpenVPN or WireGuard)

The journey of building and optimising my home server is just beginning, but with a solid foundation in place, I am excited to continue developing new skills and exploring cutting-edge technologies.