dev.kiselevgroup.com
Уверен?
Из проекта
—
Имя копии (латиница, цифры, дефис; 2-40 симв)
Будет создан /data/projects/… без .env,
node_modules, data/. Владелец — вы.
Кто может смотреть
Отметьте сотрудников, которым открыть доступ:
Ссылка для браузера
Ссылка для Битрикс24 (обработчик «Серверного» приложения)
—
В Б24: «Локальное приложение» → Серверное → «Путь обработчика» = эта ссылка.
Имя шаблона (только строчные буквы, цифры, дефис)
Костя активно работает —
и скоро вы все увидите
Wiki — в разработке
/opt/dev-portal/ ← Dev Portal (этот проект)
├── panel/
│ ├── server.js ← API бэкенд (порт 3010)
│ └── public/ ← HTML + CSS + JS панели
├── templates/
│ ├── _base/ ← базовый шаблон (минимальная заготовка)
│ └── {template-name}/ ← шаблоны публикуются через publish-template.sh
└── scripts/
├── new-project.sh ← создание проекта из шаблона
├── publish-template.sh ← публикация проекта как шаблона
└── update-handoff.sh ← обновление Handoff (git + docker)
/data/
├── projects/ ← проекты сотрудников (основная зона)
│ ├── kg-test-hand/ ← пример: проект из шаблона
│ ├── test2/ ← пример: тестовый проект
│ ├── zorintest-html/ ← пример: создан через + Пустой
│ └── {company}-{app}/ ← формат имени при + Создать
├── work/ ← scratch-зона для загрузок (+ Залить)
│ └── {имя}/ ← временная рабочая папка
├── handoff-ui/ ← статика UI Handoff (nginx раздаёт напрямую)
└── config/auth/.htpasswd ← логины и пароли сотрудников
/opt/aif-handoff/ ← Handoff (не редактировать напрямую)
├── docker-compose.production.yml
└── .env ← переменные окружения и ключи
new-project.sh копирует его в /data/projects/{company}-{app}/ и заменяет переменные
/data/projects/{name}/ — сразу открывается VS Code
/data/work/{name}/ — открывается VS Code
new-project.sh, шаблон выбран заранее — результат в /data/projects/
Handoff работает внутри Docker-контейнеров. Папка /data/projects/ монтируется в контейнеры как /home/www/. Привязка к проекту происходит автоматически по совпадению имени папки.
/data/projects/kg-crm/
↔
/home/www/kg-crm/
внутри Docker
Если в Handoff есть проект с таким же именем — кнопка Handoff на карточке ведёт прямо в него. Иначе открывается общий дашборд Handoff.
Агенты Claude выполняют задачи в папке проекта: читают и пишут файлы, запускают команды через Docker.
/panel/Dev Portal Panel → :3010
публично
/handoff/Handoff UI → /data/handoff-ui/
сессия
/api/Handoff API → :3009
сессия
/code/VS Code (code-server) → :8181
сессия
/wsWebSocket Handoff → :3009
сессия
/healthHealth check → :3009
публично
Авторизация — через сессию панели. nginx делает внутренний запрос к /api/me перед каждым закрытым маршрутом. При 401 — редирект на /panel/.
Сервер находится в России — прямой доступ к Claude API заблокирован. Трафик идёт через SSH-туннель на VPS в Амстердаме.
Сервер :1080
→
VPS Amsterdam
SOCKS5 ssh-tunnel.service
Сервер :8080
→
:1080 SOCKS5
HTTP proxy (pproxy)
С 2026-04-29: outbound HTTPS идёт через внешний HTTP-прокси. URL и креды — в /data/config/env/proxy.env (chmod 600). Сервисы panel и code-server подключают этот файл через systemd EnvironmentFile=. В терминале работает просто claude ... — переменная уже в ~/.bashrc у root. Старая схема через SSH-туннель Amsterdam (HTTPS_PROXY=http://127.0.0.1:8080) — fallback, сервисы остановлены.
update-handoff.sh: git pull → docker build → docker up → копирует статику в /data/handoff-ui/ → обновляет Claude credentials в контейнерах
/data/config/auth/.htpasswd. Добавить / удалить / сменить пароль через интерфейс Настроек или командой htpasswd -b
← Выберите файл