Nextcloud: Crie sua própria sincronização de arquivos em nuvem em menos de 30 minutos!

Foto do autor

By luis

Ferramentas como o Dropbox simplificam o acesso aos seus arquivos em diversos dispositivos. Entretanto, talvez você deseje um controle mais rigoroso sobre eles. Em menos de meia hora, é possível implementar seu próprio serviço de sincronização na nuvem, instalado em um servidor sob seu domínio, utilizando o Nextcloud.

O que é o Nextcloud?

O Nextcloud é um software de código aberto que viabiliza a sincronização de arquivos entre seu computador e outros dispositivos, similar ao que ocorre com Dropbox, OneDrive ou Google Drive. Adicionalmente, o Nextcloud possui um ecossistema dinâmico de aplicativos, permitindo realizar ações que vão além da simples sincronização de arquivos. Você pode empregar o Nextcloud para gestão de calendários e contatos, ou ainda para executar um cliente de e-mail IMAP baseado na web. É possível até mesmo configurar um sistema de chat ao vivo exclusivo para você e para quem mais tiver acesso ao seu servidor.

Contudo, antes de prosseguirmos, é crucial um alerta: ao começar a utilizar o Nextcloud, a responsabilidade pela manutenção do servidor recai sobre você. Isso significa que, além de administrar o software Nextcloud, você deve assegurar que o sistema operacional subjacente do servidor esteja sempre atualizado com as correções de segurança. Servidores Nextcloud geralmente operam sem problemas, mas caso ocorra alguma falha, a solução será sua responsabilidade.

A boa notícia é que existem muitos blogs, fóruns e páginas de suporte que podem auxiliar na resolução de problemas. Caso você se depare com algum, é provável que outros já o tenham enfrentado, e a solução esteja disponível.

O que você precisará

Para iniciar a utilização do Nextcloud, você necessitará dos seguintes três elementos:

  • Um servidor virtual rodando Ubuntu 18.04
  • Um shell Bash no seu computador
  • Um nome de domínio

Para fins ilustrativos, criaremos vários nomes de usuário e senhas, incluindo:

  • O nome de usuário root e a senha do seu servidor.
  • Um nome de usuário e senha comuns do servidor com privilégios administrativos.
  • Um nome de usuário e senha para o Nextcloud.

Neste guia, utilizaremos um servidor virtual com Ubuntu 18.04 da DigitalOcean. Entretanto, você pode escolher qualquer fornecedor de sua preferência, incluindo Linode ou AWS. Independentemente do serviço escolhido, é fundamental que ele execute o Ubuntu 18.04 (a versão de suporte de longo prazo mais recente até o momento) para evitar possíveis problemas.

Cada fornecedor de servidor virtual opera de maneira ligeiramente diferente, mas todos compartilham o objetivo de colocar um servidor em funcionamento com poucos cliques. Para começar, sugerimos usar um servidor de nível básico para fins de teste até que você se familiarize com o Nextcloud. O “droplet” de $5 da Digital Ocean oferece 1 GB de RAM, 1 núcleo de CPU, 1 TB de transferência de dados e 25 GB de armazenamento. A Linode oferece um VPS similar pelo mesmo custo.

A menos que você se sinta confortável com chaves SSH, solicite ao seu fornecedor os dados de login root com base em senha para começar. Uma vez que seu servidor esteja ativo e você esteja familiarizado com a linha de comando, você pode consultar as páginas de ajuda do seu provedor sobre como adicionar chaves SSH para um login mais seguro.

Se seu computador opera com Windows 10, será necessário instalar o subsistema Windows para Linux e obter um shell Bash com utilitários do Linux para continuar. Se você utiliza Linux ou macOS, o programa Terminal será suficiente. A maioria dos terminais Bash já vêm com SSH instalado, mas, caso contrário, basta digitar sudo apt-get install ssh na janela do terminal para instalá-lo.

Ao adquirir um nome de domínio, ele não precisa ser necessariamente um endereço .COM. Ele será utilizado apenas por você, seus amigos e familiares próximos. Por exemplo, é possível encontrar um nome de domínio .XYZ por apenas $1 ao ano, que funcionará perfeitamente.

Preparando o seu servidor

