Modern self-hosting framework, fully automated from empty disk to operating services with a single command.
Go to file
2021-06-08 21:17:42 +07:00
apps Add Wireguard access server 2021-05-23 14:03:07 +07:00
docs Prepare for 0.0.2-alpha release 2021-06-08 20:38:43 +07:00
infra Fix can't create tfstate container 2021-06-08 20:37:39 +07:00
metal Fix can't create tfstate container 2021-06-08 20:37:39 +07:00
scripts
tools Remove host network check (false positive) 2021-06-08 18:41:46 +07:00
.gitattributes Add git attributes 2021-05-16 14:55:08 +07:00
.gitignore Move RKE cluster to sperate module, with cleaner Ansible check 2021-05-02 23:07:16 +07:00
LICENSE
Makefile Improve makefile targets consistency 2021-05-23 12:24:32 +07:00
README.md Fix wrong host file link (again) 2021-06-08 21:17:42 +07:00

Homelab

⚠️ WORK IN PROGRESS

Hardware

Hardware

  • 4 nodes of NEC SFF PC PC-MK26ECZDR (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

Prometheus

Rancher

Terraform

Vault

Wireguard

Architecture

Quick explanation

Layers

Layer Name Description Provisioner
0 metal Bare metal OS installation, Terraform state backend,... Ansible, PXE server
1 infra Kubernetes clusters Terraform, Helm
2 apps Gitea, Vault and more in the future Argo

Get Started

Prerequisite

For the controller (to run Ansible, stateless PXE server, Terraform...):

  • SSH keys in ~/.ssh/{id_ed25519,id_ed25519.pub} (you can generate it with ssh-keygen -t ed25519)
  • 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 and boot to network mode by default if turned on via Wake-on-LAN
  • Secure boot disabled (optional, depending on the OS)
  • Note their MAC addresses

Configurations

Change these configuration files to match your hardware and network setup:

Build

Open the tools container:

make tools

Then build the homelab:

make

Roadmap

See roadmap and open issues for a list of proposed features and known issues.

Contributing

Any contributions you make are greatly appreciated (feature, bug fixes, documentation, grammar or typo fix...).

License

Distributed under the GPLv3 License. See LICENSE for more information.

Acknowledgements