Цель руководства: за несколько минут получить проект с локальным HTTPS в деве и задеплоенный на VPS сайт. Копируйте команды как есть.
- Node.js 24+ и Docker на машине разработки;
- VPS с установленным Docker и правами на порты 80/443;
- домен (для прода) с A-записью на IP вашего VPS.
Выполните в корне проекта:
npx @netrunner714/pegas initКоманда создаёт docs/pegas.md (правила для ИИ-агентов), добавляет блок Pegas
в AGENTS.md и правит .gitignore (.pegas, .env*, !.env.example).
Контракт pegas.json инициализация не создаёт — в v3 его пишут по
схеме и эталону example.json
(разработчик или агент). Предпросмотр без записи:
npx @netrunner714/pegas init --dry-runМинимальный pegas.json (два сценария, один HTTP-сервис). Список scenarios открыт: имён может быть сколько угодно и они произвольны (dev, preview, staging…), а не только «development/production» — каждый сценарий ниже описывается явно, дефолтов нет:
Правила: все сценарио-зависимые поля — карты с ключами из scenarios (Zero Scalars);
секреты — только имена в services.<name>.secrets, значения в .env/CI.
npx pegas check # рид-онли аудит: контракт, секреты, git-гигиена# 1. Доверенный Root CA (один раз на машину)
npx pegas ca install
# 2. Dev-маршруты проекта в общем шлюзе
npx pegas connect
# 3. Инфра-контейнеры сценария
npx pegas deploy -s development
# 4. Host-сервисы (driver: "bun") — привычной командой
bun run devПроект доступен по доверенному HTTPS: https://my-app.localhost.
Освободить маршруты: npx pegas disconnect.
npx pegas deploy -s productionPegas поднимет изолированные контейнеры, дождётся readiness-проб, зарегистрирует маршруты, получит сертификаты Let's Encrypt и выполнит hot-reload без даунтайма.
- Справочник контракта — все поля и правила;
- Локальный HTTPS — детали CA и шлюза;
- Архитектура — почему так устроено.
{ "$schema": "https://pegas.netrunner714.ru/schemas/pegas.json", "projectName": "my-app", "scenarios": ["development", "production"], "gateway": { "development": { "httpPort": 80, "httpsPort": 443 }, "production": { "httpPort": 80, "httpsPort": 443, "acmeEmail": "admin@example.com" } }, "services": { "web": { "runtime": { "development": { "driver": "docker" }, "production": { "driver": "docker" } }, "build": { "development": { "context": "." }, "production": { "context": "." } }, "port": { "development": 3000, "production": 3000 }, "domains": { "development": ["my-app.localhost"], "production": ["example.com"] }, "secrets": [] } } }