# Ручная установка

> Разверните PentAGI вручную с помощью Docker Compose — создайте рабочий каталог, заполните файл .env, добавьте provider LLM и запустите стек.

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

## [1. Создайте рабочий каталог](https://pentagi.com/ru/docs/getting-started/manual-installation/#1-create-a-working-directory)

```bash
mkdir -p ~/pentagi && cd ~/pentagi
```

## [2. Загрузите файл окружения](https://pentagi.com/ru/docs/getting-started/manual-installation/#2-download-the-environment-file)

```bash
test -f .env || curl -fo .env.new https://raw.githubusercontent.com/vxcontrol/pentagi/main/.env.example
test -f .env.new && openssl rand -hex 32 | xargs -I VALUE sed -E -i.bak 's/^COOKIE_SIGNING_SALT=salt( .*)?$/COOKIE_SIGNING_SALT=VALUE/' .env.new
test -f .env.new && openssl rand -hex 16 | xargs -I VALUE sed -E -i.bak 's/^PENTAGI_POSTGRES_PASSWORD=postgres( .*)?$/PENTAGI_POSTGRES_PASSWORD=VALUE/' .env.new
test -f .env || mv .env.new .env
```

Файл compose подключает три файла конфигурации [provider](https://pentagi.com/ru/docs/glossary/#provider), поэтому создайте их — пустые файлы тоже подойдут:

```bash
touch example.custom.provider.yml example.ollama.provider.yml example.bedrock.provider.yml
```

Если вы планируете использовать пользовательскую OpenAI-совместимую конечную точку или Ollama, загрузите примеры конфигураций вместо пустых файлов и укажите `LLM_SERVER_CONFIG_PATH` или `OLLAMA_SERVER_CONFIG_PATH` в `.env` на `/opt/pentagi/conf/custom.provider.yml` или `/opt/pentagi/conf/ollama.provider.yml`. В примере для пользовательской настройки указаны модели OpenAI, среди которых `o3-mini`, которую OpenAI выведет из эксплуатации 23 октября 2026 года — установите для каждого [agent type](https://pentagi.com/ru/docs/glossary/#agent-type) `model` одну из моделей, которые обслуживает ваша конечная точка:

```bash
curl -o example.custom.provider.yml https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/configs/custom-openai.provider.yml
curl -o example.ollama.provider.yml https://raw.githubusercontent.com/vxcontrol/pentagi/main/examples/configs/ollama-llama318b.provider.yml
```

## [3. Добавьте хотя бы одного provider LLM](https://pentagi.com/ru/docs/getting-started/manual-installation/#3-add-at-least-one-llm-provider)

Отредактируйте `.env` и укажите ключ как минимум для одного provider:

```bash
OPEN_AI_KEY=your_openai_key
ANTHROPIC_API_KEY=your_anthropic_key
GEMINI_API_KEY=your_gemini_key
```

Другие providers — AWS Bedrock, Ollama, DeepSeek, GLM, Kimi, Qwen, MiniMax, Mistral, xAI и пользовательские конечные точки — описаны в разделе [Providers LLM](https://pentagi.com/ru/docs/configuration/llm-providers/). [Search engines](https://pentagi.com/ru/docs/glossary/#search-engine) необязательны; для DuckDuckGo и Sploitus ключ не требуется:

```bash
DUCKDUCKGO_ENABLED=true
SPLOITUS_ENABLED=true
TAVILY_API_KEY=your_tavily_key
```

## [4. Запустите стек](https://pentagi.com/ru/docs/getting-started/manual-installation/#4-start-the-stack)

```bash
curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/main/docker-compose.yml
test -f .env && docker compose up -d
```

Веб-интерфейс доступен по адресу `https://localhost:8443`. Войдите в систему, используя `admin@pentagi.com` / `admin`, и смените пароль.

Веб-интерфейс и другие службы привязаны к localhost, но [sandbox](https://pentagi.com/ru/docs/glossary/#sandbox) каждого [flow](https://pentagi.com/ru/docs/glossary/#flow) публикует два порта обратного вызова, по умолчанию от `28000` до `29999`, на всех интерфейсах Docker-хоста, и ufw их не фильтрует. На хосте, доступном другим, сначала ограничьте этот диапазон — см. [Сетевая доступность](https://pentagi.com/ru/docs/configuration/security/#network-exposure). Чтобы позже обновить установку, следуйте инструкциям [Обновление](https://pentagi.com/ru/docs/deployment/upgrade/).

## [Дополнительные стеки](https://pentagi.com/ru/docs/getting-started/manual-installation/#optional-stacks)

Каждый дополнительный сервис поставляется в виде отдельного compose-файла, который накладывается поверх базового:

| Стек                                               | Compose-файл                                                                                       | Что добавляет                                         |
| -------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| Мониторинг LLM                                     | [`docker-compose-langfuse.yml`](https://pentagi.com/ru/docs/configuration/observability/#langfuse)                       | Langfuse с ClickHouse, Redis и MinIO                  |
| [Knowledge graph](https://pentagi.com/ru/docs/glossary/#knowledge-graph) | [`docker-compose-graphiti.yml`](https://pentagi.com/ru/docs/concepts/memory/#knowledge-graph-optional)                   | Graphiti и Neo4j                                      |
| Системный мониторинг                               | [`docker-compose-observability.yml`](https://pentagi.com/ru/docs/configuration/observability/#grafana-and-opentelemetry) | Grafana, OpenTelemetry, VictoriaMetrics, Jaeger, Loki |

> [!WARNING]
> В рабочей среде и в любом окружении, где выполняется ненадёжный код, изолируйте контейнеры [tool](https://pentagi.com/ru/docs/glossary/#tool) на выделенном [worker node](https://pentagi.com/ru/docs/deployment/worker-node/).