Home Computer Laboratory

William Hale Coder GIF

What is a HomeLab?

Think of a HomeLab as a personal playground for an IT professional. It’s like having a small-scale version of a big company’s computer system at home. Here, they can play around with different tech tools and software without worrying about causing any issues in a real business setting. It’s a space where they can learn new things, try out ideas, and get better at what they do. There is no 1 correct way to construct, configure or manage your Home Laboratory. Set-ups can range from professional grade server racks (which are loud, consume unholy amounts of electrcity, and will leave your wallet screaming) or a bunch of old, to-be-forgoten desktops that are strung together to form one cohesive system. William has opted for the use of a minmized yet powerful compolation of devices including; a mini pc, a firewall (both physical and virtual), and a couple of Rasberry Pis to reduce noise and energy consumtion. While this might not sound like much, he has the ability to simulate most (if not close to all) digital (scaled-down) corporate enviorments. View the "Laboratory Specs" for a more detailed list of what William is running.

Purpose and Use:

  • Experimentation
  • Skill Development
  • Certification Preparation
  • Innovation
  • Components:

  • Computers/Servers
  • Networking Equipemnt
  • Storage Devices
  • Virtualization Software
  • Laboratory Specs

    Service Description
    Proxmox VE (Community Edition) Open-source server virtualization environment
    Ubuntu Server (Latest LTS Version) Free Linux distribution for servers
    Nextcloud (Community Edition) Self-hosted productivity platform
    ONLYOFFICE (Community Edition) Office suite for document editing
    Jitsi Meet (Self-Hosted) Open-source video conferencing
    Pi-hole (Community Edition) Network-wide ad blocking and DNS server
    OpenVPN (Community Edition) Open-source VPN solution
    pfSense (Community Edition) Open-source firewall and router
    Wireshark (Community Edition) Network protocol analyzer
    Grafana (Open Source) Analytics and monitoring solution
    GitLab CE (Community Edition) Web-based DevOps lifecycle tool
    Jenkins (Open Source) Automation server for software development
    Selenium (Open Source) Web browser automation
    SonarQube (Community Edition) Code quality and security platform
    Docker (Community Edition) Containerization platform

    Projects

    Project 1: Home Office Virtualization and Collaboration Suite (Phase: Set-Up)

    This project aims to create a virtualized home office environment with collaboration tools for file sharing, document editing, and video conferencing.

    Service Description Project Use
    Proxmox VE (Community Edition) Open-source server virtualization environment Host multiple virtual machines for different services
    Ubuntu Server (Latest LTS Version) Free Linux distribution for servers Run Docker containers for web services
    Nextcloud (Community Edition) Self-hosted productivity platform File sharing, collaboration, and office suite functionalities
    ONLYOFFICE (Community Edition) Office suite for document editing Integrated with Nextcloud for document management
    Jitsi Meet (Self-Hosted) Open-source video conferencing Set up for team meetings and communication

    Project 2: Network Management and Security Operations (Phase: Not Yet Started)

    This project focuses on setting up network management and security operations, including ad blocking, VPN, firewall, network analysis, and data visualization.

    Service Description Project Use
    Pi-hole (Community Edition) Network-wide ad blocking and DNS server Manage network traffic and block unwanted ads
    OpenVPN (Community Edition) Open-source VPN solution Secure remote access to the home lab network
    pfSense (Community Edition) Open-source firewall and router Network perimeter security and routing
    Wireshark (Community Edition) Network protocol analyzer Analyze and troubleshoot network traffic
    Grafana (Open Source) Analytics and monitoring solution Visualize network data and metrics

    Project 3: Development and Testing Environment (Phase: Not Yet Started)

    This project is designed to create a development and testing environment for software projects, with tools for source code management, continuous integration, automated testing, code quality analysis, and containerization.

    Service Description Project Use
    GitLab CE (Community Edition) Web-based DevOps lifecycle tool Source code management and CI/CD
    Jenkins (Open Source) Automation server for software development Automate builds, tests, and deployments
    Selenium (Open Source) Web browser automation Automate web application testing
    SonarQube (Community Edition) Code quality and security platform Analyze and improve code quality
    Docker (Community Edition) Containerization platform Containerize applications for consistent deployment

    What I'm Learning