这个项目能做什么
itsUP 是一个基于 Python 的家庭基础设施栈,专注于自动化 Docker 服务管理,并强调零停机部署与安全性。
它管理完整的网络栈,包括 DNS 解析、Traefik 反向代理和容器工作负载——全部通过基于项目的目录结构进行编排。每个服务项目都有自己的 docker-compose.yml 和配置文件,使基础设施即代码保持有序且可版本化。
主要能力:
- **零停机滚动更新**:使用 docker rollout 扩展容器,等待健康检查通过后再替换旧实例。智能变更检测在无变化时跳过滚动更新。
- **托管的代理**:生成带有 SO_REUSEPORT 的 Traefik 配置,以实现无缝更新。支持 TLS 终止、TLS 透传、TCP/UDP 转发和主机端口绑定。
- **容器安全监控器**:通过关联 DNS 查询与直接 IP 连接来检测受损容器。可与 OpenSnitch 集成,实现可选的 iptables 阻断。
- **DNS 蜜罐**:将所有容器 DNS 流量路由到 dnsmasq,并通过日志记录进行威胁检测。
- **自动化备份**:夜间 S3 备份与计划恢复。
- **威胁情报**:通过 AbuseIPDB API 集成生成每日报告。
- **OpenVPN 服务器**:内置 VPN 支持,并带有 SSH 访问。
itsup CLI 是主要接口,提供 init、apply、validate、dns/proxy/svc/monitor 管理等命令。在 Linux 上,systemd 定时器处理启动引导、夜间 apply、备份和健康检查。在 macOS 上,launchd 代理提供类似的自动化。
先决条件包括带有 rollout 插件的 Docker、用于 Python 依赖管理的 uv、80/443 端口转发,以及通配符 DNS 域名。配置使用 SOPS/age 进行机密加密,项目和机密分别存储在独立的 git 仓库中。
评论
0 评分人数达到10人后显示
登录后参与讨论。