Modern self-hosting framework, fully automated from empty disk to operating services with a single command.
Go to file
Khue Doan fd6ab62a12 Add root device for tfstate container
Because default profile was removed
2021-05-17 01:09:38 +07:00
apps
config Fix wrong config symlink 2021-05-03 12:00:09 +07:00
docs Add PXE server logs instruction 2021-05-16 16:39:25 +07:00
infra Add cloudflared tunnel config files and service 2021-05-03 21:52:59 +07:00
metal Add root device for tfstate container 2021-05-17 01:09:38 +07:00
scripts
tools Extract instead of mounting the OS ISO file 2021-05-16 15:10:23 +07:00
.gitattributes Add git attributes 2021-05-16 14:55:08 +07:00
.gitignore
LICENSE
Makefile Change default global make targets 2021-05-16 13:20:27 +07:00
README.md Swith to Fedora for bare metal nodes 2021-05-16 22:57:20 +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

Technology stack


Ansible

Cloudflare

Docker

Fedora

Gitea

Helm

Kubernetes

LXD

Prometheus

Rancher

Terraform

Ubuntu

Vault

Wireguard

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, you can use a Linux virtual machine with bridged networking if you're on macOS or Windows)

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 tools

Then build the homelab:

make

Acknowledgments