Servidor de arquivos com Raspberry Pi e Nextcloud 11

Como já vimos, a Raspberry Pi é uma placa muito poderosa para seu tamanho, que permite rodar o sistema operacional Linux. É de se esperar que várias aplicações diferentes surjam, levando recursos antes somente do desktop para a diminuta peça. Dessa vez, porém, vamos além do desktop, mirando nas nuvens com a criação de um servidor de arquivos usando Nextcloud!

Quem já usou serviços como Google Drive, Microsoft OneDrive e Dropbox, frequentemente deve se perguntar se os serviços se preocupam com a privacidade dos dados. Por mais que as empresas responsáveis garantam que a privacidade é a primeira premissa em seu desenvolvimento, muitos usuários se sentem inseguros em deixar os arquivos nas mãos de terceiros. Afinal de contas, “não existe nuvem, é apenas o computador de outra pessoa”

Apresentando Nextcloud

O Nextcloud vem justamente resolver esse problema. Ele é um servidor de arquivos que permite acesso externo e seguro, basicamente um servidor de arquivos em nuvem privada! Foi criado a partir de outro servidor, o Owncloud. A escalabilidade dele é muito consistente, permitindo a utilização desde à uma interface web para arquivos de um cartão SD, até um cluster de arquivos privados de qualquer lugar do mundo, dependendo apenas da sua conexão com a Internet. Se você tiver a intenção de trafegar/sincronizar vários arquivos fora da rede simultaneamente, e ininterruptamente, a velocidade total vai depender quase em sua totalidade da própria conexão.

Nextcloud

Além de uma interface web, o Nextcloud conta com aplicativos mobile (Android e iOS), e um cliente desktop (Windows, macOS e Linux) que lhe permite usá-lo como sincronizador de arquivos, dependendo somente da rede local.

Instalação Apache e PHP

Como dito anteriormente, o Nextcloud possui versões para Windows, macOS e Linux. Nesse exemplo iremos utilizar a distribuição Raspbian Stretch para instalação do Nextcloud na Raspberry Pi 3 Model B. Para tal, precisamos que o cartão SD rodando na placa esteja com o Raspbian Stretch configurado e conectado à rede. Antes de mais nada, atualizar o sistema é sempre uma boa prática, com os comandos a seguir executados no Terminal:

sudo apt-get update
sudo apt-get upgrade

O Nextcloud roda em cima de um servidor web, pois ele provê uma interface via browser para gerenciamento dos arquivos. Como é desenvolvido usando linguagem PHP, precisaremos instalar o servidor web Apache para sua execução satisfatória. Em teoria, qualquer servidor web que rode PHP suporta a instalação do Nextcloud, mas nesse tutorial seguiremos com o Apache.

sudo apt-get install apache2

É necessário verificar se o Apache foi instalado corretamente. Para isso, no browser, devemos digitar o endereço IP ao qual a Raspberry está vinculada. O comando ifconfig permite descobrir o IP de maneira mais fácil. Se a placa estiver conectada via cabo, retornaremos o IP através do comando

ifconfig eth0

Para conexões sem fio, através do adaptador wireless, teremos

ifconfig wlan0

Em ambos os casos, o endereço IP atribuído estará próximo à palavra “inet”, na segunda linha. Informando o endereço no browser, teremos a seguinte tela, caso o Apache tenha sido instalado corretamente.

Página web padrão

Precisamos agora instalar o PHP7 e demais componentes para que se integrem ao Apache, permitindo que aplicações web escritas em linguagem PHP (como o Nextcloud!) possam rodar sem problemas. Vamos instalar diversos pacotes, por isso o processo pode ser demorado

sudo apt-get install php7.0 php7.0-bz2 php7.0-cli php7.0-curl php7.0-fpm php7.0-gd php7.0-intl php7.0-json php7.0-mbstring php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-sqlite3 php7.0-xml php7.0-zip php-apcu php-pear libapache2-mod-php7.0

Após a instalação dos pacotes do PHP, reiniciamos o servidor apache através do comando

sudo service apache2 restart

Instalação Nextcloud

O Apache possui uma pasta onde as aplicações rodam nativamente. Antes de baixar/instalar o Nextcloud, mudamos para ela

cd /var/www/html

Agora sim, fazemos o download da última versão do Nextcloud, descompactando-o em seguida

curl https://download.nextcloud.com/server/releases/latest.tar.bz2 | sudo tar -jxv

Mudamos para a pasta do Nextcloud, criada após o download

cd /var/www/html/nextcloud

Criamos uma pasta de data

sudo mkdir -p /var/www/html/nextcloud/data

E alteramos as permissões da pasta para que o Nextcloud possa escrever nela

sudo chown www-data:www-data /var/www/html/nextcloud/data
sudo chmod 750 /var/www/html/nextcloud/data
sudo chown www-data:www-data config apps

Tudo instalado, agora vamos à configuração

Configurando Nextcloud na primeira execução

Para acessar o Nextcloud, vamos diretamente ao browser, informando o endereço http://MEUENDERECOIP/nextcloud, o que nos retorna a seguinte página

Configuração Nextcloud

Informe um usuário e senha que você se lembre, e estamos prontos para concluir a configuração, exibindo uma lista de arquivos e pastas previamente configurados!

Servidor de arquivos com Nextcloud

Considerações Finais sobre o servidor de arquivos com Nextcloud

