Monte sua própria nuvem com NextCloud + HTTPS + OnlyOffice Ou Collabora Online

Nextcloud tem funcionalidade muito semelhante ao Dropbox, com a diferença de ser código aberto, e assim permitir que qualquer pessoa instalar e operá-lo sem custo em um servidor privado. Nextcloud é um fork do projeto ownCloud.

ATENÇÃO:
Para a instalação estou usando a distribuição: Debian 8 Jessie / Instalação Limpa

Será necessário a instalação do Apache2, PHP5, MySQL você pode seguir o tutorial
Passo-a-passo como criar um servidor web Apache2, PHP5, MySQL, PHPMyAdmin “LAMP” no Debian 8

Após ter instalado seu servidor web vamos aos passos, não entrarei em detalhes de como é o funcionamento, ex criação de usuários e grupos, compartilhamento etc, pois ele é bem intuitivo, após instalado você pode instalar os APP-Clientes no seu PC (LinuxWindowsMac) ou dispositivo mobile (AndroidIOSWindowsPhone)

Na data de hoje o projeto se encontra na versão 11.0.3.

https://nextcloud.com/install/#instructions-server
https://download.nextcloud.com/server/releases/

Seguindo a instalação básica do apache vamos usar o diretório /var/www/html para a instalação do nosso Nextcloud

# cd /var/www/

# wget https://download.nextcloud.com/server/releases/nextcloud-11.0.3.zip --no-check-certificate

# apt install unzip

# unzip nextcloud*.zip

# mv /var/www/html /var/www/html_old

# mv nextcloud /var/www/html

# chown www-data. /var/www/html -R

# apt install php-pclzip php5-curl php5-xmlrpc php5-imagick php5-redis php5-memcached php5-apcu php5-gmp php5-imap php5-ldap php5-intl

# a2enmod rewrite

# a2enmod headers

# /etc/init.d/apache2 restart

Criaremos um usuário nextcloud e uma banco com o nome de nextcloud, não esqueça de alterar a SENHA.

# mysql -uroot -p -e "CREATE DATABASE nextcloud character set utf8 collate utf8_bin; GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY 'SENHA';"

Será solicitado a senha do usuários root do mysql.

Agora acesse em seu navegador o endereço/ip do seu servidor.

Informe os dados corretamente, e clique em Concluir configuração.

# chmod 777 /var/www/html/occ
# su -s /bin/bash -c "php /var/www/html/occ config:system:set --value='\OC\Memcache\APCu' memcache.local" www-data

Parabéns, seu servido Nextcloud já está funcionado!!!

Se você esta montando sbo um IP Válido e um domínio continue com o tutoria! 😉

Primeiramente vamos configurar nosso apache para que responda nosso domínio.
No exemplo vou usar cloud.remontti.com.br

# vim /etc/apache2/sites-available/cloud.remontti.com.br.conf

Como vamos habilitar o https, não vamos informar muita “coisa no nosso arquivo”. Deixe assim:

<VirtualHost *:80>
	ServerName cloud.remontti.com.br
	ServerAdmin email@seuemail.com.br
 
	DocumentRoot /var/www/html
 
        <Directory /var/www/html/>
    		Options Indexes FollowSymLinks
    		AllowOverride All
	</Directory>
 
        <IfModule mod_headers.c>
                Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
        </IfModule>
 
	LogLevel warn
 
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Agora vamos desativar a configuração default do apache e ativar o nosso arquivo, e em seguida restart o serviço.

# a2dissite 000-default.conf
# a2ensite cloud.remontti.com.br.conf
# /etc/init.d/apache2  restart

HTTPS

Podemos obter um certificado TLS/SSL grátis vamos usar o Let’s Encrypt CA.
Caso queira deixar seu servidor sem https pule esta etapa.

Primeiro vamos instalar o cliente certbot/letsnecrypt. Para isso será necessario ativar o repositório backports.

# echo 'deb http://ftp.debian.org/debian jessie-backports main' >> /etc/apt/sources.list.d/backports.list
# apt update
# apt install letsencrypt python-certbot-apache -t jessie-backports

Vamos a autoconfiguração.

# letsencrypt --apache --agree-tos --email seu@email.com -d cloud.remontti.com.br

Para atualizar certificado você pode usar o comando: (agende no cron)

# certbot renew --dry-run

https://certbot.eff.org/#debianjessie-apache
https://certbot.eff.org/about/

Agora acesse seu domínio. Possivelmente você será informado que seu domínio não esta definido em trusted_domains.

Edite o arquivo config/config.php.

# vim /var/www/html/config/config.php

altere:

[...]
  'trusted_domains' =>
  array (
    0 => 'cloud.remontti.com.br',
  ),
