Pesquisa de site

Como instalar o Etherpad Collaboration Editor no servidor Ubuntu 24.04


Este tutorial existe para estas versões do sistema operacional

  • Ubuntu 24.04 (Nobre Numbat)
  • Ubuntu 20.04 (FocalFossa)
  • Ubuntu 18.04 (castor biônico)

Nesta página

  1. Pré-requisitos
  2. Instalando Dependências
  3. Configurando o servidor MariaDB
  4. Instalando o Etherpad Lite
  5. Executando o Etherpad como um serviço systemd
  6. Configurando o Nginx como proxy reverso
  7. Protegendo Etherpad com HTTPS
  8. Acessando o Etherpad
  9. Conclusão

Etherpad é um editor de texto colaborativo e em tempo real de código aberto para sua equipe, acessível de qualquer lugar e a qualquer hora porque o Etherpad é um editor de texto baseado na web. Etherpad suporta versionamento e formatação integrada para equipes e oferece um editor altamente personalizável com suporte de vários plugins. Ele também suporta formatos de documentos modernos, como doc, pdf, odt, markdown, etc.

Neste guia, orientaremos você no processo de instalação do editor de colaboração Etherpad no servidor Ubuntu 24.04. Você configurará o Etherpad com o servidor de banco de dados MariaDB, Nginx como proxy reverso e, em seguida, protegerá o Etherpad com HTTPS por meio de Certbot e Letsencrypt.

Pré-requisitos

Para começar com este guia, certifique-se de ter o seguinte:

Um servidor Ubuntu 24.04.
Um usuário não root com privilégios de administrador.
Um nome de domínio apontado para um endereço IP de servidor.

Instalando Dependências

Etherpad é um editor colaborativo em tempo real escrito em Node.js. Para instalá-lo, você deve instalar dependências de pacotes como Node.js, NPM e Git. Etherpad também exigiu Python3 e MySQL/MariaDB para o banco de dados.

Primeiro, atualize seu repositório Ubuntu com o seguinte:

sudo apt update

Agora, instale as dependências do Etherpad usando o comando abaixo. Com este comando, você instalará o servidor MariaDB, Nginx, Node.js, Python3, Git e algumas ferramentas essenciais.

sudo apt install mariadb-server nginx nodejs npm gzip git curl python3 libssl-dev

Digite Y para confirmar a instalação.

Após a instalação, verifique os serviços MariaDB e Nginx para garantir que ambos os serviços estejam em execução.

Verifique o serviço MariaDB com o seguinte:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Como você pode ver abaixo, o serviço MariaDB está em execução e iniciará automaticamente na inicialização.

Agora verifique o serviço Nginx usando o comando abaixo. Você deverá obter uma saída semelhante quando o serviço Nginx estiver em execução e ativado.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Por último, verifique a versão do Node.js com o comando.

node -v

Certifique-se de ter o Node.js v18.x ou superior. O Etherpad suporta Node.js v18 e superior.

Configurando o servidor MariaDB

Depois de instalar as dependências, você configurará o servidor MariaDB e criará um novo banco de dados e usuário para o Etherpad. Você protegerá o MariaDB usando o utilitário 'mariadb-secure-installation' e, em seguida, configurará o banco de dados e o usuário por meio do cliente MariaDB.

Para proteger seu servidor MariaDB, execute o seguinte:

sudo mariadb-secure-installation

Você será solicitado com as configurações do servidor MariaDB:

  1. A instalação padrão do MariaDB vem sem senha, pressione ENTER quando a senha for solicitada.
  2. Agora insira Y para configurar a senha root do MariaDB. Em seguida, digite a nova senha do MariaDB e repita a senha.
  3. Insira Y para remover o usuário anônimo da instalação do MariaDB.
  4. Insira Y novamente quando solicitado a desabilitar o login remoto para o usuário root do MariaDB.
  5. Insira Y para remover o teste de banco de dados padrão do seu MariaDB.
  6. Por último, insira Y para recarregar os privilégios da tabela e aplicar novas alterações.

Depois de proteger e configurar o servidor MariaDB, você criará um novo banco de dados e usuário para o Etherpad.

Faça login no servidor MariaDB com o seguinte comando. Insira a senha root do MariaDB quando solicitado.

sudo mariadb -u root -p

Em seguida, execute as seguintes consultas MariaDB para criar um novo banco de dados 'etherpad_db', um usuário 'etherpad', com a senha 'StrongPasswordEtherpadDB'. Você pode ajustar os seguintes detalhes do banco de dados com suas informações.

