Como Instalar Etherpad em Servidor Próprio para Colaboração

11 min de leitura Comunicação Interna Self-Hosted
Como Instalar Etherpad em Servidor Próprio para Colaboração

O que é Etherpad e por que escolher uma solução self-hosted?

No cenário atual de desenvolvimento ágil e trabalho remoto, a colaboração em tempo real tornou-se um pilar fundamental para equipes de tecnologia. Ferramentas proprietosas oferecem conveniência, mas muitas vezes impõem riscos à soberania dos dados, limitações de personalização e dependência de conectividade externa. O Etherpad surge como uma alternativa robusta, leve e open source para quem busca manter o controle total sobre suas informações.

O Etherpad é um editor de texto online em tempo real (Rich Text Editor) que permite a criação conjunta de documentos, similar ao Google Docs ou Microsoft 365, mas com a diferença crucial de rodar em sua própria infraestrutura. Diferente de uma wiki estática como o MediaWiki, o Etherpad foca na edição simultânea e fluida, mantendo um histórico completo de todas as alterações feitas por cada usuário. Isso o torna ideal para:

  • Rodadas de brainstorming técnico.
  • Redação colaborativa de documentação (RFCs, manuais).
  • Sessões de pair programming ou revisão de código em tempo real.
  • Atas de reunião com participação ativa dos membros.

Ao optar pelo etherpad self-hosted, você garante que seus dados nunca saem do seu datacenter, evita taxas de assinatura recorrentes e tem a liberdade total para integrar o Etherpad com suas ferramentas existentes via API REST. Neste tutorial, vamos guiar você através da instalação completa em um ambiente Linux (Ubuntu/Debian), configurando segurança, banco de dados e serviço de alta disponibilidade.

Pré-requisitos do Ambiente

Antes de iniciar a instalação, certifique-se de que seu servidor atenda aos seguintes requisitos mínimos para garantir uma experiência fluida:

  • Sistema Operacional: Ubuntu 20.04 LTS/22.04 LTS ou Debian 11/12.
  • Processador: Mínimo de 1 vCPU (recomendado 2+ para múltiplos usuários simultâneos).
  • Memória RAM: Mínimo de 512MB (recomendado 1GB ou mais).
  • Disco: Espaço suficiente para o banco de dados e uploads de arquivos.
  • Acesso: Acesso root ou usuário com privilégios sudo.

Além disso, ter um domínio apontado para o IP do seu servidor é altamente recomendado para facilitar a configuração de certificados SSL/TLS e a experiência do usuário final.

Passo 1: Preparação do Sistema Operacional

O primeiro passo consiste em atualizar os pacotes do sistema e instalar as dependências básicas necessárias para compilar e rodar o Node.js, que é a engine por trás do Etherpad.

  1. Conecte-se ao seu servidor via SSH:
ssh root@seu_ip_servidor
  1. Atualize a lista de pacotes e realize o upgrade do sistema:
apt update && apt upgrade -y
  1. Instale as dependências essenciais. Precisamos de compiladores C/C++, gerenciador de versões do Node (nvm ou nodejs direto), git e ferramentas de segurança:
apt install -y build-essential git curl wget sqlite3 nginx openssl

Em seguida, instalaremos o Node.js. A versão recomendada para a maioria das instalações estáveis do Etherpad é a LTS (Long Term Support). Para simplificar e garantir flexibilidade futura, utilizaremos o nvm (Node Version Manager), mas a instalação direta via apt também é válida em ambientes de produção simples.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

Após carregar o nvm, instale a versão LTS do Node.js:

nvm install --lts

Verifique as versões instaladas para garantir que tudo está correto:

node -v
npm -v

Passo 2: Configuração do Banco de Dados

O Etherpad suporta vários bancos de dados, mas o SQLite é a escolha mais simples para instalações pequenas e médias, enquanto o PostgreSQL ou MySQL são recomendados para ambientes corporativos com alta concorrência. Para este tutorial, utilizaremos o SQLite pela facilidade de configuração sem necessidade de gerenciar serviços adicionais complexos.

