Использование dv (Discourse Vibe) для настройки Discourse AI в среде разработки

dv - Discourse Vibe - https://github.com/samsaffron/dv is a tool I have been building that lets you easily work on multiple pre-configured Discourse dev containers.

I built it to make it easier to work with AI agents, but as time progresses it is doing more and more things.

Among the things it can do:

  • Checkout a PR in a container
  • Extract and import code into a container
  • Run multiple Discourse Dev instances on multiple ports
  • Run a large amount of AI agents inside containers
  • and lots more

Over the weekend I built a nifty helper to help configure AI inside a running dev container.

To run this on your own machine.

  • Install docker
  • Run the install script in the dv Readme (or go build it)
  • Run dv build (if you have ample memory) or dv pull if you are memory contrained. This will give you the base image.
  • Run dv new some-name (dv ls to list cotainers)
  • Run dv config ai and configure your llm using the tui

  • dv config ai --help to learn about possible API keys we look for

  • after adding the LLM you will have a working fully configured dev environment with Discourse AI

  • Visit localhost:4200/session/admin/become to log in as admin

  • Talk to robot (ai bot in sidebar)

Video demo:

I also posted how to use dv + claude code router + discourse MCP at:

17 лайков

Спасибо за это! Я понимаю достаточно, чтобы видеть, что это может быть очень интересно для меня, но мне не хватает некоторых блоков знаний, чтобы действительно понять, что это такое и как я могу этим воспользоваться.

Не могли бы вы дать немного больше контекста «для не-разработчиков»? (Я любитель-изобретатель: никогда не уверен, как описать свои навыки в этой области… не владею кодингом свободно, но «понимаю» достаточно базовых принципов, чтобы когда-то с трудом написать несколько простых плагинов для WordPress, знаю основы командной строки, понимаю простое программирование и администрирование серверов… то, что я вижу в области ИИ, заставляет меня мечтать, что я наконец смогу приблизиться к реализации некоторых своих проектов!)

  • Запуск нескольких экземпляров Discourse Dev на разных портах

Это звучит отлично, Сэм. Я ещё не устанавливал. У меня были серьёзные трудности с запуском нескольких экземпляров Discourse с помощью Docker на сервере Ubuntu. Я использую Caddy в качестве обратного прокси.

Моя основная цель — создать зеркало рабочего экземпляра Discourse в среде разработки, чтобы работать над пользовательскими элементами перед их выкладкой в продакшн. Желательно на отдельном доменном имени.

Нужно ли сначала установить это, а затем новые экземпляры Discourse и настроить их, или можно установить для работы с уже существующими установками, а потом добавить ещё? Не уверен, что Caddy — лучший выбор для управления DNS в такой конфигурации, или есть что-то более подходящее?

dv стремится быть инструментом полного цикла. Он управляет прокси и всем остальным; например, я размещаю свои экземпляры на домене XYZ.home.arpa.

Вы можете настроить несколько контейнеров с помощью dv и использовать команду dv catchup для их обновления до последней версии, что автоматически обновит плагины и ядро.

В основе всё это просто контейнеры Docker, которые можно адаптировать под любые нужды: импортировать данные, запускать пользовательские команды и так далее.

Это среда, ориентированная в первую очередь на разработчиков и дизайнеров. Вы можете выполнить dv builddv new somethingdv ra codex и двигаться дальше, но эта утилита не ставит целью сделать инженерию доступной для масс. Она призвана создавать множество изолированных окружений для разработки на вашем компьютере как расширенную функцию для опытных пользователей — инженеров и дизайнеров.

2 лайка

Спасибо, всё понятно. Если это для тех, кто хочет управлять несколькими средами разработки, то это точно не для меня (я всё ещё думаю, стоит ли мне настраивать одну :rofl:)

1 лайк

Это полезно даже для одной среды, так как значительно упрощает настройку.

dv build dv new something dv list

Однако это в основном технический инструмент для разработчиков и дизайнеров, он не предназначен для любителей.

3 лайка