Para preparar seu servidor para operação, é necessário configurar uma conta de usuário regular com privilégios administrativos. É altamente desaconselhável realizar o login como usuário root após a configuração inicial.

Neste ponto, você já deve ter um endereço IP e uma senha root fornecidos pelo seu provedor de servidor. O endereço IP é o meio pelo qual você se conecta ao servidor, e a senha permite o acesso.

Para começar, digite o seguinte (substituindo o “X” pelo endereço IP do seu servidor) e pressione Enter:

ssh [email protected]

Nosso endereço IP é 165.22.81.172, então o inserimos em nosso comando. Se tudo ocorrer como planejado, o servidor remoto (onde você instalará o Nextcloud) solicitará uma senha. Digite a senha fornecida pelo seu provedor de servidor.

Em seguida, você será solicitado a definir uma nova senha para o usuário root. Escolha a que preferir, mas anote-a em local seguro para não a esquecer!

Agora você está dentro do seu servidor remoto e pronto para começar a trabalhar. Pressione Enter após cada comando deste artigo para executá-lo.

Primeiro, digitamos o seguinte para adicionar um novo usuário ao servidor:

adduser ian

Substitua “ian” pelo nome de usuário que você deseja usar. Após executar este comando, será solicitado que você defina uma senha para o novo usuário. Em seguida, as informações adicionais que o servidor solicita são opcionais; caso não queira fornecê-las, continue pressionando Enter.

Em seguida, digitamos o seguinte para conceder privilégios administrativos ao nosso novo usuário:

usermod -aG sudo ian

Novamente, substitua “ian” pelo nome de usuário que você escolheu anteriormente.

Agora, abra uma segunda janela de terminal e digite o seguinte para garantir que as novas contas de usuário estão funcionando:

ssh [email protected]

Novamente, substitua o comando acima pelo seu nome de usuário e endereço IP do seu servidor. Digite a senha que você criou para esta conta de usuário quando solicitado. Se funcionar, volte para a janela do terminal na qual você está logado como usuário root.

Agora, digitamos o seguinte para garantir que o firewall do Ubuntu esteja operando corretamente:

ufw allow OpenSSH
ufw enable
ufw status

Este último comando de status deve retornar algo similar à imagem abaixo, confirmando que o firewall não bloqueará o SSH.

A parte “80, 443 / tcp” não estará visível ainda, mas trataremos dela mais adiante. Agora, vamos fechar a janela root e retornar à segunda janela do terminal com o usuário regular.

Instalando o Nextcloud

Houve um tempo em que era necessário configurar e instalar separadamente o software Nextcloud, PHP, software de servidor web e banco de dados.

É muito mais simples utilizar o pacote oficial do Snap, que cuida de tudo com um único comando. Não há problemas com o banco de dados ou necessidade de se preocupar se o Apache ou Nginx está servindo o seu site.

Se você quiser saber exatamente o que o pacote Snap instala (spoiler: é o resto da pilha LAMP, mais Redis), consulte o repositório do snap do Nextcloud no GitHub.

Digitamos o seguinte:

sudo snap install nextcloud

O “sudo” no início eleva a conta do usuário regular para que ela tenha direitos administrativos temporários. Você será solicitado a fornecer sua senha para fazê-lo. Se tudo correr bem, em um ou dois minutos, o Nextcloud estará instalado e (quase) pronto para operação.

Em seguida, digitamos o seguinte para criar uma nova conta de usuário do Nextcloud, que poderá fazer login em nosso site:

sudo nextcloud.manual-install ianpaul correctHorseBatteryStaple

Em vez de “ianpaul”, digite o nome de usuário que deseja usar para fazer login no Nextcloud. O trecho “correctHorseBatteryStaple” é nossa senha. Não a utilize – ela é de um famoso quadrinho XKCD e serve apenas como exemplo.

Gerenciando Domínios

Para simplificar, não utilizaremos um endereço IP para acessar nosso servidor. Em vez disso, empregaremos um nome de domínio, que, como mencionado, pode ser adquirido por apenas $1 ao ano. Para nosso exemplo, utilizaremos wdzwdzTest.xyz.

Após obter um domínio, você precisará gerenciar as configurações de DNS do seu registrador de domínio (onde o adquiriu) e direcioná-las para o seu provedor de servidor. Caso tenha escolhido a DigitalOcean, por exemplo, estas configurações seriam ns1.digitalocean.com, ns2.digitalocean.com e ns3.digitalocean.com.