[...]
'overwrite.cli.url' => 'https://cloud.remontti.com.br',
[...]

OnlyOffice ou Collabora Online?

Segue duas maneiras de você ter um editor online, eu particularmente gostei mais do OnlyOffice, mas fica a seu critério.

Para rodar editores online é requerido:
CPU dual-core 2 GHz ou +
RAM 4 GB ou +
2 GB swap ou +
Linux OS amd64 kernel version 3.10 ou mais recente
Docker versão minima: 1.10

Se preferir não instalar nenhum editor, nosso processo acaba aqui, parabéns!

Instalação: OnlyOffice

Com o ONLYOFFICE conectado à instalação do ownCloud/Nextcloud, você será capaz de:
– Trabalhar com todos os formatos principais. Edite arquivos de docx, xlsx, pptx, txt e odt, ods, odp, doc, xls, ppt, pps, epub, rtf, html, htm.
– Desfrutar de perfeita compatibilidade com os formatos do MS Office.
– Usar centenas de recursos de formatação. Adicione gráficos, formas automáticas, equações matemáticas complexas, decore a fonte, edite cabeçalhos / rodapés, crie estilos, altere o design do documento inteiro com dois cliques e mais.
– Editar documentos em tempo real com outras pessoas. Use o modo rápido para ver o que seus colegas estão digitando no momento ou o modo estrito para trabalhar no fragmento do documento sem ser distraído por outros.

# apt install git
# cd /var/www/html/apps/
# git clone https://github.com/ONLYOFFICE/onlyoffice-owncloud.git onlyoffice
# chown  www-data. onlyoffice -R

Docker se encontra nos repositório backports, caso você tenha instalado o letsencrypt (https) você ja fez este procedimento, pode pular para a instalacao do docker.io

# echo 'deb http://ftp.debian.org/debian jessie-backports main' >> /etc/apt/sources.list.d/backports.list
# apt update
# apt install docker.io
# systemctl enable docker

Sem NÃO instalou os certificados https rode o comando abaixo.

# docker run -i -t -d -p 88:80 --restart always onlyoffice/documentserver

Ou (https)

# cd /tmp/
# openssl genrsa -out onlyoffice.key 2048
# openssl req -new -key onlyoffice.key -out onlyoffice.csr
# openssl x509 -req -days 1825 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt
# openssl dhparam -out dhparam.pem 2048
# 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
# docker run -i -t -d -p 448:443 --restart always -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
# docker pull onlyoffice/documentserver

Agora acesse em seu navegador http://seu-ip:88/ ou https://seu-ip:448/ para verificar se o servidor de documentos esta rodando.

Agora acesse em seu navegador, e clique em +Aplicações

Nas categorias da esquerda, selecione Office & text Encontre OnlyOffice e Clique em Habilitar

Acesse o menu administração e altere “Document Editing Service Address” para o endereço ip do seu protocolo://servidor:porta
Ex: https://1.1.1.1:443 ou http://1.1.1.1:88

Crie um novo documento:

Ele já vai ser aberto no Onlyoffice!

Parabéns, seu servidor está pronto! (Se você optou instalar o Onlyoffice não instale o Collabora)

Links úteis:
https://www.youtube.com/watch?v=vN9v9sJ0HVw
https://apps.nextcloud.com/apps/onlyoffice
https://github.com/ONLYOFFICE/onlyoffice-owncloud
https://github.com/ONLYOFFICE/Docker-DocumentServer
http://helpcenter.onlyoffice.com/server/docker/document/docker-installation.aspx#RunningHTTPS

Instalação: Collabora Online

https://nextcloud.com/collaboraonline/

É um poderoso pacote on-line baseado em LibreOffice que suporta todos os principais formatos de arquivo de documentos, planilhas e apresentações.

Recursos:
Edição básica de documentos:
DOC, DOCX, PPT, PPTX, XLS, XLSX + ODF
Edição totalmente colaborativa
Edição anônima de arquivos em pasta pública compartilhada

# apt install docker.io
# vim /etc/default/docker

Altere DOCKER_OPTS para:

DOCKER_OPTS="--storage-driver=devicemapper"

# systemctl enable docker
# docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=cloud\\.remontti\\.com\\.br' --restart always --cap-add MKNOD collabora/code
# docker pull collabora/code
# docker ps

# /etc/init.d/docker  restart
# a2enmod proxy
# a2enmod proxy_wstunnel
# a2enmod proxy_http

Adicione em:

# vim /etc/apache2/sites-enabled/cloud.remontti.com.br-le-ssl.conf

Antes de: /VirtualHost Ficando:

