Об этом проекте
Etherpad — это редактор документов для совместной работы в реальном времени, предназначенный для документов, где важны авторство и история. Он поддерживается с 2009 года небольшой командой волонтёров и выпущен под лицензией Apache License v2.
Основные возможности, описанные в README:
- Совместное редактирование в реальном времени: каждое нажатие клавиши приписывается автору, цвета авторов отображаются в тексте.
- Полная история правок сохраняется, с таймслайдером для просмотра истории документа посимвольно.
- Встроенный полный экспорт данных, так что история документа остаётся доступной оператору.
- Самостоятельное размещение: проект заявляет об отсутствии телеметрии и допродаж, а функции ИИ подключаются через плагины, указывающие на модель по выбору оператора. Документ PRIVACY.md описывает два сетевых вызова, которые можно отключить, в собственном коде Etherpad.
- Масштабируемость: проект ссылается на страницу теста масштабирования, указывающую на поддержку тысяч одновременных редакторов на один пад.
- Интернационализация: переведён на 105 языков, в основном через TranslateWiki.
- Расширяемость: платформа плагинов с сотнями плагинов, доступных через сайт плагинов, устанавливаемых из веб-интерфейса администратора или из командной строки.
- Встраиваемость: HTTP API для управления падами, пользователями и группами, с определениями OpenAPI по адресу /api/openapi.json, а также jQuery-плагин для встраивания падов на веб-сайты.
Варианты установки, описанные в README:
- Установщики одной командой для macOS/Linux/WSL (shell) и Windows (PowerShell), которые клонируют репозиторий, устанавливают зависимости и собирают фронтенд. Требуются Node.js >= 24 и git. Можно задать переменную окружения для установки и запуска одним шагом.
- Пример Docker Compose с использованием официального образа, публикуемого в Docker Hub и GitHub Container Registry, с сервисом PostgreSQL, постоянными томами для плагинов и данных var, а также переменными окружения для пароля администратора, подключения к базе данных и других настроек.
- Ручные шаги: установить pnpm, клонировать репозиторий, выполнить pnpm i, pnpm run build:etherpad, затем pnpm run prod, и открыть localhost:9001.
Конфигурация и администрирование:
- Настройки находятся в settings.json, поддерживаются альтернативные файлы настроек, переопределения учётных данных, файлы ключа API и ключа сессии, а также подстановка переменных окружения с использованием синтаксиса ${ENV_VAR} или ${ENV_VAR:default_value}.
- Настройки также можно изменять через веб-интерфейс /admin.
- README рекомендует использовать выделенную базу данных, такую как MySQL или PostgreSQL, в производстве, отмечая, что драйвер dirtyDB предназначен только для тестирования или разработки.
- Для аутентификации рекомендуется хранить хэши, а не пароли в открытом виде, и указывается на плагин ep_hash_auth.
- Предлагаемые плагины для аутентификации OpenID Connect включают ep_openid_connect, ep_guest, ep_user_displayname и ep_stable_authorid.
- Предлагаемый набор плагинов для более богатых функций редактирования включает ep_align, ep_comments_page, ep_embedded_hyperlinks2, ep_font_color, ep_headings2, ep_markdown и ep_webrtc.
- Варианты скинов можно изучить через URL skinvariantsbuilder.
Разработка и статус проекта:
- Отладка через bin/debugRun.sh и быстрый старт через bin/fastRun.sh, который пропускает обновление зависимостей.
- Библиотека Easysync, лежащая в основе поведения в реальном времени, документирована в PDF в репозитории.
- Рекомендации для участников приведены в CONTRIBUTING.md.
- В README указано, что проект активно ищет мейнтейнеров с опытом в Node.js, системах реального времени или инструментах институционального сотрудничества.
- Бейджи CI покрывают качество кода (CodeQL), бэкенд-тесты, симулированную нагрузку, ограничение скорости, Docker и тесты фронтенда/админки.
Заявленные пользователи включают Фонд Викимедиа, государственные учреждения ЕС, университеты и школы, проекты гражданских технологий и делиберативной демократии, новостные редакции и многие самостоятельно размещённые инстансы. Публичный инстанс доступен для ознакомления.
Каналы поддержки: GitHub issues, Discord-сервер и адреса электронной почты для ответственного раскрытия уязвимостей.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.