CREATE DATABASE etherpad_db;
CREATE USER etherpad@localhost IDENTIFIED BY 'StrongPasswordEtherpadDB';
GRANT CREATE,ALTER,SELECT,INSERT,UPDATE,DELETE on etherpad_db.* to etherpad@localhost;
FLUSH PRIVILEGES;

Agora execute a consulta a seguir para garantir que o usuário 'etherpad' possa acessar o banco de dados 'etherpad_db'.

SHOW GRANTS FOR etherpad@localhost;

Você pode ver abaixo o usuário 'etherpad' com múltiplos privilégios no banco de dados 'etherpad_db'.

Por último, digite quit para sair do servidor MariaDB.

Instalando o Etherpad Lite

Após criar o banco de dados e o usuário, você fará download do código-fonte do Etherpad, instalará as dependências do Etherpad com o script do instalador e, em seguida, configurará a instalação do Etherpad com o servidor MariaDB.

Por padrão, o Etherpad usa o gerenciador de pacotes pnpm para gerenciar a instalação, então você deve primeiro instalar o 'pnpm' globalmente em seu sistema.

Primeiro, instale o pacote pnpm globalmente (-g) usando o seguinte comando npm. Por padrão, o projeto Etherpad usa pnpm como gerenciador de pacotes Node.js em vez do npm padrão.

npm install pnpm -g

Agora execute o comando abaixo para criar um novo usuário do sistema 'etherpad'. Este usuário será usado para executar a aplicação Etherpad.

sudo adduser --system --no-create-home --home=/opt/etherpad-lite --group etherpad

Em seguida, vá para /opt e baixe o código-fonte do Etherpad para o diretório 'etherpad-lite' com git. Em seguida, altere a propriedade do diretório '/opt/etherpad-lite' para o usuário 'etherpad'.

cd /opt && git clone --branch master https://github.com/ether/etherpad-lite.git 
sudo chown -R etherpad:etherpad /opt/etherpad-lite

Depois, vá para o diretório ‘opt/etherpad-lite’ e instale as dependências do Node.js para Etherpad com o seguinte.

cd /opt/etherpad-lite
sudo su -s /bin/bash -c "./bin/run.sh" etherpad

Abaixo está o processo de download para dependências Etherpad usando o gerenciador de pacotes pnpm.

Após a instalação das dependências, o Etherpad deverá ser executado automaticamente. Você pode ver abaixo que o Etherpad 2.0.3 está em execução.

Pressione Ctrl+c para encerrar o processo Etherpad atual. Você configurará o Etherpad com o banco de dados MariaDB.

Agora abra o arquivo 'settings.json' com o seguinte editor nano.

nano settings.json

Altere o título da instalação do Etherpad.

 "title": "Etherpad Ubuntu 24",

Altere o endereço IP padrão para 12.0.0.1 ou localhost. Isto iniciará o processo Etherpad apenas no localhost.

```
 "ip": "127.0.0.1",
 "port": 9001, 
```

Comente a configuração padrão do banco de dados 'dirty' como a seguir:

 /*
 *"dbType": "dirty",
 *"dbSettings": {
 * "filename": "var/dirty.db"
 *},
 */

Insira a configuração abaixo para configurar um banco de dados com o servidor MariaDB. Certifique-se de alterar os detalhes das informações do banco de dados com os seus.

 "dbType" : "mysql",
 "dbSettings" : {
 "user": "etherpad",
 "host": "127.0.0.1",
 "port": 3306,
 "password": "StrongPasswordEtherpadDB",
 "database": "etherpad_db",
 "charset": "utf8mb4"
 },

Ao terminar, salve o arquivo e saia do editor.

Executando o Etherpad como um serviço systemd

Agora que instalou e configurou o Etherpad, você criará um novo arquivo de serviço systemd para o Etherpad. Com isso, você executará o Etherpad em segundo plano e poderá gerenciar o Etherpad através do comando ‘systemctl’.

Crie um novo arquivo de serviço systemd para Etherpad '/etc/systemd/system/etherpad.service' com o editor nano.

sudo nano /etc/systemd/system/etherpad.service

Adicione a seguinte configuração ao arquivo. Com isso, você executará o Etherpad em segundo plano como um serviço systemd através do comando ‘pnpm’.

[Unit]
Description=Etherpad-lite, the collaborative editor.
After=syslog.target network.target mariadb.service
[Service]
Type=simple
User=etherpad
Group=etherpad
WorkingDirectory=/opt/etherpad-lite
ExecStart=/usr/local/bin/pnpm run prod
# use mysql plus a complete settings.json to avoid Service hold-off time over, scheduling restart.
Restart=always
[Install]
WantedBy=multi-user.target

Salve o arquivo e saia.

Agora execute o comando abaixo para recarregar o gerenciador systemd e aplicar o arquivo de serviço Etherpad.

