Buff Development
Самостоятельная установка

Community Edition: установка

Как поставить бесплатное издание Buff на свою машину: требования, установка одной командой, первый вход, лицензия, обновление, резервная копия, диагностика.

Community Edition — бесплатное издание для внутреннего использования одной организацией: одна организация, три пользователя, до 15 одновременных разработок, одна модель на установку. Чем оно отличается от SaaS и Enterprise — на странице Издания. Репозиторий установки — github.com/buffsystems/buff-community.

Что нужно

Требование
LinuxUbuntu 22.04 или 24.04, amd64, ядро не ниже 5.7, пользователь с sudo. Раннеры инструментов разработки работают в Sysbox — без привилегированных контейнеров и без сокета хоста
macOS, WindowsDocker Desktop; на Windows скрипт запускается из Git Bash. Sysbox здесь нет, поэтому контейнер Buff работает привилегированным — для личной машины, не для сервера
Ресурсыминимум 4 CPU и 8 ГБ памяти (одна разработка за раз); рекомендуется 8 CPU и 16 ГБ для трёх одновременных — каждая разработка занимает до 1,5 ГБ памяти. На диске около 20 ГБ под образы плюс место под ваши репозитории: данные лежат в томах Docker, не в образе
Доступисходящий интернет: образы с ghcr.io (в том числе наш) и Docker Hub, суточная проверка лицензии на buff.systems, ваш эндпоинт модели
Модельключ к OpenAI-совместимому эндпоинту: OpenRouter, свой LiteLLM, vLLM, Ollama и т. п.

На Linux убедитесь, что весь диск отдан корневому разделу или смонтирован под /var/lib/docker — образ установки с корнем в 8 ГБ не подойдёт. На Apple Silicon образ (amd64) идёт через эмуляцию и работает заметно медленнее.

Установка

git clone https://github.com/buffsystems/buff-community.git
cd buff-community
./install.sh

Скрипт сам определяет режим. На Linux он ставит Docker и Sysbox; с Docker Desktop — использует его и добавляет docker-compose.desktop.yml (привилегированный режим, COMPOSE_FILE в .env). Дальше в обоих случаях: создаёт .env со случайными паролями, скачивает образ издания с GitHub (BUFF_IMAGE в .env, пакет ghcr.io/buffsystems/buff-community), поднимает docker compose и показывает ход первого старта прямо в терминале — шаг за шагом до строки «готово» (несколько минут: базы, учётные записи, выкладка пайплайна). Для закрытого контура положите файл образа и его .sha256 в images/ — скрипт загрузит его вместо скачивания. Запускайте обычным пользователем — root не нужен.

До первого входа откройте .env и впишите своё:

ПеременнаяЧто это
ORGимя вашей организации латиницей, например acme
ADMIN_USER, ADMIN_EMAIL, ADMIN_PASSWORDпервый пользователь приложения, он же администратор; пароль сгенерирован, его можно заменить
LLM_BASE_URL, LLM_API_KEY, LLM_MODELэндпоинт, ключ и модель, например https://openrouter.ai/api/v1, sk-or-…, openai/gpt-4.1
APP_URLадрес, по которому люди откроют приложение; по умолчанию — IP машины и порт 8138
RUNNERSсколько воркеров разработки запустить — столько разработок пойдут одновременно, по умолчанию 3. Выше предела лицензии значение не действует: предел подписан в лицензии и показан в админке → «Лицензия» (Community — 15)

Изменили .env — примените: docker compose up -d.

Первый вход

