Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stevenplatt/homelab
Homelab is my infrastructure-as-code deployment of Kubernetes for running miscellaneous microservices as well as wired and wireless network research experiments.
https://github.com/stevenplatt/homelab
ansible containers helm-chart kubernetes lab-environment
Last synced: 2 months ago
JSON representation
Homelab is my infrastructure-as-code deployment of Kubernetes for running miscellaneous microservices as well as wired and wireless network research experiments.
- Host: GitHub
- URL: https://github.com/stevenplatt/homelab
- Owner: stevenplatt
- License: mit
- Created: 2021-01-24T18:58:12.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-03-27T13:39:53.000Z (11 months ago)
- Last Synced: 2024-03-27T14:47:33.965Z (11 months ago)
- Topics: ansible, containers, helm-chart, kubernetes, lab-environment
- Language: Shell
- Homepage:
- Size: 421 KB
- Stars: 5
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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)](https://cloud.google.com/kubernetes-engine).
### Table of Contents
[Cloud Environment](#cloud)
[Developer Environments](#desktop)
# Cloud Environment
![alt text](https://github.com/stevenplatt/homelab/blob/main/img/cloud_k8s.jpg?raw=true)
## 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 DeploymentComplete instructions for deploying both Kubernetes and containerized microservices can be found in the [wiki](https://github.com/stevenplatt/homelab/wiki) pages for this repository.
# Developer Environments
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](https://www.microsoft.com/store/productId/9NBLGGH4NNS1). A GUI view of applictions that can be installed through winget is also available at [winstall.app](https://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](https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-access-for-kubectl).