Pular para o conteúdo principal

Instalando o ONLYOFFICE Docs para Docker no KylinOS

Introdução​

A Community Edition permite que você instale o ONLYOFFICE Docs no seu servidor local e integre os editores online com a plataforma de colaboração ONLYOFFICE ou com outros sistemas populares (veja a lista detalhada de recursos). A partir da versão 7.2, as imagens Docker do ONLYOFFICE Docs foram reformuladas para execução no Kylin Linux Advanced Server OS release V10; este guia mostrará como instalar a versão Docker do ONLYOFFICE Docs Community Edition no KylinOS.

Requisitos do sistema​

  • CPU: dual core 2 GHz ou melhor
  • RAM: 4 GB ou mais
  • HDD: pelo menos 40 GB de espaço livre
  • SWAP: pelo menos 4 GB, mas depende do sistema operacional do host. Mais é melhor
  • OS: distribuição Linux amd64 com versão do kernel 3.10 ou posterior
  • Docker: qualquer versão suportada pelo KylinOS

Instalando o ONLYOFFICE Docs​

observação

O Docker especifica os servidores DNS do Google por padrão. Se o seu ONLYOFFICE Docs não tiver acesso à Internet, recomendamos que você altere o endereço DNS padrão do Docker para o endereço do seu servidor DNS local. Para fazer isso, vá para o arquivo /etc/default/docker e altere o endereço IP na seguinte linha para o endereço IP de um servidor DNS na sua rede local:

docker_OPTS="--dns 8.8.8.8"

Para sistemas operacionais baseados em RPM como o CentOS:

  1. Crie o arquivo de configuração /etc/docker/daemon.json com o seguinte conteúdo:

    { "dns" : [ "8.8.8.8" ] }
  2. Reinicie o serviço Docker:

    sudo systemctl restart docker.service

Desabilitar o SELinux​

Você precisa desabilitar o SELinux no arquivo de configuração /etc/selinux/config.

Abra o arquivo /etc/selinux/config utilizando qualquer editor de texto, substitua a string SELINUX=enforcing ou SELINUX=permissive por SELINUX=disabled e salve as alterações.

Reinicie o servidor para que as alterações entrem em vigor. Certifique-se de que o SELinux está desabilitado:

[root@test ~]# sestatus
SELinux status: disabled

Instalar o ONLYOFFICE Docs​

Execute o seguinte comando para instalar o ONLYOFFICE Docs:

sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
Importante

A partir da versão 7.2, adicionamos uma geração aleatória de segredo JWT. Se o segredo JWT não for especificado com a variável de ambiente, ele será regenerado a cada reinicialização de VMs ou servidores físicos, o que pode causar problemas nas integrações. Para evitar esse problema, especifique seu próprio valor em -e JWT_SECRET=my_jwt_secret.

Se você não for usar JWT na sua instalação, use -e JWT_ENABLED=false.

A chave --security-opt seccomp=unconfined é necessária para desabilitar os perfis de segurança do contêiner. Mais detalhes podem ser encontrados aqui.

Você também pode usar o nosso perfil de segurança personalizado: kylin-seccomp7.json.

observação

Por padrão, o ONLYOFFICE Docs escuta as conexões recebidas usando a porta 80. A partir da versão 4.3, você pode alterar a porta para o ONLYOFFICE Docs se planeja usá-la em vez da padrão. Isso pode ser facilmente feito alterando a porta de mapeamento durante a instalação:

sudo docker run -i -t -d -p <PORT_NUMBER>:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver

Onde <PORT_NUMBER> é o número da porta que você deseja que o ONLYOFFICE Docs use.

Isso instalará o ONLYOFFICE Docs e todas as dependências necessárias (a lista do que está sendo feito pelo script pode ser encontrada aqui).

Adicionar uma exceção ao firewall​

Você também precisa adicionar uma exceção ao serviço firewalld.service:

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

Concluída a configuração, você pode inserir http://localhost na barra de endereços do seu navegador para abrir a página de boas-vindas do ONLYOFFICE Docs, onde encontrará mais instruções sobre como ativar os exemplos de documentos ou integrar os editores online na sua aplicação web usando a API fornecida.

Armazenando dados fora dos contêineres​