<IfModule mod_ssl.c>
<VirtualHost *:443>
        ServerName cloud.remontti.com.br
        ServerAdmin remontti@remontti.com.br
 
        DocumentRoot /var/www/html
 
        <IfModule mod_headers.c>
                Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
        </IfModule>
 
        LogLevel warn
 
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        SSLCertificateFile /etc/letsencrypt/live/cloud.remontti.com.br/fullchain.pem
        SSLCertificateKeyFile /etc/letsencrypt/live/cloud.remontti.com.br/privkey.pem
        Include /etc/letsencrypt/options-ssl-apache.conf
 
 
        # ------ INCLUIR LINHAS ABAIXO ------ #
 
        # Encoded slashes need to be allowed
        AllowEncodedSlashes NoDecode
 
        # 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 nocanon
 
        # 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>
# /etc/init.d/apache2  restart

Agora acesse em seu navegador, e clique em +Aplicações

Nas categorias da esquerda, selecione Office & text Encontre Collabora Online e Clique em Habilitar

Entre nas configurações de Admin e selecione Collabora Online, e adicione seu domínio completo (https://…)

Note que agora é possível criar novos formatos de arquivo.

Crie um arquivo e o edite!

Pronto agora temos nosso servidor

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

33 Resultados

  1. Edson disse:

    Boa tarde, excelente tutoria! Consegui fazer toda configuração e integrar com ad da minha rede, ficou show ! porém surge dúvida, eu consigo enxergar um compartilhamento do windows (exemplo: \\desktop01\scan\ ) dentro do nextcloud, assim que eu realizo o login?? Como se eu tivesse realmente navegando pelo windows usando o \\…

  2. carlos disse:

    Tem como acessar de fora da rede… via internet..

  3. Bom Dia!!!

    Estou com um problema bem chato, já reinstalei três vezes o servidor, já tentei instalar de maneiras diferentes mas sem sucesso, e não acho nada que me ajude de fato nos fóruns, pois o problema é diferente.

    Eu conseguir instalar o NextCloud, rodando perfeito, com certificado válido. Instalei o OnlyOffice exatamente do jeito que está no tutorial, copiando e colando, revisando os atos feitos. Na primeira configuração dele dentro do NEXTCLOUD, ao apontar para o meu IP externo https://meuippublico:448/ e clicar em save, recebo a seguinte mensagem de erro ” Error when trying to connect (Bad Request or timeout error) “. Porém, ao abrir ou criar um novo documento, abre o OnlyOffice normalmente, consigo editar, salvar o arquivo, sair, entrar novamente… O único problema é que tanto o Next quanto o OnlyOffice ficam com certificado inválido, depois de algum tempo sem abrir documentos fica normal. Já não sei mais o que fazer, estava pensando em criar um servidor diferente ou colocar uma nova pasta e deixar o office com um domínio único conforme o tutorial acima referente a duas cloud no mesmo server.

  4. Marcelo disse:

    Boa noite Rudimar.

    pergunta simples, limitação do onlyoffice, sao 20 sessões concurrentes ao mesmo arquivo ou 20 sessões de modo geral ao servidor

    muito obrigado e parabéns pelo artigo

  5. André disse:

    Professor, boa noite.
    Então, instalei o nextcloud e funcionou 100% e até o ssl.
    Na minha máquina tenho dois hds de um 1TB, 1 dedicado para o sistema e outro estou pensando em fazer o backup da pasta /var/www/html/data ou backup do sistema completo, como posso fazer esse procedimento ? é possível ?

  6. Carlos disse:

    E como fazer para acesso Externo? Quero deixar rodando no meu computador em casa, e acessar pelo celular de outro lugar para usar a nuvem. Como proceder?

  7. Anderson soprana disse:

    olá pessoal alguém esta com esse erro
    “Collabora Online erro desconhecido:cURL error 35: Unknown SSL protocol error in connection to localhost:9980
    Por favor entre em contato com o administrador “https://localhost:9980”.

  8. andre disse:

    Professor , uma pergunta. extrai varios apps, via ftp transferi para cloud/app..
    Ao clicar em aplicacoes ( +) vejo os app mas não o botão de habilitar, somente o de excluir. e um ver na loja … como segueContacts 1.5.3 Ver na loja ↗ Excluir Habilitar
    Phone Sync 1.12.0 Ver na loja ↗ Excluir
    Spreed.ME 0.3.9 Ver na loja ↗ Excluir
    Tasks 0.9.5 Ver na loja ↗ Excluir
    Video calls 2.0.1 Ver na loja ↗ Excluir

    O que pode estar faltando ?

    Grato,

  9. Vitor disse:

    Olá, poderia fazer um tutorial no caso 1 unico servidor alocando 2 subdominios para usar o nextcloud, seria bem interessante… 😀

    por exemplo, cloud.dominio1.com.br / cloud.dominio2.com.br no mesmo server.

    • VITOR
      Crie dois diretórios dentro de /var/www/ ex:

      # mkdir /var/www/cloud1
      # mkdir /var/www/cloud2

      Depois crie 2 arquivos para configurar seus domínios virtuais no apache, e em cada um deles apontando seu respectivo diretório em /etc/apache2/sites-enabled.
      Ex:

      # vim /etc/apache2/sites-enabled/cloud.dominio1.com.br.conf

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      
      <VirtualHost *:80>
      	ServerName cloud.dominio1.com.br
       
              ServerAdmin seu@email.com.br
              DocumentRoot /var/www/cloud1
      	<Directory /var/www/cloud1/>
          		Options Indexes FollowSymLinks
          		AllowOverride All
      	</Directory>
       
      	LogLevel warn 
              ErrorLog ${APACHE_LOG_DIR}/cloud1_error.log
              CustomLog ${APACHE_LOG_DIR}/cloud1_access.log combined
       
      </VirtualHost>

      # vim /etc/apache2/sites-enabled/cloud.dominio2.com.br.conf

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      
      <VirtualHost *:80>
      	ServerName cloud.dominio2.com.br
       
              ServerAdmin seu@email.com.br
              DocumentRoot /var/www/cloud2
      	<Directory /var/www/cloud2/>
          		Options Indexes FollowSymLinks
          		AllowOverride All
      	</Directory>
       
      	LogLevel warn 
              ErrorLog ${APACHE_LOG_DIR}/cloud2_error.log
              CustomLog ${APACHE_LOG_DIR}/cloud2_access.log combined
       
      </VirtualHost>

      Agora baixe os arquivos do nextcloud dentro de cada diretórios, crie dois bancos de dados, uma para cada dominós e faça a instalação dos mesmo!
      😉

      Se precisar ajuda me chame no telegram @remontti
      Siga o canal no telegram https://t.me/blogremontti

  10. Rogerio Martins disse:

    bom dia, esta dando este erro: Error response from daemon: Cannot start container 8067ae7ff1b3b3163cd37df70d73a7db56f9c54fd3af825b0746dfe1c3e74538: [8] System error: exec format error, pode meajudar?

  11. Renan Lima disse:

    Rudimar Remmontti, Segui a risca novamente este tutorial mas depois que criou um arquivo da ACESSO PROIBIDO, estou usando um dominio um subdominio valido, refiz 3x, vi alguns comments no forum da nexcloud falando a respeito de certificado este problema, pode ser isto? Cara todo processo vai bem mas na hora de abrir um arquivo criado direto no cloud da essa msg.

    alguma dica?

    Abs e vlw

  12. Alex disse:

    Fiz tudo de acordo com o tutorial, porem o meu chega a abrir o Collabora Online mais so fica carregando.
    sabe me dizer o que pode ser?
    obs: maquina nao tem ip valido por isso foi feito redirecionamento de dns e ip para a maquina.

  13. renan disse:

    Já achei onde altera o logo, esquece a pergunta acima, rsrs.

  14. renan disse:

    Olá, tudo bem?
    top o tutorial!
    estou meio perdido em como alterar o index.html, é um pouco diference do que estou acostumado a ver (ja deu pra ver que sou novato nisso) alguem poderia me dizer qual o nome do arquivo corretor para eu alterar a imagem de entrada do login?

  15. Mardonio Alves disse:

    Bom dia , depois de repassar todos os itens , percebi que , depois do “/etc/init.d/docker restart” o collabora não iniciava , precisei executar o comando “docker run -t -d -p 127.0.0.1:9980:9980 -e …..” , e agora sim , tudo funcionando. efetuei um reboot , e tudo certo. rodando liso.

  16. Mardonio Alves disse:

    Excelente tutorial , seguia risca , mas continua dando o erro que encontrava antes nas minhas tentativas de usar o collabora, ao tentar editar o arquivo , aparece uma mensagem de “Acesso proibido” , ja chequei como antes o dono dos arquivos estão com permissão para “www-data” não tenho ideia do que possa ser…

  17. Pablo disse:

    Boa noite estou com seguinte erro ao executar a linha su -s /bin/bash -c “php /var/www/html/occ config:system:set –value=’\OC\Memcache\APCu’ memcache.local” www-data

    com retorno do terminal assim:

    [Symfony\Component\Console\Exception\CommandNotFoundException]
    There are no commands defined in the “config:system” namespace.

    Alguém poderia me ajudar?

  18. Alex disse:

    Rudimar sempre nós trazendo novidades! Parabéns

  1. 19 de dezembro de 2017

    […] :: Nextcloud :: https://nextcloud.com/install/#install-clients Recomendado: Monte sua própria nuvem com NextCloud […]

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *