mcpField
W
web-publish

web-publish

github.com/nikolay-shirokovCloud & DevOps74152 installsUpdated today
Repository

About web-publish

web-publish is a skill for publishing 1C information bases through Apache HTTP Server. It configures publication files and Apache, and supports repeat runs that update an existing publication.

Key features

  1. 01Generate default.vrd
  2. 02Configure httpd.conf
  3. 03Start Apache HTTP Server
  4. 04Publish file or server databases
  5. 05Set publication name and port

Use cases

  1. 01Make a 1C database available on the web
  2. 02Republish a database with another user
  3. 03Create parallel publications for testing access rights

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/nikolay-shirokov/cc-1c-skills --skill web-publish

After installing, type/web-publishin Claude Code to confirm it loaded.

Bundled filesscripts/web-publish.ps1scripts/web-publish.py

Details

From the project README

/web-publish — Публикация 1С через Apache

Генерирует default.vrd, настраивает httpd.conf и запускает Apache HTTP Server для веб-доступа к информационной базе. При необходимости скачивает portable Apache. Идемпотентный — повторный вызов обновляет конфигурацию.

Usage

/web-publish [database]
/web-publish dev
/web-publish dev --manual
/web-publish dev --port 9090

Параметры подключения

Прочитай .v8-project.json из корня проекта и разреши базу:

  1. Если пользователь указал параметры подключения (путь, сервер) — используй напрямую
  2. Если указал базу по имени — ищи по id / alias / name в .v8-project.json
  3. Если не указал — сопоставь текущую ветку Git с databases[].branches
  4. Если ветка не совпала — используй default

ОБЯЗАТЕЛЬНО передавай все найденные параметры:

  • -V8Path — v8path найденной записи базы, иначе корневой v8path. Не задан ни там, ни там — не передавай, но версия платформы тогда выберется автоматически и может оказаться не той
  • -UserName — из поля user найденной записи базы (если есть)
  • -Password — из поля password найденной записи базы (если есть)
  • -ApachePath — из webPath в .v8-project.json (если есть)

Если файла .v8-project.json нет — предложи /db-list add.

Команда

powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" <параметры>
Параметры скрипта
ПараметрОбязательныйОписание
-V8Path <путь>нетКаталог bin платформы (для wsap24.dll)
-InfoBasePath <путь>*Файловая база
-InfoBaseServer <сервер>*Сервер 1С (для серверной базы)
-InfoBaseRef <имя>*Имя базы на сервере
-UserName <имя>нетИмя пользователя
-Password <пароль>нетПароль
-AppName <имя>нетИмя публикации (по умолчанию из имени каталога базы)
-ApachePath <путь>нетКорень Apache (по умолчанию tools/apache24)
-Port <порт>нетПорт (по умолчанию 8081)
-ManualнетНе скачивать — только проверить и дать инструкцию

* — нужен либо -InfoBasePath, либо пара -InfoBaseServer + -InfoBaseRef

Несколько пользователей одной базы

Повторный вызов с тем же AppName заменяет публикацию (идемпотентность). Это используется для:

  • смены пользователя: «опубликуй под Ивановым» → тот же AppName, новый -UserName
  • перезапуска после /web-stop: тот же вызов поднимает Apache обратно

Если пользователь просит параллельную публикацию под другим пользователем (для тестирования разных наборов прав), добавь суффикс к AppName:

  • база bpdemo, пользователь Иванов → -AppName bpdemo-ivanov
  • база bpdemo, пользователь Admin → -AppName bpdemo-admin (или просто bpdemo)

Ключевые слова: «ещё одну публикацию», «дополнительно», «параллельно», «под другим пользователем не убирая текущую».

После выполнения

  1. Сообщи URL-ы:
    • Веб-клиент: http://localhost:{Port}/{AppName}
    • OData: http://localhost:{Port}/{AppName}/odata/standard.odata
    • HTTP-сервисы: http://localhost:{Port}/{AppName}/hs/<RootUrl>/...
    • Web-сервисы: http://localhost:{Port}/{AppName}/ws/<Имя>?wsdl
  2. Предложи открыть в браузере
  3. Если нужно протестировать сервис — помоги составить запрос
  4. Если база не зарегистрирована — предложи /db-list add

Сервисы расширений публикуются наравне с сервисами конфигурации. Если сервис расширения всё же отдаёт 404 (HTTP) или 500 «Сервис не найден» (SOAP) — расширение не применено к базе данных: /db-update -Extension <имя>.

Примеры

# Файловая база
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" -InfoBasePath "C:\Bases\MyDB" -UserName "Admin"

# С явным именем публикации и портом
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" -InfoBasePath "C:\Bases\MyDB" -AppName "mydb" -Port 9090

# Серверная база
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" -InfoBaseServer "srv01" -InfoBaseRef "MyDB" -UserName "Admin" -Password "secret"

# Ручной режим (только инструкция)
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/web-publish.ps1" -InfoBasePath "C:\Bases\MyDB" -Manual

Comments

Markdown supported