mesutozsoycom / homelab

My personal infrastructure and Kubernetes cluster written as code, adhering to GitOps practices.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Homelab

My personal infrastructure and Kubernetes cluster written as code.

This project utilises Infrastructure as Code and GitOps to automate the provisioning, operating and updating of self-hosted services in my homelab. These services are essential for my everyday life. Furthermore, this repository can also serve as a good framework for you to build your own homelab.

Feel free to open a GitHub issue if you have any questions!

Installation

First, configure a bare metal Rocky Linux machine with reference to kickstart.ks. Then, install prerequisites in Brewfile and update Ansible and environmental variables. Finally, run ./scripts/bootstrap.sh to install everything on the server!

Core components

Logo Name Description
Ansible Bare metal provisioning and configuration
Flux GitOps operator for managing Kubernetes cluster
Kubernetes Orchestration system for managing containers
Rocky Linux Main operating system for infrastructure
Rook Ceph Cloud native block storage for Kubernetes
Talos Linux Base operating system for Kubernetes nodes
Terraform Provision resources on external environments
Traefik Cloud native ingress controller for Kubernetes
Vault Secrets and encryption management system

Hardware

My cluster currently consists of a single node with the following specifications.

  • CPU: Intel Xeon E5-2683v4
  • RAM: Micron 16GB DDR4 ECC x2
  • SSD: Samsung 980 NVMe 500GB
  • HDD: Seagate IronWolf 4TB x2

Acknowledgements

Special thanks to the Kubernetes @Home community for inspiration and support!

License

This project is licensed under the MIT License.

About

My personal infrastructure and Kubernetes cluster written as code, adhering to GitOps practices.

License:MIT License


Languages

Language:Shell 71.1%Language:HCL 16.4%Language:Jinja 10.3%Language:Ruby 2.3%