Этот перевод был создан с помощью машинного обучения и может быть не на 100% точным. Просмотреть английскую версию

Установка пользовательских плагинов

Установка, обновление и разработка плагинов роутера

Фреймворк плагинов I2P позволяет расширять функциональность router без изменения базовой установки. Доступные плагины охватывают почту, блоги, IRC, хранилище данных, вики, инструменты мониторинга и многое другое.

Примечание по безопасности: Плагины работают с теми же правами доступа, что и роутер. Относитесь к загрузкам от сторонних разработчиков так же, как вы относитесь к любому подписанному обновлению программного обеспечения — проверяйте источник перед установкой.

1. Установка плагина

  1. Скопируйте URL для загрузки плагина со страницы проекта.
    Copy plugin URL
  2. Откройте страницу конфигурации плагинов в консоли router.
    Open plugin configuration
  3. Вставьте URL в поле установки и нажмите Install Plugin.
    Install plugin

Роутер загружает подписанный архив, проверяет подпись и активирует плагин немедленно. Большинство плагинов добавляют ссылки в консоль или фоновые сервисы без необходимости перезапуска роутера.

2. Почему плагины важны

  • Установка в один клик для конечных пользователей — без ручного редактирования wrapper.config или clients.config
  • Сохраняет размер основного пакета i2update.su3 небольшим, предоставляя крупные или нишевые функции по требованию
  • Опциональные JVM для каждого плагина обеспечивают изоляцию процессов при необходимости
  • Автоматическая проверка совместимости с версией роутера, средой выполнения Java и Jetty
  • Механизм обновления аналогичен роутеру: подписанные пакеты и инкрементальные загрузки
  • Поддерживаются интеграции с консолью, языковые пакеты, темы UI и приложения не на Java (через скрипты)
  • Позволяет создавать курируемые каталоги «магазинов приложений», такие как plugins.i2p

3. Управление установленными плагинами

Используйте элементы управления на странице плагинов маршрутизатора I2P , чтобы:

  • Проверка обновлений для отдельного плагина
  • Проверка всех плагинов одновременно (запускается автоматически после обновления роутера)
  • Установка всех доступных обновлений одним кликом
    Update plugins
  • Включение/отключение автозапуска для плагинов, регистрирующих сервисы
  • Чистое удаление плагинов

4. Создайте свой собственный плагин

  1. Изучите спецификацию плагинов для понимания требований к упаковке, подписи и метаданным.
  2. Используйте makeplugin.sh для упаковки существующего бинарного файла или веб-приложения в устанавливаемый архив.
  3. Опубликуйте URL-адреса как для установки, так и для обновления, чтобы роутер мог различать первоначальную установку и инкрементные обновления.
  4. Разместите контрольные суммы и ключи подписи на видном месте на странице вашего проекта, чтобы помочь пользователям проверить подлинность.

Ищете примеры? Просмотрите исходный код плагинов сообщества на plugins.i2p (например, образец snowman).

5. Известные ограничения

  • Обновление плагина, который поставляется в виде обычных JAR-файлов, может потребовать перезапуска роутера, так как загрузчик классов Java кэширует классы.
  • Консоль может отображать кнопку Stop, даже если у плагина нет активного процесса.
  • Плагины, запущенные в отдельной JVM, создают директорию logs/ в текущем рабочем каталоге.
  • При первом появлении ключа подписанта он автоматически считается доверенным; централизованного центра подписи не существует.
  • Windows иногда оставляет пустые директории после удаления плагина.
  • Установка плагина, предназначенного только для Java 6, на JVM Java 5 выдаёт ошибку «plugin is corrupt» из-за сжатия Pack200.
  • Плагины тем и переводов остаются в основном непротестированными.
  • Флаги автозапуска не всегда сохраняются для неуправляемых плагинов.

6. Требования и рекомендации

  • Поддержка плагинов доступна в I2P версии 0.7.12 и новее.
  • Поддерживайте свой router и плагины в актуальном состоянии, чтобы получать исправления безопасности.
  • Включайте краткие примечания к выпуску, чтобы пользователи понимали, какие изменения произошли между версиями.
  • По возможности размещайте архивы плагинов по HTTPS внутри I2P, чтобы минимизировать раскрытие метаданных в открытой сети.

7. Дополнительные материалы

Was this page helpful?