Servidor de arquivos Nextcloud na Orange PI PC Plus H3

Introdução

 

Um dos pontos mais interessantes de se trabalhar com Linux Embarcado é o enorme leque de possibilidades de uso. Literalmente, faz-se de tudo, desde servidores até a video-games retro. E para quem trabalha com compartilhamento de arquivos em rede, um servidor de arquivos pode ser uma ótima solução, totalmente factível com Linux Embarcado. É justamente disso que este post se trata: como construir um servidor de arquivos, utilizando a plataforma Nextcloud e um kit de desenvolvimento placa Orange PI PC Plus H3, possuindo suporte ao uso de um HD Externo USB também.

 

O objetivo aqui foi trazer o projeto para a Orange PI PC Plus H3 e mostrar uma forma de como utilizar um HD Externo USB como unidade de armazenamento do servidor.

 

Nextcloud

 

O Nextcloud é uma plataforma open-source, a qual tem como utilidade construir um servidor de arquivos em um sistema Linux. Ou seja, usando o Nextcloud é possível criar um "DropBox pessoal", com a capacidade de armazenamento que você desejar / possuir disponível em algum dispositivo de massa. E o melhor: sem custo de licença e/ou mensalidade alguma!

 

Escrito em PHP e já pronto para rodar no suite LAMP (suite Linux de desenvolvimento e serviço web, composta de sevidor web Apache, banco de dados MySQL e PHP), o Nextcloud consiste em uma opção muito boa para aqueles que desejam montar seu próprio servidor de arquivos.

 

O acesso ao servidor já construído / instalado pode ser feito das seguintes maneiras:

  • Via browser, a qual é disponibilizada uma interface muito similar a do DropBox;
  • Via softwares-clientes para computador (Windows, MAC e Linux), Android e iOS.

 

Em suma, é uma solução muito interessante para quem precisa de um file server, possibilitando a criação de um "DropBox pessoal".

 

Por que a Orange PI PC Plus H3 foi escolhida?

 

Conforme dito neste artigo sobre a placa, a Orange PI PC Plus H3 possui um hardware com especificações consideravelmente acima da média vista em SBCs (Single-Board Computers) comuns de mercado. Por esta razão, o desempenho dela funcionando como servidor de arquivos é significativamente melhor se comparado ao desempenho de uma Raspberry PI 3B, por exemplo), grande parte em função do ganho de performance em usar a memória Flash da placa para rodar o Linux (Flash eMMC) e também do fato da distribuição ARMBian tender a ser mais leve que a Raspbian.

 

Portanto, visando maior desempenho do servidor de arquivos, a escolha de SBC foi a Orange PI PC Plus H3.

 

Pré-requisitos

 

Antes de partir para a construção do servidor de arquivos propriamente dita, é necessário obedecer a alguns pré-requisitos:

  • A Orange PI PC Plus H3 deve estar funcional (ou seja, com distro ARMBian instalada e com conectividade à Internet operante). Para chegar nesse ponto, leia este artigo;
  • Opcional: um HD Externo USB, da capacidade que você desejar;
  • Você deve possuir uma boa fonte de alimentação (com corrente de saída 3A ou superior), principalmente se pretende utilizar um HD Externo USB junto ao servidor.

 

Instalação do Nextcloud

 

