这个项目能做什么

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 仓库中。