Skip to content

stevenplatt/homelab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Homelab Research Testbed

This repository holds configurations and documentation for deploying my personal homelab and network research tesbed.

The lab environment is intended to run under a infrastructure-as-code model, with all services running as containers deployable by Ansible, Terraform, and Helm within Kubernetes. Currently the lab is run in the cloud within Google Kubernetes Engine (GKE).

Table of Contents

Cloud Environment

Developer Environments

alt text

Cluster Components

QTY 1: Google Cloud Load Balancer

QTY 1: Google Kubernetes Engine Cluster

  • Autoscaling Node Group
    • Min: 1 nodes; Max: 3 nodes

Services List

The following containers are deployed with the Kebernetes cluster environment.

This list is included for demonstration purposes and can be considered partial or otherwise incomplete.

  • Telecomsteve (Website)
  • ResearchEng Portfolio (Website)
  • Prometheus (Monitoring)
  • Grafana (Monitoring Dashboard)
  • PiHole (ad blocking)
  • Librespeed (speed test)

Cloud Deployment

Complete instructions for deploying both Kubernetes and containerized microservices can be found in the wiki pages for this repository.

This repository also holds configurations for desktop environments.

Windows

Windows versions 10 and 11 can be configured using the winget utility. Winget is enabled automatically when app install is installed from the Windows Store. A GUI view of applictions that can be installed through winget is also available at winstall.app

Bulk App Installation (Winget)

Open Windows PowerShell with administrator priveledges.

The Windows installation file is located at .../homelab/desktop/windows/win11_deploy.json and can be run using the PowerShell command:

winget import -i path\to\win11_deploy.json

A json of installed programs can be exported using the command:

winget export -o path\to\export.json

The following items are not installed with the winget utility and must be manually installed:

  • Ansible
  • Terraform
  • Inkscape
  • Mendeley
  • Helm

Linux

A shell script for either Fedora or Ubuntu distributions can be run directly from the Linux terminal to bulk install pre-set applications.

Bulk App Installation (Bash Script)

From the Linux terminal:

  • git clone https://github.com/stevenplatt/homelab.git
  • cd homelab/desktop/linux
  • bash ubuntu_deploy.sh or bash fedora_deploy.sh

Kubernetes

Kubectl can be manually configured to connect to the deployed Kubernetes instance with the instructions provided by Google Cloud.

About

Homelab is my infrastructure-as-code deployment of Kubernetes for running miscellaneous microservices as well as wired and wireless network research experiments.

Topics

Resources

License

Stars

Watchers

Forks