# 07-Infra Requirements — ORCH-017

Work Item: **ORCH-017** · Repo: `orchestrator`
Опирается на ADR-001 (Р-3). Меняется только env-карта; топология контейнеров/портов — без изменений.

## 1. Новая env-переменная
| Ключ | env | Дефолт | Назначение |
|------|-----|--------|------------|
| `plane_web_url` | `ORCH_PLANE_WEB_URL` | `""` (пусто) | Внешний **браузерный** базовый URL Plane для кликабельной ссылки на issue из Telegram. НЕ путать с внутренним `ORCH_PLANE_API_URL` (`http://localhost:8091`), который пригоден только для API. |

### Семантика резолва (ADR-001 Р-3)
```
plane_web_base = (ORCH_PLANE_WEB_URL or ORCH_PLANE_API_URL).rstrip("/")
```
- Если `plane_web_base` пуст **или** указывает на loopback (`localhost`, `127.0.0.1`,
  `0.0.0.0`, `[::1]`) — Plane-ссылка **опускается** (graceful degradation, NFR-1). Без
  заданного `ORCH_PLANE_WEB_URL` уведомление уходит только с BRD-ссылкой — это нормально.

## 2. Что требуется от Owner / INFRA
1. **Подтвердить значение `ORCH_PLANE_WEB_URL`** — внешний адрес Plane UI (тот, по которому
   Слава открывает Plane в браузере). Это единственный внешний вход, требующий решения Owner.
2. Прописать ключ в `.env` (prod-хост) и `.env.staging` (staging-песочница). В git значение
   НЕ коммитится — канон секретов/настроек (`.env.example` — образец без значения).
3. Браузерный роут issue, который будет собран:
   `{ORCH_PLANE_WEB_URL}/{ORCH_PLANE_WORKSPACE_SLUG}/projects/{plane_project_id}/issues/{plane_issue_id}/`.
   Проверить на одной задаче, что он открывается в текущей версии Plane (см. риск R-3 в
   `10-tech-risks.md`).

## 3. Переиспользуемые (без изменений) настройки
- `ORCH_GITEA_PUBLIC_URL` / `ORCH_GITEA_URL`, `ORCH_GITEA_OWNER` — для BRD-ссылки.
- `ORCH_PLANE_WORKSPACE_SLUG` — workspace в Plane-URL.

## 4. Топология / деплой
- Контейнеры, порты, сети — **без изменений**. Новый ключ читается из `.env` при старте
  (`pydantic Settings`, `env_prefix=ORCH_`).
- Деплой self (ORCH) — штатный, через обязательный `deploy-staging` (8501) перед прод-деплоем
  (`orchestrator`, 8500). Рестарт прода сверх обычного деплоя НЕ требуется.
- Документировать ключ в env-карте: `CLAUDE.md` и/или `docs/operations/INFRA.md` (в том же PR).
