Como construir sua própria sincronização de arquivos em nuvem com Nextcloud

O logotipo "Nextcloud".
Nextcloud

Serviços como o Dropbox tornam mais fácil para você acessar seus arquivos em vários dispositivos. No entanto, você pode querer mais controle sobre eles. Em menos de 30 minutos, você pode ter seu próprio serviço de sincronização em nuvem instalado e funcionando em um servidor que você controla via  Nextcloud .

O que é Nextcloud?

Nextcloud é um software de código aberto que permite sincronizar arquivos entre o seu PC e outros dispositivos, da mesma forma que faria com o Dropbox, Onedrive ou Google Drive. Além disso, o Nextcloud possui um vibrante ecossistema de aplicativos que permite que você faça mais do que apenas sincronizar arquivos. Você pode usar o Nextcloud para gerenciamento de calendário e contatos ou para executar um cliente de e-mail IMAP baseado na web. Você pode até configurar um programa de chat ao vivo exclusivamente para você e qualquer outra pessoa que possa acessar seu servidor.

Antes de entrarmos em detalhes, porém, há um aviso. Depois de começar a usar o Nextcloud, cabe a você manter o servidor. Isso significa que, além de gerenciar o software Nextcloud, você deve garantir que o sistema operacional do servidor subjacente esteja atualizado com os patches. Os servidores Nextcloud geralmente não apresentam problemas, mas se algo der errado, você deve consertar.

A boa notícia é que existem muitos blogs, fóruns e páginas de ajuda para ajudá-lo na solução de problemas. Se você encontrar um problema, provavelmente já aconteceu com outra pessoa e há uma solução por aí.

O que você precisará

A interface Nextcloud.
A interface da web padrão do Nextcloud.

Você precisará dos três itens a seguir para começar a usar o Nextcloud:

  1. Um servidor virtual executando Ubuntu 18.04
  2. O shell Bash na área de trabalho do seu computador.
  3. Um nome de domínio.

Para nossos exemplos, criaremos vários nomes de usuário e senhas, incluindo o seguinte:

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

Para os fins deste tutorial, estamos usando um servidor virtual executando Ubuntu 18.04 da DigitalOcean. Você pode usar qualquer provedor de sua preferência , incluindo  Linode ou AWS . Qualquer que seja o serviço que você escolher, a chave é executar o Ubuntu 18.04 (a versão de suporte de longo prazo atual até o momento) para evitar quaisquer problemas potenciais.

Cada provedor de servidor virtual é um pouco diferente, mas todos visam fazer com que um servidor esteja pronto e funcionando com alguns cliques do mouse. Para começar, recomendamos que você use um servidor de nível básico como teste até se acostumar com o Nextcloud. A gota 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 semelhante pelo mesmo preço.

Recomendado:  Como ouvir música da Apple em um PC com Windows

A menos que você esteja familiarizado com as chaves SSH, peça ao seu provedor os detalhes de login do root com base em senha para começar. Depois que seu servidor estiver em execução e você estiver confortável com a linha de comando, pode verificar as páginas de ajuda do seu provedor sobre como adicionar chaves SSH para um login mais seguro.

Se o seu computador executa o Windows 10, você precisará instalar  o subsistema do Windows para Linux e obter um shell Bash com utilitários do Linux para continuar. Se você usa Linux ou macOS, o programa Terminal é tudo de que você precisa. A maioria dos terminais Bash vem com SSH instalado, mas, se não, basta digitar  sudo apt-get install sshna janela do terminal para instalá-lo.

Quando você  compra um nome de domínio , não precisa ser um endereço .COM. Somente você e seus amigos próximos e familiares irão usá-lo. Por exemplo, encontramos um nome de domínio .XYZ por apenas $ 1 por ano, que funcionará perfeitamente.

Preparando seu servidor

Um homem parado em um data center.
Gorodenkoff / Shutterstock

Para preparar o seu servidor para a ação, você precisa configurar uma conta de usuário regular com privilégios administrativos. É uma ideia terrível, terrível fazer o login como o usuário root todo-poderoso após a configuração inicial.

Agora, você deve ter um endereço IP e senha de root do seu provedor de servidor. O endereço IP é como você se conecta ao servidor, e a senha permite que você entre.

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

ssh root@XXX.XX.XX.XXX

Nosso endereço IP é 165.22.81.172, então o digitamos em nosso comando. Se tudo correr conforme o planejado, o servidor remoto (onde você colocará o Nextcloud) pedirá uma senha. Digite a senha fornecida pelo provedor do servidor.

Em seguida, você será solicitado a definir uma nova senha para o root. Escolha o que quiser, apenas não coloque no lugar errado ou esqueça!

Agora você está dentro de seu servidor remoto e é hora de trabalhar. Pressione Enter após cada comando neste 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 deseja usar. Depois de executar esse comando, será solicitado que você forneça uma senha ao novo usuário. Depois de fazer isso, o restante das informações que o servidor solicita são opcionais; se você não quiser fornecê-lo, continue pressionando Enter.

