Como integrar o Nextcloud com o ONLYOFFICE Docs em seu servidor Linux

Como integrar o Nextcloud com o ONLYOFFICE Docs em seu servidor Linux

onlyoffice-docs-online

É de conhecimento comum que Nextcloud é um substituto auto-hospedado ideal para Google Drive, OneDrive, Dropbox e outros softwares proprietários de armazenamento em nuvem. Ele permite que você crie um ambiente Sync&Share seguro em seu servidor local, onde você pode manter arquivos sem colocar sua privacidade sob ameaça.

No entanto, Nextcloud não é apenas sobre compartilhamento de arquivos e armazenamento de arquivos. Essa plataforma pode se tornar muito mais poderosa se você integrá-la a serviços de terceiros. Por exemplo, você pode habilitar facilmente a edição e colaboração de documentos em tempo real em sua instância do Nextcloud conectando o ONLYOFFICE Docs, um pacote de escritório de código aberto.

Neste tutorial, você aprenderá os fundamentos da implantação do ONLYOFFICE Docs em seu servidor Linux, integrando-o ao Nextcloud e configurando adequadamente o aplicativo de integração oficial para desempenho máximo.

Por que Documentos do ONLYOFFICE?

Entre todas as suítes de escritório disponíveis para Nextcloud, ONLYOFFICE Docs parece ser a escolha perfeita por uma série de razões. Em primeiro lugar, é um pacote de escritório de código aberto cujo código-fonte está disponível em GitHub como servidor de documentos do ONLYOFFICE. Em segundo lugar, o ONLYOFFICE Docs não só funciona com arquivos de escritório padrão (documentos de texto, planilhas e apresentações), mas também suporta formulários preenchíveis. Em terceiro lugar, o ONLYOFFICE Docs é compatível nativamente com os formatos OOXML, portanto, abre e salva perfeitamente arquivos do Word, Excel e PowerPoint.

Em poucas palavras, a solução integrada ONLYOFFICE e Netxlcoud oferece as seguintes vantagens:

  • Criação e edição de documentos de texto, planilhas e apresentações direto da interface do Nextcloud;
  • Criação de formulários preenchíveis com possibilidade de preenchimento online;
  • Visualização de arquivos PDF;
  • Compartilhamento de arquivos de escritório usando as permissões de acesso avançadas;
  • Adição de marcas d’água para melhor proteção do documento;
  • Colaboração de documentos em tempo real com os modos de coedição Fast e Strict, Track Changes, Version History, comentários, menções de usuários e comunicação via chat integrado;
  • Coedição em tempo real dentro de várias instâncias federadas do Nextcloud;
  • JWT para impedir o acesso não autorizado a documentos.

Pré-requisitos

Antes de prosseguir com o processo de instalação, você precisa atender a alguns requisitos importantes. Aqui está uma breve visão geral do que você precisa:

  • CPU: processador dual-core, 2 GHz ou superior;
  • RAM: mínimo 2 GB;
  • HDD: mínimo de 40 GB de espaço livre;
  • Espaço de troca: mínimo 4 GB;
  • SO: distribuição baseada em Linux de 64 bits com kernel v3.10+;
  • Docker v1.10+

O Docker é necessário porque fornece a maneira mais fácil de instalação. Se o seu sistema operacional não estiver equipado com esta ferramenta, você pode obter a versão mais recente no site oficial

Se você tiver todos os componentes necessários instalados e seu sistema estiver totalmente em conformidade com os requisitos mencionados acima, você poderá iniciar o processo de instalação. Vamos mergulhar nisso!

Instalação do ONLYOFFICE Docs via Docker

Para começar, basta executar o Docker e iniciar este comando:

Terminal
sudo docker run -i -t -d -p 80:80 --restart=always onlyoffice/documentserver

É importante destacar que o ONLYOFFICE Docs usa a porta 80 para conexões de entrada. Se você preferir outra porta em vez da porta padrão, execute este comando:

Terminal
sudo docker run -i -t -d -p <PORT_NUMBER>:80 --restart=always onlyoffice/documentserver

Neste comando, <PORT_NUMBER> é o número da porta para o ONLYOFFICE Docs.

Depois disso, o ONLYOFFICE Docs e todas as dependências essenciais serão instalados automaticamente.

Configuração de armazenamento de dados

O ONLYOFFICE armazena dados em diretórios especiais, também conhecidos como volumes de dados. Por exemplo, todos os logs do ONLYOFFICE Docs são armazenados em /var/log/onlyoffice, os certificados podem ser encontrados em /var/lib/onlyoffice e o banco de dados está localizado at /var/lib/postgresql.

