Sobre o projeto

Shoggoth é uma multiferramenta de desenvolvimento agentic auto-hospedada, destinada ao uso pessoal, montada a partir de serviços containerizados implantados no K3s e acessíveis sob um domínio configurável (s.local por padrão). O projeto se descreve como experimental e em estágio inicial, projetado para uma rede local onde a segurança não é uma prioridade, e adaptado a uma pilha Ubuntu/C++/Python e um fluxo de trabalho de tudo-como-código sem IDE. Seus objetivos declarados são um ambiente onde agentes de codificação trabalham como membros da equipe, executam tarefas atribuídas e participam de revisões de código, com todos os componentes sendo open source, auto-hospedáveis e substituíveis por software similar. O README o contrasta com ferramentas de codificação agentic estilo kanban, observando seu foco na integração de componentes de terceiros e na cobertura de uma gama mais ampla de funcionalidades, enquanto os fluxos de trabalho agentic são menos avançados que algumas alternativas. Grupos de serviços descritos: Networking - Servidor VPN WireGuard com uma interface de gerenciamento web, um proxy de terminação TLS Angie fornecendo acesso HTTPS à interface da VPN de fora da VPN, e CoreDNS para alias de domínio e blacklist de DNS. Caching - Proxy de cache apt para Debian/Ubuntu, registro de contêiner zot com cache pull-through, um proxy de cache de pacotes Python e um cache de build ccache/sccache, os dois últimos servidos pelo Angie. Development - Suíte Gitea (servidor Git, Git Pages para hospedagem estática, Actions runner), orquestração de fluxo de trabalho Kestra, um serviço Docker-in-Docker slave com um terminal web interativo baseado em ttyd, tmux e Qwen Code, e CDash para dashboards de resultados de testes. Project management - Servidor Redmine. LLM e agentes de codificação - Proxy LiteLLM com um gateway MCP, servidor de modelo local LocalAI, servidor Gitea MCP e servidor Basic Memory MCP. Observability - Suíte Grafana usando a pilha LGTM: Loki para logs, Tempo para traces, VictoriaMetrics para métricas e um pipeline OpenTelemetry Collector para ingestão. Identity and secrets - Diretório OpenLDAP com uma interface web, além do OpenBao para gerenciamento de segredos. Arquitetura e operações: o sistema consiste em manifests do K3s em uma pasta shoggoth/k3s, utilitários para controle remoto da implantação expostos por meio de alvos do Makefile (up, down, log, ssh, sync_restart), e um script de configuração executado em máquinas cliente para gerar arquivos de configuração, configurar o proxy de cache do Docker e o registro, atualizar /etc/hosts, instalar configurações de cache apt e obter tokens do gateway de API. O contêiner slave combina um ambiente de build ccws com compiladores e ferramentas de análise estática, o agente de terminal Qwen Code e utilitários específicos do shoggoth, e é destinado a CI/CD simples, fluxos agentic não interativos como codificação ou revisões, e desenvolvimento interativo. A autenticação usa OpenLDAP com três contas (admin para administração do diretório e login de administrador do Grafana, sldapauth como a conta de bind do serviço, sslave para CI e automação), e dois grupos (admins, mapeado para uma política shoggoth-admin no OpenBao, e shoggoth-auth para contas de bind de serviço). O OpenBao é a fonte de verdade para senhas, geradas automaticamente na primeira execução, e os serviços com suporte LDAP incluem Gitea, Redmine, CDash e o próprio OpenBao. As ressalvas documentadas incluem que os clientes CLI do gitea e do redmine não podem ser configurados apenas por variáveis de ambiente, que o zot deixa diretórios de staging de sincronização obsoletos após sincronizações on-demand interrompidas (contornadas com um initContainer de limpeza), e problemas conhecidos de callback do OpenTelemetry do LiteLLM e do watcher do WAL do Tempo.