Skip to content
This repository has been archived by the owner on Oct 21, 2024. It is now read-only.

Latest commit

 

History

History
193 lines (176 loc) · 9.48 KB

README.md

File metadata and controls

193 lines (176 loc) · 9.48 KB

Atte's Homelab

Blog

Initial setup based on khuedoan/homelab

This project utilizes Infrastructure as Code and GitOps to automate provisioning, operating, and updating self-hosted services in my homelab.

Hardware

  • ThinkPad x1 Carbon 7th gen
    • CPU: Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz
    • RAM: 16GB
    • SSD: 256GB

Features

  • Common applications: Gitea, Seafile, Jellyfin, Paperless...
  • Automated bare metal provisioning with PXE boot
  • Automated Kubernetes installation and management
  • Installing and managing applications using GitOps
  • Automatically update apps (with approval)
  • Modular architecture, easy to add or remove features/components
  • Automated certificate management
  • Automatically update DNS records for exposed services
  • VPN without port forwarding
  • Expose services to the internet securely with Cloudflare Tunnel
  • CI/CD platform
  • Private container registry
  • Automatic rolling upgrade for OS and Kubernetes
  • Distributed storage
  • Support multiple environments (dev, prod)
  • Monitoring and alerting 🚧
  • Automated offsite backups
  • Single sign-on
  • Infrastructure testing

Tech stack

Logo Name Description
Ansible Automate bare metal provisioning and configuration
ArgoCD GitOps tool built to deploy applications to Kubernetes
cert-manager Cloud native certificate management
Cloudflare DNS and Tunnel
Docker Ephemeral PXE server and convenient tools container
ExternalDNS Synchronizes exposed Kubernetes Services and Ingresses with DNS providers
Fedora Server Base OS for Kubernetes nodes
Gitea Self-hosted Git service
Grafana Operational dashboards
Helm The package manager for Kubernetes
K3s Lightweight distribution of Kubernetes
Kubernetes Container-orchestration system, the backbone of this project
Loki Log aggregation system
Longhorn Cloud native distributed block storage for Kubernetes
MetalLB Bare metal load-balancer for Kubernetes
NGINX Kubernetes Ingress Controller
Prometheus Systems monitoring and alerting toolkit
Renovate Automatically update dependencies
Concourse Open-source automation system used for CI/CD.
Harbor Private container registry
Vault Secrets and encryption management system

License

Copyright © 2023 - Atte Niemi

Copyright © 2020 - 2023 Khue Doan

Distributed under the GPLv3 License. See license page or LICENSE.md file for more information.

Acknowledgements

References:

Here is a list of the contributors who have helped to improve this project. Big shout-out to them!

If you feel you're missing from this list, feel free to add yourself in a PR.