É uma boa prática armazenar seus dados fora do contêiner Docker. Dessa forma, você pode atualizar facilmente para uma nova versão do ONLYOFFICE Docs quando estiver disponível sem perder nada.

Para poder acessar seus dados, é necessário montar os volumes de dados mencionados acima. Para isso, basta especificar a opção -v ao executar o Docker:

Terminal
sudo docker run -i -t -d -p 80:80 --restart=always \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice  \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  \
-v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
-v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql  onlyoffice/documentserver

Se as pastas que você está tentando montar não existirem, elas serão criadas de qualquer maneira. No entanto, seu acesso será restrito. Com isso dito, você terá que alterar os direitos de acesso por conta própria.

Geralmente, não há necessidade de armazenar dados de contêiner. No entanto, pode ser uma boa ideia salvar esses dados para acessar facilmente os logs ou remover o limite de tamanho de dados no contêiner do Docker. Além disso, é muito útil se você usar serviços (por exemplo, PostgreSQL, RabbitMQ ou Redis) que não são iniciados via Docker.

Possibilitando HTTPS

Vamos executar o ONLYOFFICE Docs via HTTPS:

Terminal
sudo docker run -i -t -d -p 443:443 --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  onlyoffice/documentserver

Também é possível usar Secure Sockets Layer (SSL) para impedir o acesso não autorizado. Os certificados SSL podem ser emitidos por uma autoridade de certificação (CA) ou você pode usar certificados autoassinados. A última opção não é muito segura e requer algumas etapas adicionais. É por isso que é aconselhável recorrer aos serviços de uma autoridade certificadora (CA) de confiança.

Para ativar o SSL, você precisa ter dois arquivos:

  • Chave privada (.key)
  • Certificado SSL (.crt)

Esses arquivos precisam ser colocados nos seguintes locais:

Terminal
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt

Executando o ONLYOFFICE Docs via HTTPS usando certbot

A maneira mais fácil de executar o ONLYOFFICE Docs via HTTPS é obter certificados SSL automaticamente Let’s Encrypt, uma autoridade de certificação sem fins lucrativos, usando certbot. Esta ferramenta de software gratuita possibilita o uso de certificados Let’s Encrypt.

Para fazer isso, você precisa executar o ONLYOFFICE Docs via Docker. Não se esqueça de especificar as portas 80 e 443 e inserir seus próprios valores:

Terminal
sudo docker run -i -t -d -p 80:80 -p 443:443 \
-e LETS_ENCRYPT_DOMAIN=yourdomain.com -e [email protected]  onlyoffice/documentserver

Neste comando:

  • LETS_ENCRYPT_DOMAIN é o nome de domínio usado para certificados SSL;
  • LETS_ENCRYPT_MAILé o endereço de e-mail usado no registro.

O certificado SSL da Let’s Encrypt será gerado e instalado automaticamente. Abra seu navegador e acesse sua instância do ONLYOFFICE Docs. Deve estar disponível em https://seudomínio.com.

Integração do ONLYOFFICE e Nextcloud através de um conector oficial

Agora que você tem instâncias funcionais do ONLYOFFICE Docs e do Nextcloud, é hora de integrá-los. Para isso, você precisará de um aplicativo de integração oficial desenvolvido pela equipe do ONLYOFFICE. Você pode baixá-lo do mercado de aplicativos integrado no Nexcloud ou do GitHub. A primeira opção é muito mais fácil:

  • Faça login no Nextcloud com direitos de administrador;
  • Encontre seu nome de usuário no canto superior direito da interface do Nextcloud;
  • Clique em seu nome de usuário e selecione Apps;
  • Entre na categoria Ferramentas;
  • Encontre o ONLYOFFICE e clique em Baixar e habilitar.

Se feito corretamente, o aplicativo de integração do ONLYOFFICE será baixado automaticamente.

Como alternativa, você pode baixar o aplicativo em GitHub com este comando:

Terminal
wget https://github.com/ONLYOFFICE/onlyoffice-nextcloud/archive/refs/tags/vX.X.X.tar.gz

Nesse comando, vX.X.X mostra a versão do aplicativo de integração do ONLYOFFICE. Sempre use o mais recente para evitar problemas. Depois disso, descompacte o arquivo baixado:

Terminal
tar -xvzf vX.X.X.tar.gz

Agora você precisa alterar o nome da pasta. Deve ser apenas escritório:

