khuedoan / homelab
- понедельник, 24 января 2022 г. в 00:30:17
My self-hosting infrastructure, fully automated from empty disk to operating services
Current status: ALPHA
This project utilizes Infrastructure as Code to automate provisioning, operating, and updating self-hosted services in my homelab. It can be used as a highly customizable framework to build your own homelab.
This section provides a high level overview of the project. For further information, please see the documentation.
PC-MK26ECZDR (Japanese version of the ThinkCentre M700):
Intel Core i5-6600T @ 2.70GHz16GB128GBTL-SG108 switch:
81000MbpsProject status: Alpha (see roadmap below)
Screenshots of some user-facing applications are shown here, I will update them before each release. They can't capture all of the project's features, but they are sufficient to get a concept of it.
![]() |
|---|
| Homepage with Ingress discovery powered by Hajimari |
![]() |
|---|
| Git server powered by Gitea |
![]() |
|---|
| Continuous integration with Tekton |
![]() |
|---|
| Continuous deployment with ArgoCD |
![]() |
|---|
| Monitoring dashboard powered by Grafana |
![]() |
|---|
| Matrix chat server powered by Element and Dendrite |
![]() |
|---|
Cluster management using Lens (or you can just use kubectl) |
![]() |
|---|
| Secret management with Vault |
| Logo | Name | Description |
|---|---|---|
| Ansible | Automate bare metal provisioning and configuration | |
| ArgoCD | GitOps tool built to deploy applications to Kubernetes | |
| cert-manager | Cloud native certificate management | |
| Cloudflare | DNS and Tunnel | |
| Docker | Ephermeral PXE server and convenient tools container | |
| Gitea | Self-hosted Git service | |
| Grafana | Operational dashboards | |
| Helm | The package manager for Kubernetes | |
| K3s | Lightweight distribution of Kubernetes | |
| Kubernetes | Container-orchestration system, the backbone of this project | |
| Loki | Log aggregation system | |
| Longhorn | Cloud native distributed block storage for Kubernetes | |
| MetalLB | Bare metal load-balancer for Kubernetes | |
| NGINX | Kubernetes Ingress Controller | |
| Prometheus | Systems monitoring and alerting toolkit | |
| Rocky Linux | Base OS for Kubernetes nodes | |
| Tekton | Cloud native solution for building CI/CD systems | |
| Trow | Private container registry | |
| Vault | Secrets and encryption management system |
See roadmap and open issues for a list of proposed features and known issues.
Any contributions you make, either big or small, are greatly appreciated.
Copyright (c) 2020, 2021, 2022 Khue Doan
This project is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This project is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this project (LICENSE.md).
If not, see https://www.gnu.org/licenses.
cloudflared processes