{"id":13821488,"url":"https://github.com/oscaromeu/home-ops","last_synced_at":"2025-05-16T12:33:48.196Z","repository":{"id":37758433,"uuid":"416213837","full_name":"oscaromeu/home-ops","owner":"oscaromeu","description":"A mono repository for my homelab infrastructure and Kubernetes cluster which adheres to Infrastructure as Code (IaC) and GitOps practices where possible","archived":false,"fork":false,"pushed_at":"2025-05-13T10:40:55.000Z","size":36510,"stargazers_count":26,"open_issues_count":12,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-13T21:18:34.731Z","etag":null,"topics":["ansible","flux","gitops","homelab","k3s","k8s-at-home","kubernetes","logging","monitoring","observability","renovate","selfhosted","terraform","tracing"],"latest_commit_sha":null,"homepage":"https://homelab.oscaromeu.io","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oscaromeu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-10-12T06:36:28.000Z","updated_at":"2025-05-13T10:40:59.000Z","dependencies_parsed_at":"2025-01-27T13:38:36.912Z","dependency_job_id":"56325518-cd2b-471a-ad0d-8365a87fc62d","html_url":"https://github.com/oscaromeu/home-ops","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscaromeu%2Fhome-ops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscaromeu%2Fhome-ops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscaromeu%2Fhome-ops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oscaromeu%2Fhome-ops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oscaromeu","download_url":"https://codeload.github.com/oscaromeu/home-ops/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254530806,"owners_count":22086681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","flux","gitops","homelab","k3s","k8s-at-home","kubernetes","logging","monitoring","observability","renovate","selfhosted","terraform","tracing"],"created_at":"2024-08-04T08:01:22.710Z","updated_at":"2025-05-16T12:33:43.187Z","avatar_url":"https://github.com/oscaromeu.png","language":"Shell","funding_links":[],"categories":["Python","JSON"],"sub_categories":[],"readme":"# 🏡 🧪 Home Lab\n\n## 📖 Overview\n\nThis mono repository houses the infrastructure for my homelab. I try to adhere to Infrastructure as Code (IaC) and GitOps practices using tools like [Ansible](https://www.ansible.com/), [Terraform](https://www.terraform.io/), [Kubernetes](https://kubernetes.io/), [Flux](https://github.com/fluxcd/flux2), [Renovate](https://github.com/renovatebot/renovate) and [GitHub Actions](https://github.com/features/actions).\n\n## ⛵ How to get started\n\nThere is a template over at [onedr0p/flux-cluster-template](https://github.com/onedr0p/flux-cluster-template) if you want to try and follow along with some of the practices I use here.\n\n## 🎨 Cluster components\n\n+ [actions-runner-controller](https://github.com/actions/actions-runner-controller): Self-hosted Github runners\n+ [cert-manager](https://cert-manager.io/docs/): Creates SSL certificates for services in my k3s cluster.\n+ [cilium](https://cilium.io/get-started/): Internal Kubernetes networking plugin.\n+ [external-dns](https://github.com/kubernetes-sigs/external-dns): Automatically manages DNS records from my cluster in a cloud DNS provider.\n+ [external-secrets](https://github.com/external-secrets/external-secrets/): Managed Kubernetes secrets using [Doppler](https://www.doppler.com).\n+ [ingress-nginx](https://github.com/kubernetes/ingress-nginx/): Ingress controller to expose HTTP traffic to pods over DNS.\n+ [Rook](https://rook.io): Distributed block storage for persistent storage.\n+ [sops](https://github.com/mozilla/sops): Managed secrets for Kubernetes, Ansible and Terraform which are commited to Git.\n+ [volsync](https://volsync.readthedocs.io/en/stable/) and [snapscheduler](https://backube.github.io/snapscheduler/): Backup and recovery of persistent volume claims.\n\n... and more!\n\n## 🗄️ Hardware\n\u003cdetails\u003e\n\n## Production Nodes\n\n| Device             | Count | Specs                                                                                                                                                                                                                                                                                                          | OS                                                  | Purpose |\n|--------------------|-------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|---------|\n| MinisForum um350   | 1     | **RAM** `32GB` \u003cbr/\u003e **M.2 SSD** `500GB` \u003cbr/\u003e **HDD SSD** `500GB`                                                                                                                                                       | Ubuntu 22.04.4 LTS                     |  Control Plane       |\n| MinisForum um350   | 1     | **RAM** `32GB` \u003cbr/\u003e **M.2 SSD** `500GB` \u003cbr/\u003e **HDD SSD** `500GB`                                                                                                                                                     | Ubuntu 22.04.4 LTS                       |  Data Plane       |\n| Minisforum um560   | 1     | **RAM** `32GB`  \u003cbr/\u003e **M.2 SSD** `1TB` \u003cbr/\u003e **HDD SSD** `500GB`                                                                                                                                                    | Ubuntu 22.04.4 LTS                     |    Data Plane     |\n\n## Staging Nodes\n\n| Device             | Count | Specs                                                                                                                                                                                                                                                                                                          | OS                                                  | Purpose |\n|--------------------|-------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|---------|\n| Turing Pi RK1      | 3     | **RAM** `16GB` \u003cbr/\u003e **M.2 SSD** `500GB`| Ubuntu 22.04 LTS |   Development \u0026 Staging      |\n\n## Infrastructure\n\n| Device             | Count | Specs                                                                                                                                                                                                                                                                                                         | OS       | Purpose |\n|--------------------|-------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------|---------|\n| Turing Pi RK1      | 1    | **RAM** `16GB` \u003cbr/\u003e **M.2 SSD** `500GB` \u003cbr/\u003e **HDD** `1TB` | -  | DNS Server |\n| Turing Pi Board V2 | 1     | -   |   -       |     -    |\n| Unifi UDM Pro      | 1     | - | - |    10Gb Core Switch + Router + FW    |\n| Unifi Lite 8 PoE     | 1     | - | - |    Switch    |\n| Mac Mini     | 1     | **RAM** `8GB` \u003cbr/\u003e **M.2 SSD** `256GB` | - |    TBD    |\n\n\n\u003c/details\u003e\n\n\u003c/details\u003e\n\n## 📜 Changelog\n\nSee my _awful_ commit [main history](https://github.com/oscaromeu/home-ops/commits/main) and [legacy history](https://github.com/oscaromeu/home-ops/tree/d75a6360586de8b5b5c4ff6b553b7512cfea5007)\n\n## :handshake:\u0026nbsp; Gratitude and thanks\n\nThanks all the people of [Home Operations](https://discord.gg/home-operations) Discord community who put a lot of effort and donate their time to the community.\n\n## 🔏 License\n\nSee [LICENSE](./LICENSE) v.g WTF License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foscaromeu%2Fhome-ops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foscaromeu%2Fhome-ops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foscaromeu%2Fhome-ops/lists"}