Crie um diretório dedicado para os dados do Etherpad e defina as permissões corretas:

mkdir -p /opt/etherpad
chown -R $USER:$USER /opt/etherpad

Passo 3: Instalação do Etherpad

Agora, vamos baixar o código-fonte do Etherpad. A melhor prática é clonar o repositório oficial e instalar as dependências do projeto.

  1. Navegue até o diretório onde deseja instalar:
cd /opt/etherpad
  1. Clone o repositório oficial:
git clone https://github.com/ether/etherpad-lite.git .

Observe o ponto final no comando clone, isso garante que os arquivos sejam baixados diretamente na pasta atual.

  1. Instale as dependências do Node.js necessárias para o funcionamento do Etherpad:
./node/bin/node bin/installDeps.sh

Este processo pode levar alguns minutos dependendo da velocidade da sua conexão e da potência do servidor. Ao final, você verá uma mensagem indicando sucesso na instalação.

Passo 4: Configuração de Segurança e Parâmetros

O Etherpad possui um arquivo de configuração principal chamado settings.json. É nele que definimos a senha de administrador, o título do projeto, as permissões de acesso e a conexão com o banco de dados.

  1. Copie o modelo de configuração para criar uma nova instância:
cp settings.json.template settings.json
  1. Abra o arquivo para edição:
nano settings.json

Realize as seguintes alterações críticas no arquivo JSON:

  • dbType: Certifique-se de que está configurado para "sqlite".
  • dbSettings: Verifique o caminho do banco de dados. Por padrão, ele cria um arquivo var/sqlite.db. Garanta que o usuário que rodará o serviço tenha permissão de escrita nesse diretório.
  • password: Defina uma senha forte para o administrador inicial. Nota: Esta senha é usada apenas para o login inicial na interface administrativa antes da criação do primeiro usuário.
  • dbStorage: Se estiver usando SQLite, deixe como "sqlite".

Um exemplo de bloco de configuração relevante:

"dbType" : "sqlite",
"dbsettings" : {
    "filename" : "var/sqlite.db"
},
...
"password" : "SUA_SENHA_FORTE_AQUI",

Salve o arquivo (Ctrl+O, Enter) e saia do editor (Ctrl+X).

Passo 5: Criando um Serviço Systemd para Alta Disponibilidade

Não é recomendável rodar o Etherpad manualmente via terminal, pois ele parará se a sessão SSH for encerrada. Vamos criar um serviço systemd para gerenciar o processo como um daemon.

  1. Crie um novo arquivo de serviço:
nano /etc/systemd/system/etherpad.service
  1. Cole a seguinte configuração, ajustando os caminhos conforme sua instalação:
[Unit]
Description=Etherpad Lite, the collaborative editor.
After=syslog.target network-online.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/etherpad
ExecStart=/opt/etherpad/node/bin/node /opt/etherpad/src/node/server.js
Restart=always
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

Dica de Segurança: Em produção, é ideal criar um usuário específico (ex: etherpad) e rodar o serviço com ele, em vez de usar root. Para isso, crie o usuário, altere a propriedade dos arquivos do etherpad para ele e atualize o campo User no arquivo de serviço.

  1. Crie o usuário dedicado (opcional mas recomendado):
adduser --disabled-login etherpad
chown -R etherpad:etherpad /opt/etherpad

E atualize o arquivo de serviço com User=etherpad.

  1. Crie a pasta var e dê permissões:
mkdir -p /opt/etherpad/var
chown etherpad:etherpad /opt/etherpad/var
  1. Habilite e inicie o serviço:
systemctl daemon-reload
systemctl enable etherpad
systemctl start etherpad

Verifique se o serviço está rodando corretamente:

systemctl status etherpad

Passo 6: Configuração do Nginx como Reverse Proxy e SSL