Em seguida, digitamos o seguinte para dar 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, abrimos uma segunda janela de terminal e digitamos o seguinte para garantir que as novas contas de usuário funcionem:

ssh ian@165.22.81.172

Novamente, substitua o 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 root.

Recomendado:  A Microsoft coloca “clientes valiosos” na frente dos escaladores do Xbox

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

ufw allow OpenSSH
ufw enable
ufw status

Esse último comando de status deve retornar algo como a imagem abaixo, confirmando que o firewall não bloqueará o SSH.

A saída do comando "ufw status" em uma janela de terminal.

Você não verá a parte “80, 443 / tcp” ainda, mas veremos isso mais tarde. Agora, vamos fechar a janela raiz e retornar à segunda janela do terminal com o usuário regular.

Instalando Nextcloud

Houve um tempo em que você tinha que configurar e instalar o software Nextcloud, PHP, software de servidor da web e banco de dados, todos separadamente.

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

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

Nós digitamos o seguinte:

sudo snap install nextcloud

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

Em seguida, digitamos o seguinte para criar uma nova conta de usuário do Nextcloud que pode entrar 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 bit “correctHorseBatteryStaple” é a nossa senha. Não use – é de um quadrinho muito conhecido do  XKCD  e é apenas um exemplo.

Lidando com Domínios

Para facilitar a vida, não queremos usar um endereço IP o tempo todo para acessar nosso servidor. Em vez disso, usaremos um nome de domínio, que, novamente, você pode obter por apenas $ 1 por ano. Para nosso exemplo, estamos usando HowToGeekTest.xyz.

Depois de ter um domínio, você desejará gerenciar as configurações de DNS de seu registrador de domínio (onde você comprou o domínio) e apontá-las para seu provedor de servidor. Se você escolheu DigitalOcean, por exemplo, essas configurações seriam ns1.digitalocean.com, ns2.digitalocean.com e ns3.digitalocean.com.

Em seguida, vá para o provedor do servidor (por exemplo, DigitalOcean, Linode ou o que você escolher) e adicione o novo domínio à sua conta. Você precisará adicionar um registro A que aponte para seu endereço IP, um registro CNAME se não quiser usar “www” o tempo todo e registros NS se eles não forem adicionados automaticamente.

A imagem abaixo mostra um exemplo da DigitalOcean.

Uma grade de registros DNS da DigitalOcean.

Tecnicamente, pode levar até 24 horas para que seu domínio esteja disponível, mas geralmente começa a funcionar em alguns minutos.

Recomendado:  Por que as TVs não atacam mais você com estática?

Voltar para Nextcloud

Com o domínio configurado, podemos voltar a terminar o Nextcloud no terminal. Se você se desconectou do servidor com sua conta de usuário normal (ian@165.22.81.172 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=howtogeektest.xyz

Depois de “–value =”, digite  seu domínio em vez do nosso (howtogeektest.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 imprimir algo como a imagem abaixo.

O comando "sudo nextcloud.occ config: system: get trusted_domains" em uma janela de terminal.

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

sudo ufw allow 80,443/tcp

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

Falando nisso, vamos precisar de um certificado SSL / TLS grátis do Let’s Encrypt, então digitamos o seguinte:

sudo nextcloud.enable-https lets-encrypt

Uma vez que o gerador Let’s Encrypt começa a funcionar, ele pede um endereço de e-mail e seu nome de domínio Nextcloud. Basta seguir as instruções e você terá um certificado de site seguro em nenhum momento. Se Let’s Encrypt funcionar, é hora de testar sua configuração.

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

A página de login do Nextcloud.

Se você vir a página de login, está pronto para começar. Caso contrário, espere algumas horas e tente novamente. Se quiser solucionar o problema imediatamente, você pode ver se o servidor responde via endereço IP.

Para que isso funcione, temos que 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

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

Feito isso, digite 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 fazer o login com segurança. Por esse motivo, sugerimos que você exclua o IP da lista de domínios confiáveis ​​após confirmar que o servidor está funcionando. Para fazer isso, digite o seguinte:

sudo nextcloud.occ config:system:delete trusted_domains 2

Melhorar o desempenho

Se o seu servidor Nextcloud não estiver funcionando bem, pode ser necessário aumentar o limite de memória. Por padrão, é 128 MB. Para aumentar para 512 MB, você deve fazer login no servidor usando o terminal e digitar o seguinte:

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

Agora que o Nextcloud está instalado e funcionando, você pode fazer login, examinar os aplicativos disponíveis, compartilhar arquivos com outras pessoas e instalar o Nextcloud em seu desktop e dispositivos móveis para sincronização de vários dispositivos. Nextcloud oferece ferramentas de sincronização de desktop e aplicativos móveis para Windows, Mac, Linux, iPhone, iPad e Android.

Bem-vindo à sua caixa de depósito pessoal!