Todos os dados são armazenados em diretórios especialmente designados, volumes de dados, na seguinte localização:

  • /var/log/onlyoffice para logs do ONLYOFFICE Docs
  • /var/www/onlyoffice/Data para certificados
  • /var/lib/onlyoffice para cache de arquivos
Recomendamos

Recomendamos fortemente que você armazene os dados fora dos contêineres Docker na máquina host, pois isso permite que você atualize facilmente o ONLYOFFICE Docs quando uma nova versão for lançada, sem perder seus dados.

Para acessar seus dados localizados fora do contêiner, você precisa montar os volumes. Isso pode ser feito especificando a opção -v no comando docker run.

sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --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
observação

Observe que, caso você esteja tentando montar pastas que ainda não foram criadas, essas pastas serão criadas, mas o acesso a elas será limitado. Você precisará alterar manualmente seus direitos de acesso.

Normalmente, você não precisa armazenar dados do contêiner porque a operação do contêiner não depende do seu estado. Salvar dados será útil:

  • para fácil acesso aos dados do contêiner, como logs;
  • para remover o limite de tamanho dos dados dentro do contêiner.

Executando o ONLYOFFICE Docs usando HTTPS​

sudo docker run -i -t -d -p 443:443 --security-opt seccomp=unconfined --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver

O acesso ao aplicativo ONLYOFFICE pode ser protegido usando SSL para evitar acesso não autorizado. Embora um certificado SSL certificado por uma CA permita a verificação de confiança via CA, certificados autoassinados também podem fornecer um nível igual de verificação de confiança, desde que cada cliente tome algumas medidas adicionais para verificar a identidade do seu site. As instruções para alcançar isso são fornecidas abaixo.

Para proteger o aplicativo via SSL, basicamente são necessárias duas coisas:

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

Portanto, você precisa criar e instalar os seguintes arquivos:

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

