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

Serviços como o Dropbox facilitam o acesso aos 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 por meio de 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 você faria com o Dropbox, Onedrive ou Google Drive. Além disso, o Nextcloud possui um ecossistema de aplicativos vibrante que permite que você faça mais do que apenas sincronizar arquivos. Você pode usar Nextcloud para calendário e gerenciamento de 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ê quem deve consertar.

A boa notícia é que há 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 da web Nextcloud padrão.

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

Um servidor virtual executando Ubuntu 18.04
O shell Bash na área de trabalho do seu computador.
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, no entanto, incluindo Linode ou AWS. Seja qual for 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 eles têm como objetivo colocar um servidor em funcionamento com alguns cliques do mouse. Para começar, recomendamos que você use um servidor de nível básico para teste até se acostumar com o Nextcloud. Digital Ocean’s O droplet de $ 5 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.

A menos que você se sinta confortável 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 familiarizado com a linha de comando, poderá verificar as páginas de ajuda do 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 ssh na janela do terminal para instalá-lo.

Quando você compra um nome de domínio, ele 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

Para deixar seu servidor pronto 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 uma senha 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 [email protected]

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, mas não coloque no lugar errado ou esqueça!

Agora você está dentro do seu servidor remoto e é hora de começar a 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 [email protected]

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.

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

ufw permitir 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

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 de 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 conhecido Quadrinhos 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 wdzwdzTest.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á-los 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á até 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.

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

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 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

Depois de “–value =”, digite 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 imprimir algo como a imagem abaixo.

O

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.

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 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

Impulsionando 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, faça login no servidor usando o terminal e digite 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!