Modern self-hosting framework, fully automated from empty disk to operating services with a single command.
Go to file
2021-04-25 00:30:52 +07:00
apps Update title for each layer 2021-04-20 01:55:09 +07:00
docs Move tfstate back to etcd 2021-04-24 18:04:26 +07:00
infra Increase node disk size to 32GiB 2021-04-24 22:58:22 +07:00
metal Use native lxd connection instead of lxd exec 2021-04-25 00:30:52 +07:00
tools Use Arch instead of Alpine for tools container 2021-04-21 14:50:34 +07:00
.gitignore Generate LXD tfvars instead of environment variable 2021-04-21 23:29:18 +07:00
LICENSE
Makefile Auto generate TODO list 2021-04-19 22:35:05 +07:00
README.md Remove minio tfstate 2021-04-24 14:35:50 +07:00

Homelab

! WORK IN PROGRESS

Hardware

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...):

For bare metal nodes:

  • PXE IPv4 enabled
  • Wake-on-LAN enabled
  • Secure boot disabled (optional, depending on the OS)

Configurations

Building

Open the tools container:

make

Then build each layer:

make metal
make infra
make apps

Acknowledgments