Instalação de servidor NextCloud

Nuvem base do sistema armazenamento.ct.

A máquina atual foi preparada com dois HDs. Um está somente com o SO, que neste caso é Debian 9.

O segundo HD irá armazenar os arquivos do sistema NextCloud instalado. O mesmo foi formatado em ext4 com uma única partição e definido como ponto de montagem /arquivos.

 

Pré-preparação do servidor:

O servidor deve possuir instalados a base AMP (Apache2, MySQL, PHP).

 

Agora a instalação do Nextcloud:

cd /var/www/html

wget https://download.nextcloud.com/server/releases/nextcloud-nextcloud-***VERSAO***.zip –no-check-certificate

unzip nextcloud-***VERSAO***.zip

chown -R www-data. /var/www/nextcloud

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

a2enmod rewrite

a2enmod headers

/etc/init.d/apache2 restart

Em seguida, cria-se o usuário nextcloud no banco de dados:

mysql -u root -p -e “CREATE DATABASE nextcloud character set utf8 collate utf8_bin; GRANT ALL PRIVILEGES ON nextcloud.* TO ‘nextcloud’@’localhost’ IDENTIFIED BY ‘**COLOQUE UMA SENHA AQUI, que será a senha do usuário nextcloud**’;”

Digite a senha do usuário root do mysql para confirmar a instrução acima.

Acesse o endereço do servidor no navegador para prosseguir com a instalação.

Não esqueça de mudar a pasta de dados, se você montou um HD separado para tal. Se for usar a pasta separada, ela deve ter permissão para o usuário www-data.

Altere os seguintes parâmetros para otimização do sistema nextcloud.

chmod 777 /var/www/html/nextcloud/occ

su -s /bin/bash -c “php /var/www/html/nextcloud/occ config:system:set –value=’\OC\Memcache\APCu’ memcache.local” www-data

Pronto, o servidor base está instalado.

Vamos então configurar a entrada de domínio.

<VirtualHost *:80>
ServerName armazenamento.ct.utfpr.edu.br
ServerAdmin cogeti-ct@utfpr.edu.br

DocumentRoot /var/www/html/nextcloud

<Directory /var/www/html/nextcloud/>
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>

Edite o arquivo config/config.php

[…]
‘trusted_domains’ =>
array (
0 => ‘armazenamento.ct.utfpr.edu.br’,
),
[…]
‘overwrite.cli.url’ => ‘https://armazenamento.ct.utfpr.edu.br’,
[…]

 

Vamos prosseguir com a instalação do Collabora Online, para edição de arquivos na nuvem.

apt install docker.io

Edite o arquivo /etc/default/docker:

DOCKER_OPTS=”–storage-driver=devicemapper”

Segue os comandos:

systemctl enable docker

docker run -t -d -p 127.0.0.1:9980:9980 -e ‘domain=armazenamento\\.ct\\.utfpr\\.edu\\.br’ –restart always –cap-add MKNOD collabora/code

/etc/init.d/docker restart

a2enmod proxy

a2enmod proxy_wstunnel

a2enmod proxy_http

Edite /etc/apache2/sites-enabled/armazenamento.ct.utfpr.edu.br-le-ssl.conf, entre “Include /etc/letsencrypt/options-ssl-apache.conf” e “</VirtualHost>” adicione:

# 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

Após isso, reinicie o serviço apache2.

Em seguida, adicione o App “Collabora” na plataforma armazenamento.