About this project
Shoggoth is a self-hosted agentic development multitool intended for personal use, assembled from containerized services deployed on K3s and reachable under a configurable domain (s.local by default). The project describes itself as experimental and early-stage, designed for a local network with security explicitly not a priority, and tailored to an Ubuntu/C++/Python stack and an everything-as-code workflow without an IDE. Its stated goals are an environment where coding agents work as team members, execute assigned tasks and take part in code reviews, with all components open source, self-hostable and replaceable by similar software. The README contrasts it with kanban-style agentic coding tools, noting its focus on integrating third-party components and covering a wider range of functionality, while agentic workflows are less advanced than some alternatives.
Service groups described:
Networking - WireGuard VPN server with a web management UI, an Angie TLS-terminating reverse proxy providing HTTPS access to the VPN UI from outside the VPN, and CoreDNS for domain aliasing and DNS blacklisting.
Caching - Debian/Ubuntu apt caching proxy, zot container registry with pull-through caching, a Python package caching proxy and a ccache/sccache build cache, the latter two served by Angie.
Development - Gitea suite (Git server, Git Pages static hosting, Actions runner), Kestra workflow orchestration, a Docker-in-Docker slave service with an interactive web terminal based on ttyd, tmux and Qwen Code, and CDash for test-result dashboards.
Project management - Redmine server.
LLM and coding agents - LiteLLM proxy with an MCP gateway, LocalAI local model server, Gitea MCP server and Basic Memory MCP server.
Observability - Grafana suite using the LGTM stack: Loki for logs, Tempo for traces, VictoriaMetrics for metrics and an OpenTelemetry Collector pipeline for ingestion.
Identity and secrets - OpenLDAP directory with a web interface, plus OpenBao for secret management.
Architecture and operations: the system consists of K3s manifests in a shoggoth/k3s folder, utilities for remote control of the deployment exposed through Makefile targets (up, down, log, ssh, sync_restart), and a setup script run on client machines to generate configuration files, configure the Docker caching proxy and registry, update /etc/hosts, install apt cache settings and obtain API gateway tokens. The slave container combines a ccws build environment with compilers and static analysis tools, the Qwen Code terminal agent and shoggoth-specific utilities, and is intended for plain CI/CD, non-interactive agentic flows such as coding or reviews, and interactive development.
Authentication uses OpenLDAP with three accounts (admin for directory administration and Grafana admin login, sldapauth as the service bind account, sslave for CI and automation), and two groups (admins, mapped to a shoggoth-admin policy in OpenBao, and shoggoth-auth for service bind accounts). OpenBao is the source of truth for passwords, auto-generated on first run, and LDAP-backed services include Gitea, Redmine, CDash and OpenBao itself. Documented caveats include that gitea and redmine CLI clients cannot be configured by environment variables alone, that zot leaves stale sync staging directories after interrupted on-demand syncs (worked around with a cleanup initContainer), and known LiteLLM OpenTelemetry callback and Tempo WAL watcher issues.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.