From 39ae89b8b3203f12a89327eef584af65a58bf47e Mon Sep 17 00:00:00 2001 From: Khue Doan Date: Sun, 18 Jul 2021 12:49:42 +0700 Subject: [PATCH] Move README out of docs --- README.md | 122 +++++++++++++++++++++++++++++++++++++++++++++++- docs/README.md | 121 ----------------------------------------------- docs/SUMMARY.md | 2 +- 3 files changed, 122 insertions(+), 123 deletions(-) mode change 120000 => 100644 README.md delete mode 100644 docs/README.md diff --git a/README.md b/README.md deleted file mode 120000 index 0e01b430..00000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -docs/README.md \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..2de2099f --- /dev/null +++ b/README.md @@ -0,0 +1,121 @@ +# Homelab + +```diff +! ⚠️ WORK IN PROGRESS +``` + +## Hardware + +![Hardware](https://user-images.githubusercontent.com/27996771/98970963-25137200-2543-11eb-8f2d-f9a2d45756ef.JPG) + +- 4 nodes of NEC SFF `PC-MK26ECZDR` (Japanese version of the ThinkCentre M700): + - CPU: `Intel Core i5-6600T @ 2.70GHz` + - RAM: `16GB` + - SSD: `128GB` +- TP-Link `TL-SG108` switch: + - Ports: `8` + - Speed: `1000Mbps` + +## Overview + +![Provision](https://user-images.githubusercontent.com/27996771/122676008-2eb23600-d206-11eb-8275-fb5d99bc8515.jpg) + +A single `make` command will automatically: + +- Build the `./metal` layer: + - Create an ephemeral, stateless PXE server + - Install Linux on all servers in parallel +- Build the `./infra` layer: + - Create a Kubernetes [cluster](./infra/cluster.tf) using RKE + - Install some [Helm chart for bootstrap](./infra/bootstrap.tf) +- Build the `./apps` layer: + - Kustomize creates Argo [applications](./apps/resources) + - ArgoCD install those applications + +Please visit the [Provisioning flow document](https://khuedoan.github.io/homelab/deployment/provisioning_flow.html) to learn more. + +## Get Started + +### Harware requirements + +Any modern `x86_64` computer(s) should work, you can use old PCs, laptops or servers. +A total of 3 or more nodes is recommended for high availability. + +To view the detailed requirements, please visit the [Hareware requirements document](https://khuedoan.github.io/homelab/deployment/hardware_requirements.html). + +### Prerequisite + +For the controller (your laptop or desktop): + +- 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](https://docs.docker.com/network/host/), 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: + +- [Bare metal nodes settings](./metal/hosts.yml) (IP, MAC...) +- [OS settings](./metal/group_vars/all.yml) (PXE, network...) + +### Build + +Open the tools container: + +```sh +make tools +``` + +Then build the homelab: + +```sh +make +``` + +## Roadmap + +See [roadmap](https://khuedoan.github.io/homelab/roadmap.html) and [open issues](https://github.com/khuedoan/homelab/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. + +## Technology stack + + + + + + + + + + + + + + + + + + + + +

Ansible

Cloudflare

Docker

Fedora

Gitea

Helm

Kubernetes

Prometheus

Rancher

Terraform

Vault

Wireguard
+ +## Acknowledgements + +- ArgoCD usage in [my coworker's homelab](https://github.com/locmai/humble) +- [README template](https://github.com/othneildrew/Best-README-Template) +- [Run the same Cloudflare Tunnel across many `cloudflared` processes](https://developers.cloudflare.com/cloudflare-one/tutorials/many-cfd-one-tunnel) +- [MAC address environment variable in GRUB config](https://askubuntu.com/questions/1272400/how-do-i-automate-network-installation-of-many-ubuntu-18-04-systems-with-efi-and) diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 2de2099f..00000000 --- a/docs/README.md +++ /dev/null @@ -1,121 +0,0 @@ -# Homelab - -```diff -! ⚠️ WORK IN PROGRESS -``` - -## Hardware - -![Hardware](https://user-images.githubusercontent.com/27996771/98970963-25137200-2543-11eb-8f2d-f9a2d45756ef.JPG) - -- 4 nodes of NEC SFF `PC-MK26ECZDR` (Japanese version of the ThinkCentre M700): - - CPU: `Intel Core i5-6600T @ 2.70GHz` - - RAM: `16GB` - - SSD: `128GB` -- TP-Link `TL-SG108` switch: - - Ports: `8` - - Speed: `1000Mbps` - -## Overview - -![Provision](https://user-images.githubusercontent.com/27996771/122676008-2eb23600-d206-11eb-8275-fb5d99bc8515.jpg) - -A single `make` command will automatically: - -- Build the `./metal` layer: - - Create an ephemeral, stateless PXE server - - Install Linux on all servers in parallel -- Build the `./infra` layer: - - Create a Kubernetes [cluster](./infra/cluster.tf) using RKE - - Install some [Helm chart for bootstrap](./infra/bootstrap.tf) -- Build the `./apps` layer: - - Kustomize creates Argo [applications](./apps/resources) - - ArgoCD install those applications - -Please visit the [Provisioning flow document](https://khuedoan.github.io/homelab/deployment/provisioning_flow.html) to learn more. - -## Get Started - -### Harware requirements - -Any modern `x86_64` computer(s) should work, you can use old PCs, laptops or servers. -A total of 3 or more nodes is recommended for high availability. - -To view the detailed requirements, please visit the [Hareware requirements document](https://khuedoan.github.io/homelab/deployment/hardware_requirements.html). - -### Prerequisite - -For the controller (your laptop or desktop): - -- 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](https://docs.docker.com/network/host/), 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: - -- [Bare metal nodes settings](./metal/hosts.yml) (IP, MAC...) -- [OS settings](./metal/group_vars/all.yml) (PXE, network...) - -### Build - -Open the tools container: - -```sh -make tools -``` - -Then build the homelab: - -```sh -make -``` - -## Roadmap - -See [roadmap](https://khuedoan.github.io/homelab/roadmap.html) and [open issues](https://github.com/khuedoan/homelab/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. - -## Technology stack - - - - - - - - - - - - - - - - - - - - -

Ansible

Cloudflare

Docker

Fedora

Gitea

Helm

Kubernetes

Prometheus

Rancher

Terraform

Vault

Wireguard
- -## Acknowledgements - -- ArgoCD usage in [my coworker's homelab](https://github.com/locmai/humble) -- [README template](https://github.com/othneildrew/Best-README-Template) -- [Run the same Cloudflare Tunnel across many `cloudflared` processes](https://developers.cloudflare.com/cloudflare-one/tutorials/many-cfd-one-tunnel) -- [MAC address environment variable in GRUB config](https://askubuntu.com/questions/1272400/how-do-i-automate-network-installation-of-many-ubuntu-18-04-systems-with-efi-and) diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 4996b476..2c5bd5e2 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -1,6 +1,6 @@ # Summary -[README](./README.md) +[Table of contents](./SUMMARY.md) ---