Siga o procedimento abaixo para a instalação do Nextcloud na Orange PI PC Plus H3. Execute-o conectado via SSH, VNC ou até mesmo diretamente na Orange PI PC Pus H3 (com teclado, mouse e monitor nela).

 

  1. Primeiramente, faça um update e um upgrade:

  2. Feito isso, é necessário instalar o Apache. Para isso, utilize o comando abaixo:

    Para testar se a instalação foi bem sucedida, em um computador que esteja na mesma rede que a Orange PI PC Plus H3, abra o browser e acesse o endereço abaixo (onde SEU_ENDERECO_IP é o IP assumido pela Orange PI PC na rede). 

     

    Se a instalação foi bem sucedida, a página de teste do Apache (figura 1) deve aparecer, significando que sua orange PI PC Plus H3 já está funcionando como um servidor web.

     

    Figura 1 - Página de teste do Apache
    Figura 1 - Página de teste do Apache

     

  3. Agora é chegada a hora de instalar o PHP. Para isso, há duas maneiras: se sua versão de ARMBian for recente, é bem provável que já disponha do PHP7 na lista de softwares a serem instalados pelo gerenciador de pacotes. Caso contrário, sua lista possui o PHP5. Ambas as versões permitem o Nextcloud funcionar corretamente. Portanto, tente primeiro instalar o PHP7 com o seguinte comando:

    Se ocorrer algum erro, instale o PHP5 com o seguite comando:


    Independente da versão instalada (PHP7 ou PHP5), o Apache deve ser reiniciado com o seguinte comando:

  4. Agora todos os requisitos para a instalação do Nextcloud estão cumpridos. Para a instalação dele e da criação de sua pasta que conterá os dados do servidor de arquivos, execute a sequência de comandos abaixo:

  5. Em teoria, o Nextcloud já está pronto para funcionar, pois este utiliza como sistema de banco de dados o SQLite. Porém, nos testes que realizei, observei que é relativamente fácil corromper o banco de dados em SQLite simplesmente utilizando o Nextcloud de uma maneira "mais pesada". Sendo assim, utilizando o MySQL, os resultados foram muito mais satisfatórios (inclusive, com melhor performance geral). Portanto, agora é o momento de instalação do MySQL. Para isso, siga as instruções deste tutorial, mais precisamente no tópico "Configure Nextcloud for SQLite or MySQL" (inclusive, crie o banco de dados e as tabelas que o tutorial sugere neste tópico, sem mudanças). Ao final, reinicie o Apache novamente;
  6. É chegada a hora de acessar o Nextcloud pela primeira vez. Para isso, em um computador que esteja na mesma rede que a Orange PI PC Plus H3, abra o browser e acesse o endereço abaixo (onde SEU_ENDERECO_IP é o IP assumido pela Orange PI PC na rede). 


    Na tela que abrir, clique sobre o menu drop down "Armazenamento & banco de dados". Das opções disponíveis, escolha "MySQL/MariaDB" e complete os campos conforme abaixo:

    - Campo usuário: ncuser
    - Campo senha: raindrop
    - Campo banco de dados: nextcloud
    - Em localhost, nada deve ser alterado (deixe localhost mesmo).

  7. Feito isso preencha o login e senha que deseja para o administrador (admin) e clique em "Concluir configuração". Aguarde alguns minutos (este primeiro acesso é realmente demorado, mas os acessos posteriores serão muito mais rápidos) e a tela inicial do Nextcloud surgirá (já com algumas pastas e arquivos pré-criados), conforme a figura 2.

 

Tela inicial do Nextcloud quando acessado pelo browser.
Figura 2 - Tela inicial do Nextcloud quando acessado pelo browser

 

Tamanho máximo de arquivo no upload

 

Conforme dito em tópicos anteriores deste artigo,  Nexcloud é desenvolvido em PHP.  O PHP, por default, limita o tamanho máximo de arquivo no upload a 2MB, o que é baixíssimo em se tratando do uso em um servidor de arquivos. Para aumentar este limite, siga o procedimento abaixo:

 

  1. O primeiro passo é abrir o arquivo de configurações do PHP.
    Se você está usando o PHP5, digite o comando abaixo:

    Ou, se você está usando o PHP7, digite o comando abaixo:

  2. Uma vez aberto o arquivo de configurações, procure pelas configurações upload_max_filesize, post_max_sizeoutput_buffering. Configure seus valores para:

     

    Desta forma, o tamanho máximo de arquivo para upload será 1024MB (1GB). 

    IMPORTANTE 1: devido ao funcionamento do PHP quanto ao upload de arquivos, recomenda-se fortemente que o valor das configurações upload_max_filesize e post_max_size sejam iguais.

    IMPORTANTE 2: embora a configuração do tamanho máximo de arquivo para upload não tenha limite teórico, desenvolvedores PHP recomendam não colocar mais que 2048M (2GB) como tamanho máximo de arquivo para upload. Por esse motivo, para assegurar o funcionamento do servidor de arquivos, deixei somente 1GB nesta configuração.

  3. Feito isso, salve o arquivo e reinicie o Apache com o seguinte comando:

 

Opcional: utilização de um HD Externo USB

 

Até este ponto do artigo, o servidor de arquivos com Nextcloud está pronto para funcionar guardando arquivos na memória interna / eMMC da Orange PI PC Plus. Apesar de ser de rápido acesso, esta memória possui somente menos de 8GB disponíveis (pois o sistema operacional está instalada nela também), o que pode ser pouco para um servidor de arquivos. Dessa forma, neste tópico do artigo será mostrado como utilizar um HD Externo USB comum como unidade de armazenamento do Nextcloud, permitindo portanto que o servidor tenha uma grande capacidade de armazenamento.

 

Primeiro passo: montagem automática do HD em todo boot

 

O primeiro passo para utilizar um HD Externo USB no servidor de arquivos é fazer a montagem do HD no Linux. Para isso, utilize o comando abaixo para verificar em qual storage device seu HD externo USB está associado:

 

 

No terminal, você terá uma saída similar à da figura 3. Nela, localize o storage device associado ao seu HD.

 

Lista de storage devices detectados
Figura 3 - Lista de storage devices detectados (sendo o HD Externo USB o device /dev/sda1)

 

Para conferir / verificar a partição que seu HD Externo USB se encontra, utilize o comando abaixo. Ele deve produzir uma saída semelhante à da figura 4.

 

 