Приложение — APP_URL (http://<машина>:8138/app/): логин из ADMIN_USER, пароль из .env. Вы попадаете в свою организацию: подключите репозиторий, создайте пространство знаний или поставьте Buff Code.

Админка — http://<машина>:8150, пользователь admin, тот же пароль. В ней:

  • Пользователи — новых заводит администратор (самостоятельной регистрации нет); всем участникам видно всё в организации.
  • Конфигурация — модель установки (llm_model) и ключ эндпоинта (llm_api_key), если вы не вписали их в .env.
  • Воркеры — состояние раннеров.
  • Лицензия — см. ниже.

Лицензия

Установка работает по лицензии Community: бессрочной, с условиями внутреннего использования. Чтобы получить её:

  1. В админке откройте «Лицензия», укажите название организации и почту администратора, подтвердите согласие на обработку этих данных и нажмите «Зарегистрировать».
  2. В течение часа установка сама обратится к buff.systems и получит лицензию; статус сменится на «действует».

Пределы лицензии — пользователей, одновременных разработок, организаций — показаны на той же странице; они подписаны в лицензии, и настройки установки (RUNNERS, число пользователей) выше них не действуют. Пока лицензии нет, а также если она отозвана, новые задачи, прогоны, исследования и вопросы не стартуют; вход и чтение работают. Отсутствие связи с buff.systems лицензию не прекращает.

Раз в сутки установка проверяет лицензию и передаёт четыре поля: идентификатор установки, версию, число пользователей и число раннеров. Больше ничего; на стороне buff.systems фиксируется адрес, с которого пришла проверка — подробнее в условиях лицензии.

Центральный коннектор

В Community коннектор один и он встроен в установку: «Центральный коннектор» запускается внутри контейнера и сам сопрягается с вашей организацией при первом старте — в списке «Коннекторы» он появляется через минуту-две, добавлять другие нельзя. Его настройки — файл connector/connector.yaml рядом с docker-compose.yml: там перечисляются git-провайдеры (GitLab, GitHub, Gitea, Bitbucket, в том числе self-hosted) и токены к ним; токены остаются в этом файле на вашей машине. Изменили файл — перезапустите коннектор:

docker compose exec buff supervisorctl restart services:connector

Коннектор видит сеть так же, как контейнер: до внутреннего git-сервера ему нужен сетевой доступ с этой машины. Прокси для внешних моделей настраивается не здесь, а в вашем LiteLLM.

Обновление

git pull
./install.sh

Впишите в .env новый BUFF_IMAGE из обновлённого .env.example — скрипт скачает образ и перезапустит контейнеры. Миграции базы применяются при старте. Версия установки видна в админке.

Резервная копия

Все данные — в томах Docker: pgdata (базы), gitea-data (репозитории), buff-data (секреты, ключи, рабочие каталоги), buff-docker (слои внутреннего docker). Копия: остановите стек (docker compose stop), скопируйте тома любым привычным способом, запустите снова. Файл .env храните вместе с копией — в нём пароли.

Диагностика

  • docker compose ps — состояние контейнеров; docker compose logs buff — наш контейнер.
  • docker compose exec buff supervisorctl status — сервисы внутри контейнера; supervisorctl restart services:auth-worker перезапускает один.
  • Повторить первый старт безопасно: docker compose exec buff buff-bootstrap — все шаги идемпотентны.
  • Раннеры не стартуют — проверьте, что образ песочниц есть во внутреннем docker: docker compose exec buff /opt/docker-real/docker images.
  • Вопросы и ошибки — в issues репозитория; как оформлять и как участвовать — в CONTRIBUTING.md. Техническая поддержка Community Edition не предоставляется.

Что внутри

docker compose поднимает стоковые образы PostgreSQL, Gitea (внутреннее git-хранилище, пользователю не видно), NATS, Windmill (сервер) и Apache Tika рядом с одним нашим образом, где под супервизором живут все сервисы Buff и воркеры Windmill. На Linux наш образ — системный контейнер Sysbox со своим docker внутри: в нём работают раннеры и песочницы агентов, без privileged и без сокета хоста; в Docker Desktop тот же контейнер работает привилегированным. Windmill загружается с ghcr.io на условиях его авторов и в наш образ не входит; остальные сторонние компоненты — в THIRD-PARTY.md репозитория.

On this page