Sobre o projeto

Etherpad é um editor de documentos colaborativo em tempo real, projetado para documentos onde autoria e histórico importam. É mantido desde 2009 por uma pequena equipe de voluntários e é distribuído sob a Licença Apache v2. Principais recursos descritos no README: - Edição colaborativa em tempo real com cada tecla atribuída ao seu autor e cores de autor exibidas inline. - Histórico completo de revisões preservado, com um timeslider para percorrer o histórico de um documento caractere por caractere. - Exportação completa de dados integrada, para que o histórico do documento permaneça acessível ao operador. - Operação auto-hospedada: o projeto afirma que não há telemetria nem upsells, e que a funcionalidade de IA é opcional por meio de plugins apontados para um modelo escolhido pelo operador. Um documento PRIVACY.md descreve as duas chamadas de rede opt-out feitas pelo próprio código do Etherpad. - Alegação de escalabilidade: o projeto vincula a uma página de teste de escala indicando suporte para milhares de editores simultâneos por pad. - Internacionalização: traduzido em 105 idiomas, principalmente via TranslateWiki. - Extensibilidade: um framework de plugins com centenas de plugins disponíveis através de um site de plugins, instaláveis pela interface web de administração ou pela linha de comando. - Capacidade de incorporação: uma API HTTP para gerenciar pads, usuários e grupos, com definições OpenAPI expostas em /api/openapi.json, além de um plugin jQuery para incorporar pads em sites. Opções de instalação cobertas no README: - Instaladores de uma linha para macOS/Linux/WSL (shell) e Windows (PowerShell), que clonam o repositório, instalam dependências e compilam o frontend. Node.js >= 24 e git são necessários. Uma variável de ambiente pode ser definida para instalar e iniciar em uma única etapa. - Exemplo de Docker Compose usando a imagem oficial publicada no Docker Hub e no GitHub Container Registry, com um serviço PostgreSQL, volumes persistentes para plugins e dados var, e variáveis de ambiente para senha de administrador, conexão com banco de dados e outras configurações. - Etapas manuais: instale o pnpm, clone o repositório, execute pnpm i, pnpm run build:etherpad, depois pnpm run prod, e visite localhost:9001. Configuração e administração: - As configurações ficam em settings.json, com suporte a arquivos de configuração alternativos, substituição de credenciais, arquivos de chave de API e chave de sessão, e substituição de variáveis de ambiente usando a sintaxe ${ENV_VAR} ou ${ENV_VAR:default_value}. - As configurações também podem ser alteradas pela interface web /admin. - O README recomenda usar um banco de dados dedicado, como MySQL ou PostgreSQL, em produção, observando que o driver dirtyDB é destinado apenas para testes ou desenvolvimento. - Para autenticação, recomenda armazenar hashes em vez de senhas em texto puro, e aponta para o plugin ep_hash_auth. - Plugins sugeridos para autenticação OpenID Connect incluem ep_openid_connect, ep_guest, ep_user_displayname e ep_stable_authorid. - Um conjunto de plugins sugerido para recursos de edição mais ricos inclui ep_align, ep_comments_page, ep_embedded_hyperlinks2, ep_font_color, ep_headings2, ep_markdown e ep_webrtc. - Variantes de skin podem ser exploradas através de uma URL skinvariantsbuilder. Desenvolvimento e status do projeto: - Depuração via bin/debugRun.sh e um script de início rápido bin/fastRun.sh que pula atualizações de dependências. - A biblioteca Easysync que sustenta o comportamento em tempo real é documentada em um PDF no repositório. - Diretrizes para contribuidores são fornecidas em CONTRIBUTING.md. - O README afirma que o projeto está ativamente procurando mantenedores com experiência em Node.js, sistemas em tempo real ou ferramentas de colaboração institucional. - Os selos de CI cobrem qualidade de código (CodeQL), testes de backend, carga simulada, limitação de taxa, Docker e testes de frontend/admin. Usuários declarados incluem a Wikimedia Foundation, instituições do setor público na UE, universidades e escolas, projetos de tecnologia cívica e democracia deliberativa, redações e muitas instâncias auto-hospedadas. Uma instância pública está disponível para experimentar o software. Os canais de suporte são issues do GitHub, um servidor Discord e contatos por e-mail para relato de vulnerabilidades.