Essa é apenas a interface web do Nextcloud. É possível abrí-lo para acesso externo através de configurações do roteador e servidos de DNS específicos, além de expandir o armazenamento para uso com HDs externos, pen drives e demais dispositivos USB. A utilização de aplicativos mobile para controle de arquivos e sincronia de fotos também é amplamente utilizada no servidor de arquivos, levando realmente um pedaço da nuvem para sua placa Raspberry Pi. Nos próximos artigos vamos abordar também alguns desses recursos, juntamente com um servidor de mídia.

Gostou do post do servidor de arquivos com Raspberry Pi? Deixe seu comentário logo abaixo. Em caso de dúvidas, caso queira trocar uma ideia, ou até mesmo dividir seu projeto, acesse nosso Fórum!

CTA_guia raspberry pi para iniciantes

Posts Relacionados

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

11 Comentários

  1. Alliston, muito bom post, meus parabéns!

    Tenho somente dois complementos que gostaria de fazer ao artigo:

    1) Somente a partir das versões mais novas do Raspbian (versões acima da Jessie) que o php7 está disponível para download via gerenciador de pacotes (apt-get). Eu experimentei utilizar o php5 (que está presente no gerenciador de pacotes da versão Jessie e anteriores) e funcionou bem! Para instalar todos os módulos de php5 necessários, utilize o comando abaixo:

    sudo apt-get install -y php5 php5-gd sqlite php5-sqlite php5-curl

    2) Fiz testes com o nextcloud utilizando como banco de dados o SQLite e vi que ele é muito suscetível a corromper-se. Consegui corromper só de mandar a placa dar shutdown enquanto acessava o nextcloud via navegador.
    Portanto, recomendo fortemente o uso do MySQL coo banco de dados (fiz testes e se mostrou muito mais robusto e estável. Para mais informações de como utiizá-lo, veja esse site: http://unixetc.co.uk/2016/11/20/simple-nextcloud-installation-on-raspberry-pi/

    Espero ter contribuído para seu post. Novamente, parabéns pelo post!

    Atenciosamente,
    Pedro Bertoleti

    1. Grande Pedro!

      Muito obrigado, pelos parabéns e pelos complementos. Enriqueceu ainda mais o post, o que dá mais capacidade de escolha para os leitores que estão querendo customizar o servidor. Sempre bom poder contar com um apoio desse nível!

      Um grande abraço!

  2. Muito legal o tutorial. Teria como colocar dois hds em raid 1 e deixar o servidor mais seguro? Obrigado

    1. Oi Danilo! Tem sim, tanto o raid quanto a melhoria de segurança. Mas aí você teria que configurar a partir do Raspbian, e talvez até pelo seu roteador. Já foge da proposta do Plex em si.

      Abraços!

  3. Olá, tenho milhões de dúvidas, vamos começar pela mais básica, pelo que entendi o Apache e o PHP são nativos mas não estão instalados corretos?
    Pq não vi informações de onde baixar esses pacotes, apenas o comando para instalar.

    1. Vamos lá Allan! Pode mandar todo o milhão de dúvidas que trocamos algumas ideias!
      Sobre Apache e PHP, eles não são nativos. São pacotes (servidor web e linguagem de programação, respectivamente), que você pode instalar em qualquer lugar, seja Windows, Linux ou macOS.
      A maneira mais direta de instalá-los no Linux é justamente executando esses comandos. Digamos que seja a maneira “oficial” da comunidade. Para baixar, existe o XAMPP, por exemplo, que instala MySql e Perl além dos pacotes previamente ditos. Mas como você pode ver, instala mais coisas do que o necessário.

  4. Olá! sou iniciante nesse mundo mas consegui fazer funcionar aqui pelo seu tutorial!

    Tenho algumas duvidas, como por exemplo:
    a) onde ficam os arquivos (local no raspi) utilizando a configuração padrão feita aqui no tutorial?

    b) como posso alterar o local onde são salvos os arquivos? como por exemplo usar um hd (imagino que eu deva “montar um disco”, ja ouvi o termo algumas vezes mas tenho dificuldades em realizar isso, se puder fazer um tutorial eu agradeceria muito!

    c) na tela inicial, o nextcloud recomenda de uma serviço mais robusto além do SQlite, eu segui alguns passos do tutorial em inglês que foi postado no comentário acima pra utilizar o MySQL, mas só funcionou mesmo quando fiz seu tutorial. entendo que eu esteja tanto com o SQlite quanto com o MySQL instalados, mas nao sei como optar por um ou por outro.

    Valeu pela atenção!

    1. Olá, não estou conseguindo postar tudo aqui, veja este link com as respostas as suas perguntas:

      https://pastebin.com/JFr7rksA

  5. Boa tarde Aliston,

     

    Na parte de configuração do nextcloud que vc diz: “Informe um usuário e senha que você se lembre, e estamos prontos para concluir a configuração, exibindo uma lista de arquivos e pastas previamente configurados!”.

     

    Eu não entendi, porque anteriormente neste tutorial não houve um momento que esta configuração foi realizada, então estou travado nesta parte e não sei o que fazer, não entendi isso.

     

    Podem me ajudar?

     

    Obrigado.

    1. Oi Cirleno,

      Você chegou a informar o endereço IP do seu servidor no browser, seguido do caminho /nextcloud?
      No meu exemplo, ficaria http://192.168.1.21/nextcloud

      Se sim, o que aparece nessa aba?
      Me deixa entender em que passo você está, e daremos continuidade à sua configuração!

      Grande abraço!