这个项目能做什么
Shoggoth 是一个用于个人使用的自托管代理式开发多功能工具,由部署在 K3s 上的容器化服务组成,可通过可配置的域名(默认是 s.local)访问。该项目被描述为实验性和早期阶段,专为本地网络设计,安全性不是重点,并针对 Ubuntu/C++/Python 堆栈和无 IDE 的代码即一切工作流程进行了定制。其目标是创建一个编码代理可以作为团队成员工作的环境,执行分配的任务并参与代码审查,所有组件都是开源的、可自托管的,并可以被类似软件替换。README 将其与看板式代理编码工具进行了对比,指出其重点是集成第三方组件并覆盖更广泛的功能,而代理工作流程则不如一些替代方案先进。
服务组描述:
网络 - WireGuard VPN 服务器,带有 Web 管理 UI;Angie TLS 终止反向代理,从 VPN 外部提供对 VPN UI 的 HTTPS 访问;CoreDNS 用于域名别名和 DNS 黑名单。
缓存 - Debian/Ubuntu apt 缓存代理;带有拉取缓存的 zot 容器注册表;Python 包缓存代理;ccache/sccache 构建缓存,后两者由 Angie 提供服务。
开发 - Gitea 套件(Git 服务器、Git Pages 静态托管、Actions 运行器);Kestra 工作流编排;带有基于 ttyd、tmux 和 Qwen Code 的交互式 Web 终端的 Docker-in-Docker 从属服务;CDash 用于测试结果仪表板。
项目管理 - Redmine 服务器。
LLM 和编码代理 - 带有 MCP 网关的 LiteLLM 代理;LocalAI 本地模型服务器;Gitea MCP 服务器;Basic Memory MCP 服务器。
可观测性 - 使用 LGTM 堆栈的 Grafana 套件:Loki 用于日志,Tempo 用于跟踪,VictoriaMetrics 用于指标,OpenTelemetry Collector 管道用于摄取。
身份和密钥 - 带有 Web 界面的 OpenLDAP 目录,以及用于密钥管理的 OpenBao。
架构和运营:该系统由 shoggoth/k3s 文件夹中的 K3s 清单、通过 Makefile 目标(up、down、log、ssh、sync_restart)暴露的远程控制部署实用程序,以及在客户端机器上运行的设置脚本组成,该脚本用于生成配置文件、配置 Docker 缓存代理和注册表、更新 /etc/hosts、安装 apt 缓存设置并获取 API 网关令牌。从属容器将 ccws 构建环境与编译器和静态分析工具、Qwen Code 终端代理以及特定于 shoggoth 的实用程序结合在一起,用于普通 CI/CD、非交互式代理流程(例如编码或审查)以及交互式开发。
身份验证使用 OpenLDAP,其中包含三个账户(admin 用于目录管理和 Grafana 管理登录,sldapauth 作为服务绑定账户,sslave 用于 CI 和自动化),以及两个组(admins,映射到 OpenBao 中的 shoggoth-admin 策略,以及用于服务绑定账户的 shoggoth-auth)。OpenBao 是密码的真实来源,在第一次运行时自动生成,基于 LDAP 的服务包括 Gitea、Redmine、CDash 和 OpenBao 本身。已记录的注意事项包括:gitea 和 redmine CLI 客户端不能仅通过环境变量进行配置;zot 在中断的按需同步后会留下过时的同步暂存目录(通过清理 initContainer 进行规避);以及已知的 LiteLLM OpenTelemetry 回调和 Tempo WAL 观察者问题。
评论
0 评分人数达到10人后显示
登录后参与讨论。