Neste tutorial vamos mostrar como integrar o Collabora Online Server com o Nextcloud Server já existente no Ubuntu 16.04
O Collabora Online Server é um LibreOffice online que suporta a maior parte dos documentos, tabelas e apresentações. Ele inclui:
- Edição Básica
- Alta Fidelidade, WYSIWYG
- Suporte DOC, DOCX, PPT, PPTX, XLS, XLSX ODF document format
- Importação e visualização do visio, publisher e outros.
- Edição compartilhada
Nextcloud é um serviço de armazenamento muito similar ao Dropbox, porém gratuito e de código aberto.
Requisito importante
Para seguir com esse tutorial é necessário ter o Nextcloud Server já instalado na sua distribuição.
Passo 1: Instalar o Docker no Ubuntu 16.04
Abra o Terminal, você pode usar as teclas (CTRL+ALT+T) e rodar os comandos:
[sudo apt update]
[sudo apt install docker.io]
Depois de instalado ele irá iniciar automaticamente, e você pode verificar o status com o comandos:
[systemctl status docker]
Caso não tenha iniciado, use os comandos:
[sudo systemctl start docker]
Habilite o autostart no boot.
[sudo systemctl enable docker]
Passo 2 : Instalar e rodar o Collabora Online Server com Docker.
Para instalar e rodar o Collabora Online Server com o Docker, execute os comandos:
[sudo docker pull collabora/code]
Execute este comando substituindo as informações de domínio pelo seu Nextcloud Server:
[sudo docker run -t -d -p 127.0.0.1:9980:9980 -e ‘domain=nextcloud.seu-dominio.com’ – restart always –cao-add MKNOD collabora/code]
O Collabora Online Server pode ser visto em execução na porta 9980 através do comando:
[sudo netstat -lnpt]
Passo 3 : Configurar proxy reverso
O Nextcloud Server exige um certificado TLS/SSL no Collabora Online Server. Então vamos criar um host virtual e dar um nome de domínio, instalar o certificado TLS/SSL e configurar o proxy reverso. Para isso vamos utilizar o Apache2.
Instalando o Apache2 e configurando o virtual host:
[sudo apt install apache2]
[sudo nano /etc/apache2/sites-available/office.seu-dominio.com.conf]
Coloque o seguinte texto no arquivo:
- [<VirutallHost *:80>
- ServerName office.seu-domínio.com
- </VirtualHost>]
Salve e feche o arquivo. Depois execute o seguinte comando para ativar.
[sudo a2ensite office.seu-dominio.com.conf]
Reinicie o Apache:
[sudo systemctl restart apache2]
O HTTPS ajuda prevenir o ataque do homem do meio e password sniffing. Nós podemos obter um certificado TLS/SSL free do Lets Encrypt CA. Primeiro, vamos instalar o Certbot Client. O cliente mantem o nome letsencrypt no repositório do Ubuntu. Utilize o seguinte comando.
[sudo apt install letsencrypt python-letsencrypt-apache]
Agora obtenha o certificado utilizando comandos:
[sudo letsencrypt–apache–agree-tos –email seu-endereco-email -d office.seu-dominio.com]
Será solicitado o tipo de acesso HTTPS Easy ou Secure. É recomendado escolher Secure.
Configurar o proxy reverso do apache
Para habilitar o proxy reverso execute os comandos:
[sudo a2enmod proxy]
[sudo a2enmod proxy_wstunnel]
[sudo a2enmod proxy-httpp]
[sudo a2enmod ssl]
Então, execute o seguinte comando para editar o novo arquivo de host virtual criado pelo encrypt cliente:
[sudo nano /etc/apache2/sites-enable/office.seu-dominio.com-le-ssl.conf]
Adicione o texto abaixo ao arquivo:
- [<IfModule mod_ssl.c>
- <VirtualHost *:443>
- ServerName office.your-domain.com
- SSLCertificateFile /etc/letsencrypt/live/office.your-domain.com/fullchain.pem
- SSLCertificateKeyFile /etc/letsencrypt/live/office.your-domain.com/privkey.pem
- Include /etc/letsencrypt/options-ssl-apache.conf
- # Encoded slashes need to be allowed
- AllowEncodedSlashes On
- # Container uses a unique non-signed certificate
- SSLProxyEngine On
- SSLProxyVerify None
- SSLProxyCheckPeerCN Off
- SSLProxyCheckPeerName Off
- # keep the host
- ProxyPreserveHost On
- # static html, js, images, etc. served from loolwsd
- # loleaflet is the client part of LibreOffice Online
- ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0
- ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet
- # WOPI discovery URL
- ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
- ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery
- # Main websocket
- ProxyPassMatch “/lool/(.*)/ws$” wss://127.0.0.1:9980/lool/$1/ws
- # Admin Console websocket
- ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws
- # Download as, Fullscreen presentation and Image upload operations
- ProxyPass /lool https://127.0.0.1:9980/lool
- ProxyPassReverse /lool https://127.0.0.1:9980/lool
- </VirtualHost>
- </IfModule>]
Salve e feche o arquivo
Passo final: Conectar o Nextcloud Server ao Collabora Online Server
Primeiro, você precisará habilitar os apps experimentais no Nextcloud.
No Dashboard, vá em apps.
Depois clique em Enable experimental apps.
Por fim, vá para a pagina de administração do Nextcloud. Clique em Additional Settings procure a sessão Collabora Online coloque o seu nome de domínio https://office.seu-domínio.com e clique em Apply.
Agora você poderá ver o Collabora Office no seu menu.