Lista de partições
Figura 4 - Lista de partições

 

O próximo passo é montar o HD e dar as permissões necessárias de acesso, escrita e leitura a ele. Aqui será assumido que, assim como no meu caso, seu HD está em /dev/sda1 e que ele será montado no diretório /mnt (isso será considerado daqui pra frente neste artigo). Para isso, execute os comandos abaixo:

 

 

Agora é a hora de fazer com que o HD seja sempre montado neste diretório (/mnt) automaticamente após o boot. Para isso, é necessário editar o arquivo fstab (caminho completo: /etc/fstab). Para isso, utilize o comando:

 

 

No editor, acrescente (logo acima da ultima linha, que inicia com #) a linha abaixo. 
IMPORTANTE: obedeça a formatação / espaços entre as informações presentes no arquivo!

 

 

Basta agora salvar o arquivo, fechar o nano e está tudo pronto! Seu HD, desde que conectado à USB da Orange PI PC Plus H3, será automaticamente montado a cada boot. Para conferir se deu certo, faça o reboot da Orange PI e, após o boot, você poderá verificar que o conteúdo de /mnt é igual ao de seu HD Externo USB (o que significa que foi corretamente montado.

 

Segundo passo: fazer o Nextcloud salvar e ler informações do seu HD Externo USB 

 

Para fazer com que o Nextcloud automaticamente faça a leitura e escrita de arquivos no seu HD Externo USB, será adotada uma solução simples: mover todos os dados já presentes na pasta data do Nextcloud para o HD Externo USB e, em seguida, criar um link para esta pasta no seu HD Externo USB. Isso fará com que toda vez que o Nextcloud tentar salvar ou ler algo de sua pasta data, tal leitura ou escrita seja feita direto do HD Externo USB! Para isso, execute os comandos abaixo:

 

Terceiro passo: teste da solução final

 

Para testar a solução final, basta dar um refresh na página do Nextcloud (se ela estiver berta, claro) e dar upload de um arquivo qualquer. Você deverá ver o LED do HD Externo USB piscar nessa hora indicando que a solução final está operando corretamente.

 

Pontos de atenção e recomendações

 

Abaixo, seguem alguns pontos de atenção e recomendações sobre este projeto / solução:

  1. Nunca desligue esse projeto cortando subitamente sua alimentação. Isso pode provocar o corrompimento de arquivos tanto no HD Externo USB quanto na eMMC da Orange PI PC Plus H3. Há algumas formas de se fazer o desligamento, sendo a mais simples delas acessar a  Orange PI PC Plus H3 via SSH e executar o comando de shutdown:

  2. Conforme pesquisa feita na Internet, pode acontecer de o Nextcloud acusar erro de permissão (se algum diretório ficar visível a todos os usuários, por exemplo). Neste caso, você pode setar as permissões conforme o próprio Nextcloud explica na mensagem de erro ou, se não for familiarizado com permissões no Linux, ler a solução adotada neste link (embora insegura, pode ajudar em alguns casos).
  3. É recomendável utilizar a conexão Ethernet ao invés da WI-FI. Isso irá dar um pouco mais de velocidade no acesso ao servidor de arquivos.

 

Raspberry PI 3B x Orange PI PC Plus: por que escolher a Orange PI nesse caso?

 

Este projeto poderia ser montado com uma Raspberry PI 3B no lugar da Orange PI PC Plus H3, porém a Orange PI apresenta algumas vantagens muito interessantes para o projeto em questão. Veja abaixo:

  • Se o sistema operacional for instalado na memória eMMC da Orange PI PC Plus H3, a performance da placa será significativamente maior (principalmente considerando o projeto em questão);
  • Embora possua a mesma conectividade à Internet em relação à Raspberry PI 3B, a Orange PI PC Plus H3 possui soquete para antena externa. Isso permite mais flexibilidade no uso da Orange PI enquanto utilizando conectividade WI-FI;
  • A distribuição ARMBian é mais leve que a popular Raspbian, o que faz o desempenho  geral da Orange PI  ser maior.

 

Em suma, visando máximo desempenho, a Orange PI PC Plus H3 é uma melhor escolha em relação à Raspberry PI 3B.

 

Saiba mais

 

Primeiros passos - Orange Pi PC Plus H3

BeagleBone Black - Localização aproximada via IP

Streaming de vídeo com a Raspberry Pi 3 no Ustream.tv

 

Referências

 

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Pedro Bertoleti
Sou engenheiro eletricista formado pela Faculdade de Engenharia de Guaratinguetá (FEG - UNESP) e trabalho com Android embarcado em Campinas-SP. Curioso e viciado em tecnologia, sempre busco me aprimorar na área de sistemas embarcados (modalidades bare-metal, RTOS, Linux embarcado e Android embarcado).Para mais informações, acesse minha página no Facebook:https://www.facebook.com/pbertoleti