Terminal
mv onlyoffice-nextcloud-X.X.X onlyoffice

Em seguida, clone o código-fonte e compile-o iniciando este comando:

Terminal
git clone https://github.com/ONLYOFFICE/onlyoffice-nextcloud.git onlyoffice
cd onlyoffice
git submodule update --init --recursive

Agora mova a pasta para o diretório de aplicativos Nextcloud:

Terminal
cp -r /root/onlyoffice/ /var/www/html/apps/

Entre no diretório de aplicativos Nextcloud:

Terminal
cd /var/www/html/apps

Não se esqueça de alterar o proprietário:

Terminal
chown -R www-data:www-data onlyoffice

Volte para sua instância do Nextcloud e vá para Configurações. Encontre a seção Aplicativos e selecione Aplicativos desativados. Encontre o ONLYOFFICE e clique em Habilitar. É isso. Agora o aplicativo de integração requer configuração.

Configuração do aplicativo de integração

Abra a página Configurações. Lá você verá a seção Administração. Encontre o ONLYOFFICE e configure essas opções:

  • No campo de endereço do ONLYOFFICE Docs, insira o endereço URL de sua instância do ONLYOFFICE Docs (ONLYOFFICE Document Server). Se você instalou o pacote de escritório em uma porta personalizada, precisa especificá-la. Por exemplo, http://127.0. 0.1:8081/.
  • A caixa Desativar verificação de certificado (inseguro) foi projetada para desativar a verificação de certificado para permitir que o Nextcloud estabeleça uma conexão com o servidor de documentos ONLYOFFICE caso você use certificados SSL autoassinados. Esta opção não é recomendada.
  • O campo Chave secreta destina-se à assinatura de dados. Voltaremos a essa opção mais tarde ao habilitar a proteção JWT.

Às vezes, as configurações de rede não permitem solicitações internas entre o Nextcloud e o ONLYOFFICE Document Server por meio de endereços públicos. Se for esse o caso, você deve especificar os seguintes endereços em Configurações avançadas do servidor:

  • O endereço do ONLYOFFICE Docs para solicitações internas do servidor é o endereço URL que permite que o Nextcloud acesse o ONLYOFFICE Docs;
  • O endereço do servidor para solicitações internas do ONLYOFFICE Docs é o endereço URL que permite que o ONLYOFFICE Document Server acesse o Nextcloud.

Digite os endereços necessários e clique em Salvar. Você verá algumas outras opções disponíveis. Por exemplo, as configurações comuns e de personalização. Configure os editores do ONLYOFFICE da maneira que desejar e clique em Salvar novamente.

Ativando a proteção JWT

Para proteger seus documentos com JSON Web Token (JWT), você precisa ativar a opção de validação de token e inserir sua chave secreta na página de configurações do ONLYOFFICE.

Encontre o arquivo local.json e abra-o usando um editor de texto. Para que isso aconteça, entre no contêiner do ONLYOFFICE Docs iniciando o docker exec -it <containerID> bash comando e abra o /etc/onlyoffice/documentserver/local.json file.

Para habilitar a validação do token, você precisa definir os valores falsos como verdadeiros nessas três seções:

  • services.CoAuthoring.token.enable.browser
  • services.CoAuthoring.token.enable.request.inbox
  • services.CoAuthoring.token.enable.request.outbox

Especifique sua chave secreta. Deve ser o mesmo em todas as três seções:

services.CoAuthoring.secret.inbox.string

services.CoAuthoring.secret.outbox.string

services.CoAuthoring.secret.session.string

{

  "services": {

    "CoAuthoring": {

      "token": {

        "enable": {

          "request": {

            "inbox": true,

            "outbox": true

          },

          "browser": true

        }

      },

      "secret": {

        "inbox": {

          "string": "yoursecret"

        },

        "outbox": {

          "string": "yoursecret"

        },

        "session": {

          "string": "yoursecret"

        }

      }

    }

  }

}

Salve o arquivo e reinicie os serviços:

Terminal
supervisorctl restart all

Finalmente, não se esqueça de especificar a mesma chave secreta nas configurações do ONLYOFFICE.

Agora você conseguiu! Você acabou de construir um ambiente colaborativo em seu servidor local. A partir de agora, você pode manter todos os seus documentos no Nextcloud e abri-los para edição e colaboração com o ONLYOFFICE Docs.

Esperamos que este tutorial o ajude a integrar o Nextcloud e o ONLYOFFICE Docs. Se você tiver alguma dúvida ou sugestão, não hesite em nos informar na seção de comentários abaixo.