Implementando uma Cloud de Dados no Debian 9 com o Nextcloud 13 Server

Neste tutorial você aprenderá a instalar uma Cloud de Dados no Debian 9 e não precisará mais guardar seus dados nos “armazenamentos gratuitos, porém obscuros” da internet.

Introdução ao NextCloud

O NextCloud é um Software Livre  gratuita e uma alternativa a outra solução de hospedagem de arquivos de código aberto OwnCloud. A principal diferença do NextCloud do OwnCloud é que o NextCloud é completamente open source. O NextCloud é um servidor de aplicativos de compartilhamento de arquivos auto-hospedado que permite armazenar seus contatos, fotos e documentos pessoais a partir de um local centralizado. O NextCloud elimina a necessidade de usar software de hospedagem em nuvem de terceiros, como o Dropbox, para armazenar seus documentos.

NextCloud vem com muitos recursos, alguns deles estão listados abaixo:

  • Gerenciar usuário e grupo usando OpenID ou LDAP.

  • Acessar, sincronizar e compartilhar seus dados existentes no Dropbox, FTP e NAS.

  • Listar navegadores / dispositivos conectados na página de configurações pessoais. Permite que o usuário desconecte navegadores / dispositivos.

  • Suporta dois sistemas de plugins de autenticação.

  • Permita compartilhar arquivos com outros usuários, criar e enviar links públicos protegidos por senha.

  • Notificá-lo por telefone e área de trabalho quando alguém no servidor compartilha arquivos diretamente com você.

  • Suporta recursos de monitoramento, pesquisa de texto completo, autenticação Kerberos e conferência de áudio / vídeo.

  • Sincronize arquivos com o servidor Nextcloud dos clientes Desktop e Mobile.

Atualização do Sistema Operacional

Antes de começar, como de praxe, é fundamental atualizar o sistema com a última versão estável. Você pode fazer isso executando o seguinte comando:

apt-get update -y
apt-get upgrade -y

Dependendo das atualizações realizadas em seu sistema, pode ser necessário reiniciar seu sistema para que sejam efetivadas todas as mudanças oriundas da atualização. Caso isso seja realmente necessário, faça-o com o comando:

reboot

Iniciando a instalação do NextCloud

Depois de reiniciado o sistema, faça o login com o usuário root e prossiga para a próxima etapa.

Instalando o servidor LAMP

NextCloud é executado usando Apache, MySQL e PHP. Então você precisará instalar todos esses componentes em seu sistema. Primeiro, instale o servidor Apache e MariaDB com o seguinte comando:

apt install apache2 mariadb-server -y

Quando a instalação estiver concluída, inicie o serviço Apache e MariaDB e permita que eles sejam iniciados no tempo de inicialização, executando o seguinte comando:

systemctl start apache2
systemctl enable apache2

systemctl start mysql
systemctl enable mariadb

Em seguida, você também precisará instalar o PHP e outros módulos necessários em seu sistema. Você pode instalar todos eles executando o seguinte comando:

apt install libapache2-mod-php php7.0 php7.0-xml php7.0 php7.0-cgi php7.0-cli php7.0-gd php7.0-curl php7.0-zip php7.0-mysql php7.0-mbstring
wget unzip -y

Configurar o MariaDB

Por padrão, a instalação do MariaDB não é segura, então você será necessário protegê-lo. Isso pode ser feito executando o seguinte comando:

mysql_secure_installation

Para concluir a implementação de segurança no Mariadb, responda todas as perguntas  da instalação da seguinte forma:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Depois que o MariaDB estiver seguro, efetue login no console do MariaDB com o seguinte comando:

mysql -u root -p

Digite sua senha de root quando solicitado e, em seguida, crie um banco de dados para o Nextcloud:

CREATE DATABASE nextclouddb;

Em seguida, crie um nome de usuário e senha para o Nextcloud com o seguinte comando:

CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'mypassword';

Substitua ‘mypassword’ por sua própria senha segura. Em seguida, conceda privilégios ao banco de dados Nextcloud com o seguinte comando:

GRANT ALL PRIVILEGES ON nextclouddb. * TO 'nextcloud' @ 'localhost';

Em seguida, execute o comando FLUSH PRIVILEGES para que a tabela de privilégios seja recarregada pelo MariaDB:

FLUSH PRIVILEGES;

Finalmente, saia do shell do MariaDB com o seguinte comando:

\q

Agora que o banco de dados já está instalado e configurado com segurança, é possível prosseguir para a próxima etapa.

Instalando o NextCloud

Primeiro, você será necessário baixar a versão mais recente do NextCloud, diretamente   no site oficial. Isso pode ser feito com o seguinte comando:

wget https://download.nextcloud.com/server/releases/latest.zip

Depois que o arquivo for baixado, extraia o arquivo baixado com o comando

unzip latest.zip

Em seguida, mova o diretório extraído para o diretório raiz da web do Apache com o seguinte comando:

mv nextcloud /var/www/html/

Em seguida, dê permissão adequada para a próxima nuvem com o seguinte comando:

chown -R www-data: www-data/var/www/html/nextcloud

Em seguida, é necessário  criar um arquivo de Host Virtual do Apache para o NextCloud. Você pode fazer isso criando o arquivo nextcloud.conf da seguinte maneira:

nano /etc/apache2/sites-available/nextcloud.conf

Adicione as seguintes linhas:

<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot "/var/www/html/nextcloud"
ServerName IP-do-Servidor
<Directory "/var/www/html/nextcloud/">
Options MultiViews FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
TransferLog /var/log/apache2/nextcloud_access.log
ErrorLog /var/log/apache2/nextcloud_error.log
</VirtualHost>

Salve e feche o arquivo, ative o arquivo host virtual NextCloud e desative o arquivo host virtual padrão com o seguinte comando:

a2dissite 000-default

a2ensite nextcloud

Finalmente, reinicie o serviço apache para aplicar estas mudanças:

systemctl restart apache2

Acesse a Interface da Web do NextCloud

Antes de acessar o seu NextCloud, é necessário ter ciência de 2 coisas importantes:

  1. Lembre-se que, por se tratar de um serviço que rodará sobre o Apache, utilizando o protocolo http, mesmo que o Servidor de Arquivo esteja sendo configurado para uso em rede local, caso existe um Filtro de Pacotes (firewall) na sua rede, será necessário permitir acesso à porta 80, que é a porta padrão do protocolo http.
  2. Agora, caso a intenção ao implementar o Servidor de Arquivos seja colocá-lo diretamente na internet, ou seja, acessível de qualquer lugar do mundo. o Filtro de Pacotes deixa de ser opcional e passa a ser um requisito básico obrigatório para a implementação segura.

Por fim, abra seu navegador da Web e navegue até o URL http://IP-do-Servidor e você verá a seguinte tela:

NextCloud Login
Figura 01: Configuração do Servidor NextCloud

Forneça todas as informações necessárias, como nome de usuário, senha, nome do banco de dados, nome de usuário do banco de dados e senha, e clique no botão Concluir instalação. Você deve ver o painel NextCloud na seguinte tela:

Figura 02 – Apresentação do NextCloud no 1º login
Figura 03 – Dashboard do NextCloud

Pronto! O Servidor já está montado e pronto para uso nos mais variados dispositivos, seja desktop ou Smartphone.  Mas a configuração do NextCloud em modo cliente vai ficar para o próximo post.

Informações sobre o NextCloud podem ser obtidas no site oficial: https://nextcloud.com

Esperamos que este tutorial possa ajudá-lo!

Abraços e até a próxima!!!