Para acessar o Etherpad de forma segura (HTTPS) e bonita (sem números de porta), utilizaremos o Nginx. Além disso, habilitaremos o suporte a certificados Let's Encrypt para criptografia.

  1. Crie um arquivo de configuração no Nginx:
nano /etc/nginx/sites-available/etherpad
  1. Insira a seguinte configuração, substituindo seu-dominio.com pelo seu domínio real:
server {
    listen 80;
    server_name seu-dominio.com www.seu-dominio.com;

    location / {
        proxy_pass http://127.0.0.1:9001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    }
}

# Redirecionar HTTP para HTTPS (após obter o certificado)
server {
    listen 443 ssl;
    server_name seu-dominio.com www.seu-dominio.com;

    ssl_certificate /etc/letsencrypt/live/seu-dominio.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/seu-dominio.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:9001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  1. Crie um link simbólico para ativar o site:
ln -s /etc/nginx/sites-available/etherpad /etc/nginx/sites-enabled/
  1. Teste a configuração do Nginx e reinicie:
nginx -t
systemctl restart nginx

Instalando Certificado SSL com Let's Encrypt

Se ainda não tiver o certificado, instale o Certbot:

apt install certbot python3-certbot-nginx -y

E execute a geração do certificado:

certbot --nginx -d seu-dominio.com -d www.seu-dominio.com

O Certbot irá modificar automaticamente sua configuração do Nginx para incluir os certificados SSL e redirecionar o tráfego HTTP para HTTPS.

Passo 7: Acesso e Primeiros Passos na Interface

Agora que tudo está configurado, abra seu navegador e acesse https://seu-dominio.com. Você verá a tela de boas-vindas do Etherpad.

  1. Clique em "Create New Pad".
  2. Dê um nome ao seu documento colaborativo.
  3. Você será redirecionado para a área de edição. Abra outra aba ou outro navegador (ou dispositivo móvel) e acesse o mesmo pad usando as credenciais de administrador que definiu no settings.json.

Ao fazer isso, você verá o cursor de ambos os usuários se movendo em tempo real, provando que a colaboração está ativa. Você pode ver o histórico de alterações clicando no ícone de relógio ou na aba "History" na barra superior.

Manutenção e Boas Práticas

Para manter seu etherpad servidor colaboração seguro e performático, considere as seguintes práticas:

  • Backups: Configure um script diário para backup do arquivo var/sqlite.db e do arquivo settings.json. Exemplo de script simples:
tar -czvf /backup/etherpad-backup-$(date +%F).tar.gz /opt/etherpad/var/sqlite.db /opt/etherpad/settings.json
  • Atualizações: Monitore o repositório oficial do Etherpad no GitHub para atualizações de segurança. Sempre faça backup antes de atualizar.
  • Plugin de Backup Automático: O Etherpad possui plugins que permitem salvar automaticamente os pads em arquivos locais ou enviar cópias por e-mail. Habilite-os no settings.json sob a seção "plugins".
  • Limitação de Acesso: Se sua equipe for pequena, considere usar o plugin de autenticação básica do Nginx ou configurar integrações com LDAP/Active Directory se estiver em um ambiente corporativo.

Conclusão

Instalar o Etherpad em seu próprio servidor é uma decisão estratégica para equipes que valorizam a privacidade e o controle sobre seus dados. Com uma configuração simples em Linux, você transforma qualquer VPS ou servidor dedicado em uma poderosa ferramenta de comunicação interna.

Diferente de soluções proprietárias, o etherpad debian ou Ubuntu oferece transparência total no código e flexibilidade para adaptar a ferramenta às necessidades específicas da sua empresa. Seja para documentação técnica, planejamento de sprints ou redação conjunta, o Etherpad se estabelece como uma ferramenta colaborativa open source indispensável no arsenal de qualquer profissional de TI moderno.

Agora que seu servidor está pronto, experimente convida seus colegas para editar um documento simultaneamente e descubra a agilidade da colaboração real sem limites.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000