Em seguida, acesse o provedor do servidor (por exemplo, DigitalOcean, Linode ou qualquer outro que você tenha escolhido) e adicione o novo domínio à sua conta. Será necessário adicionar um registro A que aponte para seu endereço IP, um registro CNAME se você não desejar utilizar “www” o tempo todo e registros NS se eles não forem adicionados automaticamente.

A imagem abaixo ilustra um exemplo da DigitalOcean.

Tecnicamente, o domínio pode levar até 24 horas para se tornar acessível, mas geralmente começa a funcionar em poucos minutos.

Retornando ao Nextcloud

Com o domínio configurado, podemos voltar para finalizar o Nextcloud no terminal. Caso você tenha se desconectado do servidor com sua conta de usuário regular ([email protected] em nosso exemplo), faça login novamente.

Agora, digitamos o seguinte para adicionar nosso novo domínio ao Nextcloud:

sudo nextcloud.occ config:system:set trusted_domains 1 –value=wdzwdztest.xyz

Após “–value=”, insira seu domínio em vez do nosso (wdzwdztest.xyz).

Em seguida, digitamos o seguinte para garantir que nosso novo domínio foi adicionado corretamente:

sudo nextcloud.occ config:system:get trusted_domains

O terminal deve exibir algo semelhante à imagem abaixo.

Em seguida, digitamos o seguinte para garantir que podemos utilizar as portas desejadas, permitindo que elas passem pelo firewall:

sudo ufw allow 80,443/tcp

A porta 80 é empregada para tráfego HTTP não criptografado, enquanto a 443 é para SSL/TLS.

Falando nisso, precisaremos de um certificado SSL/TLS gratuito do Let’s Encrypt, então digitamos o seguinte:

sudo nextcloud.enable-https lets-encrypt

Assim que o gerador do Let’s Encrypt começar a operar, ele solicitará um endereço de e-mail e seu nome de domínio do Nextcloud. Basta seguir as instruções e você terá um certificado de site seguro em pouco tempo. Se o Let’s Encrypt funcionar, é hora de testar sua configuração.

Acesse seu novo domínio (como nosso wdzwdztest.xyz). Você deverá ver uma página de login do Nextcloud (veja abaixo) com um ícone de cadeado na barra de endereço.

Se a página de login for exibida, você está pronto para começar. Caso contrário, aguarde algumas horas e tente novamente. Se desejar solucionar o problema imediatamente, você pode verificar se o servidor responde através do endereço IP.

Para que isso funcione, devemos digitar o seguinte para adicionar o endereço IP aos nossos domínios confiáveis:

sudo nextcloud.occ config:system:set trusted_domains 2 –value=165.22.81.172

Note que utilizamos “trusted_domains 2” e não “trusted_domains 1”. Se você simplesmente repetir “domínio_confiável 1”, substituirá seu nome de domínio real na lista de domínios confiáveis e não poderá usá-lo.

Feito isso, insira o endereço IP na barra de endereços do seu navegador e você deverá ver a página de login acima. Caso contrário, algo está errado com a instalação.

Como não temos um certificado SSL para o endereço IP, não será possível efetuar o login de forma segura. Por esta razão, sugerimos que você remova o IP da lista de domínios confiáveis após confirmar que o servidor está operando. Para isso, digite o seguinte:

sudo nextcloud.occ config:system:delete trusted_domains 2

Otimizando o desempenho

Se seu servidor Nextcloud não estiver operando corretamente, pode ser necessário aumentar o limite de memória. Por padrão, ele é de 128 MB. Para aumentá-lo para 512 MB, faça login no servidor utilizando o terminal e digite o seguinte:

sudo snap set nextcloud php.memory-limit=512M

Agora que o Nextcloud está instalado e operando, você pode fazer login, explorar os aplicativos disponíveis, compartilhar arquivos com outros e instalar o Nextcloud em seu desktop e dispositivos móveis para sincronização entre diversos aparelhos. O Nextcloud oferece ferramentas de sincronização para desktop e aplicativos móveis para Windows, Mac, Linux, iPhone, iPad e Android.

Seja bem-vindo à sua nuvem pessoal!