fabrizzioalco / homelab

Infrastructure as code for my self-hosted platform, using GitOps practices

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 ArgoCD

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

About

Infrastructure as code for my self-hosted platform, using GitOps practices

License:GNU General Public License v3.0


Languages

Language:YAML 62.8%Language:Jinja 14.1%Language:HCL 11.2%Language:Makefile 6.8%Language:Dockerfile 4.4%Language:Shell 0.7%