Sobre el proyecto

Etherpad es un editor colaborativo de documentos en tiempo real diseñado para documentos donde la autoría y el historial importan. Ha sido mantenido desde 2009 por un pequeño equipo de voluntarios y se publica bajo la Licencia Apache v2. Capacidades principales descritas en el README: - Edición colaborativa en tiempo real con cada pulsación atribuida a su autor y colores de autor mostrados en línea. - Historial de revisiones completo conservado, con una línea de tiempo (timeslider) para recorrer el historial de un documento carácter por carácter. - Exportación completa de datos integrada, de modo que el historial del documento sigue siendo accesible para el operador. - Operación autoalojada: el proyecto declara que no hay telemetría ni ventas adicionales, y que la funcionalidad de IA es opcional mediante plugins que apuntan a un modelo elegido por el operador. Un documento PRIVACY.md describe las dos llamadas de red de exclusión voluntaria que realiza el código propio de Etherpad. - Afirmación de escalabilidad: el proyecto enlaza a una página de prueba de escala que indica soporte para miles de editores simultáneos por pad. - Internacionalización: traducido a 105 idiomas, principalmente a través de TranslateWiki. - Extensibilidad: un marco de plugins con cientos de plugins disponibles a través de un sitio de plugins, instalables desde la interfaz web de administración o desde la línea de comandos. - Capacidad de incrustación: una API HTTP para gestionar pads, usuarios y grupos, con definiciones OpenAPI expuestas en /api/openapi.json, además de un plugin de jQuery para incrustar pads en sitios web. Opciones de instalación cubiertas en el README: - Instaladores de una línea para macOS/Linux/WSL (shell) y Windows (PowerShell), que clonan el repositorio, instalan dependencias y compilan el frontend. Se requieren Node.js >= 24 y git. Se puede establecer una variable de entorno para instalar e iniciar en un solo paso. - Ejemplo de Docker Compose usando la imagen oficial publicada en Docker Hub y GitHub Container Registry, con un servicio PostgreSQL, volúmenes persistentes para plugins y datos de var, y variables de entorno para la contraseña de administrador, la conexión a la base de datos y otros ajustes. - Pasos manuales: instalar pnpm, clonar el repositorio, ejecutar pnpm i, pnpm run build:etherpad, y luego pnpm run prod, y visitar localhost:9001. Configuración y administración: - Los ajustes se encuentran en settings.json, con soporte para archivos de ajustes alternativos, anulaciones de credenciales, archivos de clave de API y de clave de sesión, y sustitución de variables de entorno usando la sintaxis ${ENV_VAR} o ${ENV_VAR:default_value}. - Los ajustes también se pueden cambiar a través de la interfaz web /admin. - El README recomienda usar una base de datos dedicada como MySQL o PostgreSQL en producción, señalando que el controlador dirtyDB está pensado solo para pruebas o desarrollo. - Para la autenticación, recomienda almacenar hashes en lugar de contraseñas en texto plano, y señala el plugin ep_hash_auth. - Los plugins sugeridos para autenticación OpenID Connect incluyen ep_openid_connect, ep_guest, ep_user_displayname y ep_stable_authorid. - Un conjunto de plugins sugerido para funciones de edición más ricas incluye ep_align, ep_comments_page, ep_embedded_hyperlinks2, ep_font_color, ep_headings2, ep_markdown y ep_webrtc. - Las variantes de piel (skin) se pueden explorar a través de una URL de skinvariantsbuilder. Desarrollo y estado del proyecto: - Depuración mediante bin/debugRun.sh y un script de inicio rápido bin/fastRun.sh que omite las actualizaciones de dependencias. - La librería Easysync que sustenta el comportamiento en tiempo real está documentada en un PDF en el repositorio. - Las pautas para contribuyentes se proporcionan en CONTRIBUTING.md. - El README indica que el proyecto busca activamente mantenedores con experiencia en Node.js, sistemas en tiempo real o herramientas de colaboración institucional. - Las insignias de CI cubren calidad de código (CodeQL), pruebas de backend, carga simulada, limitación de velocidad, Docker y pruebas de frontend/administración. Entre los usuarios declarados se incluyen la Fundación Wikimedia, instituciones del sector público en la UE, universidades y escuelas, proyectos de tecnología cívica y democracia deliberativa, redacciones y muchas instancias autoalojadas. Hay una instancia pública disponible para probar el software. Los canales de soporte son problemas de GitHub, un servidor de Discord y contactos de correo electrónico para la divulgación responsable de vulnerabilidades.