mirror of
https://github.com/khuedoan/homelab.git
synced 2024-12-23 01:14:38 +07:00
Modern self-hosting framework, fully automated from empty disk to operating services with a single command.
ansibleargocddevopsdockerfedoragitopshelmhomelabk3sk8s-at-homekubernetesnetbootpxeself-hostingterraform
apps | ||
docs | ||
infra | ||
metal | ||
tools | ||
.gitignore | ||
LICENSE | ||
Makefile | ||
README.md |
Homelab
! WORK IN PROGRESS
Hardware
- 4 nodes of NEC SFF PC (Japanese version of the ThinkCentre M700)
- CPU: Intel Core i5-6600T
- RAM: 16GB
- SSD: 128GB
- TP-Link TL-SG108 switch
Architecture
Layer | Name | Description | Provisioner |
---|---|---|---|
0 | metal | Bare metal OS installation, LXD, Terraform state backend,... | Ansible, PXE server |
1 | infra | Kubernetes clusters, shared apps (Git, Vault, Argo...) | Terraform, Helm |
2 | apps | Argo |
Usage
Prerequisite
For the controller (to run Ansible, stateless PXE server, Terraform...):
- SSH keys in
~/.ssh/{id_rsa,id_rsa.pub}
- Docker with
host
networking driver (which means only Docker on Linux hosts)
For bare metal nodes:
- PXE IPv4 enabled
- Wake-on-LAN enabled
- Secure boot disabled (optional, depending on the OS)
Configurations
- Bare metal nodes settings (IP, MAC...)
- OS settings (PXE, network...)
Building
Open the tools container:
make
Then build each layer:
make metal
make infra
make apps