Ao usar certificados certificados por CA (por exemplo, Let's Encrypt), esses arquivos são fornecidos a você pela CA. Se você estiver usando certificados autoassinados, precisará gerar esses arquivos você mesmo.

Mudando o ONLYOFFICE Docs para HTTPS usando certbot​

A maneira mais fácil de mudar o ONLYOFFICE Docs para HTTPS é obter automaticamente certificados SSL do Let's Encrypt usando o certbot.

Execute o contêiner Docker do ONLYOFFICE Docs, especificando as portas 80 e 443 e definindo seus próprios valores para as variáveis:

sudo docker run -i -t -d -p 80:80 -p 443:443 --security-opt seccomp=unconfined --restart=always \
-e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver

Onde:

  • LETS_ENCRYPT_DOMAIN - um nome de domínio a ser usado para o certificado.
  • LETS_ENCRYPT_MAIL - um email usado para registro e contato de recuperação.

O certificado assinado pela CA letsencrypt.org será gerado e instalado automaticamente em seu servidor. Agora, seu ONLYOFFICE Docs deve estar disponível no endereço https://yourdomain.com.

Geração de certificados autoassinados​

A geração de certificados SSL autoassinados envolve um procedimento simples de 3 etapas:

ETAPA 1: Crie a chave privada do servidor

openssl genrsa -out onlyoffice.key 2048

ETAPA 2: Crie a solicitação de assinatura de certificado (CSR)

openssl req -new -key onlyoffice.key -out onlyoffice.csr

ETAPA 3: Assine o certificado usando a chave privada e o CSR

openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt

Agora você gerou um certificado SSL válido por 365 dias.

Fortalecendo a segurança do servidor​

Esta seção fornece instruções para fortalecer a segurança do seu servidor.

Para isso, você precisa gerar parâmetros DHE mais fortes.

openssl dhparam -out dhparam.pem 2048

Instalação dos certificados SSL​

Dos quatro arquivos gerados acima, você precisa instalar os arquivos onlyoffice.key, onlyoffice.crt e dhparam.pem no servidor onlyoffice. O arquivo CSR não é necessário, mas certifique-se de fazer um backup seguro do arquivo (caso precise dele novamente).

O caminho padrão que a aplicação onlyoffice está configurada para procurar os certificados SSL é /var/www/onlyoffice/Data/certs, no entanto, isso pode ser alterado usando as opções de configuração SSL_KEY_PATH, SSL_CERTIFICATE_PATH e SSL_DHPARAM_PATH.

O caminho /var/www/onlyoffice/Data/ é o caminho do armazenamento de dados, o que significa que você deve criar uma pasta chamada certs dentro de /app/onlyoffice/DocumentServer/data/ e copiar os arquivos para dentro dela e, como medida de segurança, você atualizará a permissão no arquivo onlyoffice.key para que seja lido apenas pelo proprietário.

mkdir -p /app/onlyoffice/DocumentServer/data/certs
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key

E reinicie o contêiner Docker:

sudo docker restart {{DOCUMENT_SERVER_ID}}

Agora você está a apenas um passo de ter nossa aplicação segura.

Parâmetros de configuração disponíveis​

observação

Para evitar escrever um comando docker run potencialmente longo, você pode armazenar todas as variáveis de ambiente em um arquivo de texto simples e passá-lo usando a flag --env-file:

sudo docker run ... --env-file /path/to/your.env onlyoffice/documentserver

Abaixo está a lista completa de parâmetros que podem ser configurados usando variáveis de ambiente.

  • ONLYOFFICE_HTTPS_HSTS_ENABLED: Opção de configuração avançada para desativar a configuração HSTS. Aplicável apenas quando o SSL está em uso. O padrão é true.
  • ONLYOFFICE_HTTPS_HSTS_MAXAGE: Opção de configuração avançada para definir o tempo máximo de HSTS na configuração do vHost NGINX do onlyoffice. Aplicável apenas quando o SSL está em uso. O padrão é 31536000.
  • SSL_CERTIFICATE_PATH: O caminho para o certificado SSL a ser usado. O padrão é /var/www/onlyoffice/Data/certs/tls.crt.
  • SSL_KEY_PATH: O caminho para a chave privada do certificado SSL. O padrão é /var/www/onlyoffice/Data/certs/tls.key.
  • SSL_DHPARAM_PATH: O caminho para o parâmetro Diffie-Hellman. O padrão é /var/www/onlyoffice/Data/certs/dhparam.pem.
  • SSL_VERIFY_CLIENT: Habilitar verificação de certificados de cliente usando o arquivo CA_CERTIFICATES_PATH. O padrão é false.
  • NGINX_WORKER_PROCESSES: Define o número de processos de trabalho do NGINX.
  • NGINX_WORKER_CONNECTIONS: Define o número máximo de conexões simultâneas que podem ser abertas por um processo de trabalho do NGINX.
  • SECURE_LINK_SECRET: Define o segredo para a diretiva de configuração nginx secure_link_md5. O padrão é random string.
  • JWT_ENABLED: Especifica a habilitação da validação do token web JSON pelo ONLYOFFICE Docs. O padrão é true.
  • JWT_SECRET: Define a chave secreta para validar o token web JSON na solicitação para o ONLYOFFICE Docs. O padrão é valor aleatório.
  • JWT_HEADER: Define o cabeçalho HTTP que será usado para enviar o token web JSON. O padrão é Authorization.
  • JWT_IN_BODY: Especifica a habilitação da validação do token no corpo da solicitação para o ONLYOFFICE Docs. O padrão é false.
  • WOPI_ENABLED: Especifica a habilitação dos manipuladores wopi. O padrão é false.
  • USE_UNAUTHORIZED_STORAGE: Defina como true se estiver usando certificados autoassinados para seu servidor de armazenamento, por exemplo, Nextcloud. O padrão é false.
  • GENERATE_FONTS: Quando true, regenera a lista de fontes e as miniaturas das fontes, etc., a cada início. O padrão é true.
  • METRICS_ENABLED: Especifica se o StatsD está habilitado para o ONLYOFFICE Docs. O padrão é false.
  • METRICS_HOST: Define o host de escuta do StatsD. O padrão é localhost.
  • METRICS_PORT: Define a porta de escuta do StatsD. O padrão é 8125.
  • METRICS_PREFIX: Define o prefixo de métricas do StatsD para serviços de backend. O padrão é ds..
  • LETS_ENCRYPT_DOMAIN: Define o domínio para o certificado Let's Encrypt.
  • LETS_ENCRYPT_MAIL: Define o endereço de e-mail do administrador do domínio para o certificado Let's Encrypt.