À propos du projet
Khue's Homelab est un projet open source qui automatise l'ensemble du cycle de vie d'un environnement de laboratoire domestique, de l'approvisionnement bare metal à l'exécution de services auto-hébergés, en utilisant l'infrastructure en tant que code et les principes GitOps. Le projet est actuellement en version ALPHA et est conçu comme un cadre hautement personnalisable pour construire des laboratoires domestiques personnels.
Le flux de travail principal commence par l'approvisionnement bare metal basé sur le démarrage PXE, qui installe automatiquement Fedora Server sur des machines physiques. Il configure ensuite une distribution Kubernetes légère (K3s) et déploie une pile complète d'applications auto-hébergées à l'aide d'ArgoCD pour un déploiement continu basé sur GitOps.
Les principales fonctionnalités comprennent :
- **Approvisionnement Bare Metal** : Configuration automatisée du démarrage PXE qui approvisionne des serveurs physiques sans intervention manuelle.
- **Gestion de Kubernetes** : Installation et gestion automatisées de clusters K3s avec des mises à niveau continues automatiques pour le système d'exploitation et Kubernetes.
- **Déploiement d'Applications GitOps** : Les applications sont déployées et gérées via GitOps à l'aide d'ArgoCD, avec la prise en charge des mises à jour automatiques (avec des portes d'approbation).
- **Mise en Réseau et Sécurité** : Prend en charge le VPN via Tailscale ou Wireguard, la gestion automatisée des certificats avec cert-manager, et l'exposition Internet sécurisée via Cloudflare Tunnel.
- **CI/CD** : Woodpecker CI intégré pour l'intégration continue et ArgoCD pour le déploiement continu.
- **Stockage** : Stockage distribué utilisant Rook Ceph pour un stockage natif dans le cloud au sein de Kubernetes.
- **Surveillance et Alertes** : Pile d'observabilité complète avec Prometheus, Grafana et Loki pour les métriques, les tableaux de bord et l'agrégation des journaux.
- **Gestion des Identités** : Prise en charge de l'authentification unique via Kanidm.
- **Automatisation DNS** : ExternalDNS met automatiquement à jour les enregistrements DNS pour les services exposés.
- **Sauvegarde et Restauration** : Capacités automatisées de sauvegarde et de restauration.
- **Architecture Modulaire** : Facilité d'ajout ou de suppression de fonctionnalités et de composants.
- **Prise en Charge Multi-Environnement** : Prend en charge plusieurs environnements tels que dev et prod.
- **Test d'Infrastructure** : Capacités de test d'infrastructure intégrées.
La pile technique comprend Ansible pour l'automatisation bare metal, ArgoCD pour GitOps, Cilium pour la mise en réseau et l'observabilité basées sur eBPF, cert-manager pour la gestion des certificats, Cloudflare pour le DNS et le tunneling, Docker pour les serveurs PXE éphémères, ExternalDNS pour la synchronisation DNS, Fedora Server comme système d'exploitation de base, Gitea comme service Git auto-hébergé, Grafana pour l'observabilité, Helm comme gestionnaire de paquets Kubernetes, K3s comme distribution Kubernetes légère, Kanidm pour la gestion des identités, Loki pour l'agrégation des journaux, NGINX comme contrôleur d'entrée Kubernetes, Nix pour les shells de développement, ntfy pour les notifications, Prometheus pour la surveillance, Renovate pour les mises à jour des dépendances, Rook Ceph pour le stockage, Tailscale et Wireguard pour le VPN, Woodpecker CI pour la CI/CD, et Zot Registry pour le registre de conteneurs privé.
Le projet peut être testé localement sans matériel (mode bac à sable) ou déployé sur du matériel réel pour des charges de travail de production. La documentation est disponible sur homelab.khuedoan.com.
Le projet est sous licence GPLv3 et accueille favorablement les contributions. Il est inspiré par divers projets open source et ressources communautaires dans l'espace du laboratoire domestique et de l'auto-hébergement.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.