cterence/homelab-gitops · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
🏠 homelab-gitops
使用 ArgoCD 管理的 Kubernetes 集群。
⚙️ 硬件
| 设备 | 名称 | 规格 | 操作系统 | 角色 |
|---|---|---|---|---|
| Lenovo ThinkCentre M75q-2 | homelab2 | Ryzen 5 Pro 5650GE (6 核 / 12 线程) / 24GB 内存 / 256GB + 2TB SSD | NixOS | k8s 控制节点+工作节点 |
✨ 功能
- 使用 k0s 部署的 Kubernetes 集群
- 使用 ArgoCD 和 Helm 的 GitOps 部署
- 简单的扁平目录结构:argocd-apps 包含部署 k8s-apps 中伞形 Helm 图表的 ArgoCD 应用程序
- 使用 cert-manager、external-dns 和 traefik 实现完全自动化的 HTTPS 暴露
- 使用 PocketID 作为仅支持通行密钥的 OIDC 提供商对敏感应用进行身份验证
- 使用 ModSecurity 插件 和一些 hacks 的 WAF
- 使用 external-secrets、OpenBao 和 sops 进行密钥管理(查看 terraform 了解配置方法)
- 使用 Velero 和 Backblaze B2 进行异地数据备份
- 使用 Kopia 轻松实现 Backblaze 到磁盘的备份同步
- 使用 CloudNativePG 进行 PostgreSQL 数据库管理
- 使用 Prometheus、Grafana、Loki 和 Opentelemetry Collector 实现可观测性
- 使用 Alertmanager 和 Telegram Bot 进行告警
- 使用 go-healthcheck 和 Gatus 进行彻底的 HTTP / PostgreSQL 状态检查
- 使用 Renovate 进行自动更新(甚至包括 linuxserver 镜像!)
- 使用 Sablier 实现缩容至零
- 任何你想托管的应用:Nextcloud、Immich、Paperless-ngx 等(见下文)
镜像构建
声明式的集群内镜像构建位于 image-builds/。
放入一个包含 Dockerfile 和 build.yaml 的子目录,提交,ArgoCD 将构建
并将镜像推送到集群内注册表。参见
image-builds/README.md。
💻 我的集群中当前部署了什么?
这是一个自动更新的列表,列出了我已配置和/或部署的应用。点击某个应用可查看其 Helm 配置。
| 应用 | 描述 | 是否已部署 |
|---|---|---|
| anki-sync-server | AnkiDroid 的同步服务器 | ❌ |
| anubis | 称量传入 HTTP 请求的“灵魂”以阻止 AI 爬虫 | ✅ |
| argocd | 用于 Kubernetes 的声明式 GitOps 持续交付工具 | ✅ |
| arr-stack | Arr Stack | ✅ |
| attic | 多租户 Nix 二进制缓存 | ❌ |
| audiobookshelf | 自托管的有声书和播客服务器 | ✅ |
| blackbox-exporter | 允许通过 HTTP、HTTPS、DNS、TCP、ICMP 和 gRPC 对端点进行黑盒探测 | ❌ |
| calibre-web | 用于浏览、阅读和下载存储在 Calibre 数据库中的电子书的 Web 应用 | ❌ |
| cert-manager | 在 Kubernetes 中自动配置和管理 TLS 证书 | ✅ |
| changedetection | 网站变更检测、网页监控和网站变更警报 | ✅ |
| cloudnative-pg | CloudNativePG 是一个综合平台,旨在无缝管理 Kubernetes 环境中的 PostgreSQL 数据库,涵盖从初始部署到持续维护的整个运营生命周期 | ✅ |
| convertx | 自托管的在线文件转换器 | ✅ |
| disk-usage-exporter | 用于 local-path 卷的按目录磁盘使用率 Prometheus 导出器 | ✅ |
| external-dns | 为 Kubernetes Ingresses 和 Services 配置外部 DNS 服务器(AWS Route53、Google CloudDNS 等) | ✅ |
| external-secrets | External Secrets Operator 从 AWS Secrets Manager 等第三方服务读取信息,并自动将值注入为 Kubernetes Secrets | ✅ |
| falco | 云原生运行时安全 | ❌ |
| firefly | 一个免费且开源的个人财务管理器 | ✅ |
| gitea | 使用 Go 编写的轻量级代码托管解决方案的自托管 Git 服务 | ✅ |
| go-healthcheck | 简单的 HTTP 健康检查 | ✅ |
| home-assistant | 开源家庭自动化,将本地控制和隐私放在首位 | ✅ |
| homepage | 一个高度可定制的首页(或起始页 / 应用程序仪表板),支持 Docker 和服务 API 集成 | ❌ |
| httpbin | 以 JSON 格式回显请求数据 | ✅ |
| image-builds | 从 image-builds/* 子目录构建镜像的 ApplicationSet | ✅ |
| immich | 高性能的自托管照片和视频管理解决方案 | ✅ |
| it-tools | 面向开发者的实用在线工具集 | ✅ |
| kube-prometheus-stack | kube-prometheus-stack 收集 Kubernetes 清单、Grafana 仪表板和 Prometheus 规则,并结合文档和脚本,使用 Prometheus Operator 提供易于操作的端到端 Kubernetes 集群监控 | ✅ |
| lastfm-scrobble-deduplicator | 定期删除重复的 Last.fm 播放记录 | ✅ |
| local-path-provisioner | 利用每个节点上的本地存储 | ✅ |
| loki | 类似 Prometheus,但用于日志 | ✅ |
| longhorn | 基于 Kubernetes 构建并为其服务的云原生分布式存储 | ❌ |
| metallb | 使用标准路由协议的 Kubernetes 网络负载均衡器实现 | ✅ |
| microbin | 一个安全、可配置的文件共享和 URL 缩短 Web 应用 | ✅ |
| mosquitto | 开源 MQTT 代理 | ✅ |
| nextcloud | 您所有数据的安全之家 | ✅ |
| niks3 | 基于 S3 的 Nix 二进制缓存,支持垃圾回收 | ✅ |
| openbao | 由 Linux 基金会管理的开源、社区驱动的 Vault 分支 | ✅ |
| opencloud | 出色的文件共享 | ❌ |
| opentelemetry-collector | 接收、处理和导出遥测数据的供应商无关实现 | ✅ |
| opentelemetry-operator | OpenTelemetry Collector 的 Kubernetes Operator | ✅ |
| paperless-ngx | 扫描、索引并归档您所有的物理文档 | ✅ |
| pocket-id | 简单易用的 OIDC 提供商,允许用户使用其 passkeys 对您的服务进行身份验证 | ✅ |
| registry | 集群内 OCI 镜像注册表 (CNCF distribution) | ✅ |
| reloader | 一个 Kubernetes 控制器,用于监视 ConfigMap 和 Secrets 的变化,并对具有关联 Deployment、StatefulSet、DaemonSet 和 DeploymentConfig 的 Pods 执行滚动升级 | ✅ |
| sablier | 一款免费且开源的软件,用于按需启动工作负载,并在一段不活动期后停止它们 | ✅ |
| satisfactory-server | Satisfactory 服务器 | ❌ |
| snapshot-controller | 实现 CSI 快照功能的控制循环 | ❌ |
| tailscale-operator | Tailscale 的 Kubernetes Operator | ✅ |
| temporal | 持久化执行引擎。 | ✅ |
| traefik | 基于 Traefik 的 Kubernetes 入口控制器 | ✅ |
| tts9000 | 使用 Mistral 的 Voxtral TTS 的文本转语音服务 | ✅ |
| vaultwarden | 用 Rust 编写的非官方 Bitwarden 兼容服务器 | ✅ |
| velero | 备份和迁移 Kubernetes 应用及其持久卷 | ✅ |
| versity-gw | 高性能 S3 转换服务 | ✅ |
| zigbee2mqtt | Zigbee 到 MQTT 的桥接 | ✅ |