dv - Discourse Vibe - https://github.com/samsaffron/dv é uma ferramenta que venho construindo e que permite trabalhar facilmente com vários contêineres de desenvolvimento Discourse pré-configurados.
Eu a construí para facilitar o trabalho com agentes de IA, mas à medida que o tempo passa, ela está fazendo cada vez mais coisas.
Entre as coisas que ela pode fazer:
Fazer checkout de um PR em um contêiner
Extrair e importar código para um contêiner
Executar várias instâncias do Discourse Dev em várias portas
Executar uma grande quantidade de agentes de IA dentro de contêineres
e muito mais
No fim de semana, construí um auxiliar útil para ajudar a configurar a IA dentro de um contêiner de desenvolvimento em execução.
Para executar isso em sua própria máquina.
Instale o docker
Execute o script de instalação no Readme do dv (ou compile-o com go build)
Execute dv build (se você tiver memória ampla) ou dv pull se tiver pouca memória. Isso lhe dará a imagem base.
Execute dv new some-name (dv ls para listar contêineres)
Execute dv config ai e configure seu llm usando a tui
dv config ai --help para saber sobre as possíveis chaves de API que procuramos
após adicionar o LLM, você terá um ambiente de desenvolvimento funcional e totalmente configurado com o Discourse AI
Visite localhost:4200/session/admin/become para fazer login como administrador
Converse com o robô (bot de IA na barra lateral)
Demonstração em vídeo:
Eu também postei como usar dv + claude code router + discourse MCP em:
Obrigado por isso! Entendo o suficiente para perceber que isso pode ser muito interessante para mim, mas me faltam alguns blocos de conhecimento para realmente compreender o que isso faz e como posso aproveitá-lo.
Você se importaria de fornecer um pouco mais de contexto para quem não é desenvolvedor? (Sou um entusiasta de projetos: nunca tenho certeza de como descrever minhas habilidades nessa área… não sou fluente em programação de forma alguma, mas “entendo” princípios básicos o suficiente para ter conseguido, com esforço, criar alguns plugins básicos do WordPress no passado. Conheço algumas coisas de linha de comando, entendo programação simples e administração de servidores… O que estou vendo sobre IA está me fazendo sonhar que, finalmente, poderei me aproximar de executar alguns dos meus projetos!)
Executar múltiplas instâncias do Discourse Dev em várias portas
Parece ótimo, Sam. Ainda não instalei. Tive grandes dificuldades para rodar múltiplas instâncias do Discourse usando Docker em um servidor Ubuntu. Uso o Caddy como proxy reverso.
Acho que meu principal objetivo seria tentar espelhar uma instância ao vivo do Discourse em DEV para trabalhar em itens personalizados antes de colocá-los ao vivo. De preferência em um nome de domínio separado.
Isso precisa ser instalado primeiro e, em seguida, instalar novas instâncias do Discourse e configurá-las, ou pode ser instalado para funcionar com instalações existentes e depois adicionar mais? Não tenho certeza se o Caddy é o melhor para gerenciamento de DNS ao usar essa configuração ou se outra opção seria uma escolha melhor.
dv tenta ser uma ferramenta de ponta a ponta. Ele gerencia o proxy e tudo mais; por exemplo, mantenho minhas instâncias em XYZ.home.arpa.
Você configuraria vários containers com o dv e usaria dv catchup para atualizá-los para a versão mais recente, o que cuidaria da atualização de plugins e do núcleo.
No final, tudo são apenas containers Docker; você pode adaptá-los à qualquer forma que precisar, incluindo importar dados, executar comandos personalizados e assim por diante.
Isso é predominantemente um ambiente “primeiro para desenvolvedores/designers”. Você poderia executar dv build → dv new something → dv ra codex e navegar por ele, mas isso não está tentando levar a engenharia para as massas; está tentando criar muitos pods isolados de desenvolvimento na sua máquina como um recurso para usuários avançados, engenheiros e designers.
Obrigado, está claro. Se for para quem quer conseguir gerenciar múltiplos ambientes de desenvolvimento, então definitivamente não é para mim (ainda estou pensando se devo configurar um)