このプロジェクトについて

KhueのHomelabは、ベアメタルプロビジョニングからセルフホストサービスの実行まで、ホームラボ環境のライフサイクル全体を自動化するオープンソースプロジェクトです。Infrastructure as CodeとGitOpsの原則を採用しています。現在はALPHAステータスであり、個人用ホームラボを構築するための高度にカスタマイズ可能なフレームワークとして設計されています。 コアワークフローは、PXEブートベースのベアメタルプロビジョニングから始まり、物理マシンにFedora Serverを自動インストールします。その後、軽量なKubernetesディストリビューション(K3s)をセットアップし、ArgoCDを使用したGitOpsベースの継続的デプロイメントにより、包括的なセルフホストアプリケーションスタックを展開します。 主な機能は以下の通りです。 - **ベアメタルプロビジョニング**: 手動介入なしで物理サーバーをプロビジョニングする自動PXEブートセットアップ。 - **Kubernetes管理**: K3sクラスタの自動インストールと管理。OSとKubernetesの両方で自動ローリングアップグレードをサポート。 - **GitOpsアプリケーション展開**: アプリケーションはArgoCDを使用してGitOpsを通じて展開・管理され、自動更新(承認ゲート付き)をサポート。 - **ネットワーキングとセキュリティ**: TailscaleまたはWireguardによるVPN、cert-managerによる自動証明書管理、Cloudflare Tunnelによる安全なインターネット公開をサポート。 - **CI/CD**: 継続的インテグレーション用のWoodpecker CIと継続的デプロイメント用のArgoCDを統合。 - **ストレージ**: Kubernetes内のクラウドネイティブストレージとしてRook Cephを使用した分散ストレージ。 - **モニタリングとアラート**: Prometheus、Grafana、Lokiによるメトリクス、ダッシュボード、ログ集約のための完全な可観測性スタック。 - **アイデンティティ管理**: Kanidmによるシングルサインオンサポート。 - **DNS自動化**: ExternalDNSが公開サービスのDNSレコードを自動更新。 - **バックアップとリストア**: 自動バックアップおよびリストア機能。 - **モジュラーアーキテクチャ**: 機能やコンポーネントの追加・削除が容易。 - **マルチ環境サポート**: devやprodなどの複数環境をサポート。 - **インフラストラクチャテスト**: 組み込みのインフラストラクチャテスト機能。 テクノロジースタックには、ベアメタル自動化用のAnsible、GitOps用のArgoCD、eBPFベースのネットワーキングと可観測性用のCilium、証明書管理用のcert-manager、DNSとトンネリング用のCloudflare、一時的なPXEサーバー用のDocker、DNS同期用のExternalDNS、ベースOSとしてのFedora Server、セルフホストGitサービスとしてのGitea、可観測性用のGrafana、KubernetesパッケージマネージャーとしてのHelm、軽量KubernetesディストリビューションとしてのK3s、アイデンティティ管理用のKanidm、ログ集約用のLoki、Kubernetes IngressコントローラーとしてのNGINX、開発シェル用のNix、通知用のntfy、モニタリング用のPrometheus、依存関係更新用のRenovate、ストレージ用のRook Ceph、VPN用のTailscaleとWireguard、CI/CD用のWoodpecker CI、プライベートコンテナレジストリ用のZot Registryが含まれます。 このプロジェクトは、ハードウェアなしでローカルに試すことも(サンドボックスモード)、本番ワークロード用に実ハードウェアに展開することもできます。ドキュメントはhomelab.khuedoan.comで入手可能です。 このプロジェクトはGPLv3ライセンスで提供され、コントリビューションを歓迎しています。ホームラボおよびセルフホスティング分野のさまざまなオープンソースプロジェクトやコミュニティリソースからインスピレーションを得ています。