sudo systemctl daemon-reload

Após o systemd recarregar, inicie e habilite o serviço ‘etherpad’ com o seguinte comando systemctl.

sudo systemctl start etherpad
sudo systemctl enable etherpad

Em seguida, execute o comando abaixo para verificar o status do serviço Etherpad e certificar-se de que o serviço está em execução.

sudo systemctl status etherpad

Você pode ver abaixo que o serviço Etherpad está sendo executado como um serviço.

Por último, verifique a porta Etherpad 9001 padrão com o comando 'ss' abaixo. Você deverá ver que a porta 9001 é usada pelo processo Etherpad.

ss -tulpn | grep 9001

Configurando o Nginx como proxy reverso

Você executará o Etherpad com Nginx como proxy reverso neste guia. Portanto, agora você criará a configuração do bloco do servidor Nginx para Etherpa e garantirá que preparou seu nome de domínio para Etherpad.

Use o seguinte comando do editor nano para criar um novo bloco de servidor Nginx '/etc/nginx/sites-available/etherpad.conf'.

sudo nano /etc/nginx/sites-available/etherpad.conf

Adicione a seguinte configuração e altere a opção server_name com o seu nome de domínio. Com esta configuração, você usará o Nginx como proxy reverso para o Etherpad, que roda na porta 9001.

```
server {
 listen 80;
 server_name etherpad.howtoforge.local;
 access_log /var/log/nginx/eplite.access.log;
 error_log /var/log/nginx/eplite.error.log;
location / {
 proxy_pass http://127.0.0.1:9001;
 proxy_buffering off; # be careful, this line doesn't override any proxy_buffering on set in a conf.d/file.conf
 proxy_set_header Host $host;
 proxy_pass_header Server;
# Note you might want to pass these headers etc too.
 proxy_set_header X-Real-IP $remote_addr; # https://nginx.org/en/docs/http/ngx_http_proxy_module.html
 proxy_set_header X-Forwarded-For $remote_addr; # EP logs to show the actual remote IP
 proxy_set_header X-Forwarded-Proto $scheme; # for EP to set secure cookie flag when https is used
 proxy_http_version 1.1; # recommended with keepalive connections
# WebSocket proxying - from https://nginx.org/en/docs/http/websocket.html
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection "upgrade";
 }
}

Salve e feche o arquivo quando terminar.

Agora execute o comando abaixo para ativar o arquivo do bloco do servidor 'etherpad.conf' e verifique sua sintaxe Nginx.

sudo ln -s /etc/nginx/sites-available/etherpad.conf /etc/nginx/sites-enabled/
sudo nginx -t

Você deve obter uma saída 'nginx está ok...teste bem-sucedido' com a sintaxe Nginx adequada.

Por último, execute o comando abaixo para reiniciar o serviço Nginx e aplicar seu novo bloco de servidor. Após executar o comando, seu Etherpad fica acessível através do servidor web Nginx.

sudo systemctl restart nginx

Protegendo Etherpad com HTTPS

Depois de configurar o proxy reverso Nginx, você protegerá o Etherpad com HTTPS. Se estiver usando domínio público, você pode seguir as etapas a seguir para configurar HTTPS com Certbot e Letsencrypt. Os usuários do domínio local podem usar certificados autoassinados.

Instale o Certbot e o plugin Certbot Nginx usando o seguinte comando. Quando solicitado, digite Y para confirmar a instalação.

sudo apt install certbot python3-certbot-nginx

Agora execute o seguinte comando certbot para gerar certificados SSL/TLS do Letsencrypt. Certifique-se de alterar o nome de domínio e endereço de e-mail com seus dados.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email  -d etherpad.howtoforge.local

Após concluir o processo, seus certificados estarão disponíveis no diretório '/etc/letsencrypt/live/domain.com'. Além disso, a instalação do Etherpad deve ser executada automaticamente com HTTPS por meio do plugin Certbot Nginx.

Acessando o Etherpad

Visite o nome de domínio do Etherpad https://etherpad.howtoforge.local para acessar a instalação do Etherpad. Se for bem-sucedido, você obterá a seguinte página:

Digite o novo nome do seu primeiro bloco e clique em OK para confirmar.

Agora você verá o editor de documentos do Etherpad. Agora você pode editar o documento ao mesmo tempo que seus amigos ou colegas.

Conclusão

Parabéns! Você instalou o editor de colaboração Etherpad no servidor Ubuntu 24.04. Você tem o Etherpad rodando com o servidor de banco de dados MariaDB e o servidor web Nginx. Além disso, você protegeu o Etherpad com HTTPS por meio de Certbot e Letsencrypt.