Construindo sua cloud pessoal com Raspberry Pi + OwnCloud

Share

Olá pessoal!

Ter um local onde se possa armazenar seus dados na nuvem, hoje em dia, é mais do que necessário. A cada dia que passa cresce nossas demandas de compartilhamento de dados e acesso a estes de forma fácil e rápida. Porém sabemos que “armazenar nossos dados na nuvem” é algo complicado se olharmos do ponto de vista da nossa privacidade na Rede Mundial de Computadores.

Mas o que fazer pra ter seus dados em um local de fácil acesso para quando e onde você precisar e ao mesmo tempo ter a tranquilidade de que somente você acessa estes dados?

Simples: vamos criar a nossa própria cloud!

Neste post vamos abordar a criação de uma cloud pessoal (que também vai funcionar como NAS pra sua rede interna), usando um Raspberry Pi, um HD externo e o Own Cloud – uma aplicação open source que lhe permite criar uma nuvem pessoal de forma prática e simples.

 

Vamos lá?

Raspberry Pi

Se você não conhece o projeto dá uma conferida aqui. Basicamente ele é um mini computador desenvolvido sob licenças de Open Hardware que roda, além de outros, algumas distribuições Linux especificamente customizadas pra ele.

Para adquirir um Rasp, como é carinhosamente chamado, é simples: existem várias lojas na internet (inclusive no Brasil) que vendem o Rasp, em média, por R$ 200. Faça uma busca simples no Google que vão aparecer vários links de lojas que comercializam o Raspberry Pi ;-)

Neste tutorial vamos abordar a configuração feita em um Raspbian (Debian para Raspberry), que pode ser baixado aqui: http://www.raspbian.org/

 raspi_hdd

Passo 1:Configurando a rede e baixando os pacotes necessários

Para que o nosso Rasp funcione bem como uma cloud ele precisa de um IP fixo. Vamos configurá-lo usando o comando abaixo.

$ sudo nano /etc/network/interfaces

Dependendo das configurações da sua rede, os IPs do exemplo abaixo podem ser diferentes. Porém tente deixar parecido com o que mostraremos a seguir:

auto eth0
 iface eth0 inet static
 address 192.168.1.118
 gateway 192.168.1.1
 netmask 255.255.255.0
 network 192.168.1.0
 broadcast 192.168.1.255

Pressione CTRL + O pra salvar e CTRL + X pra sair do editor de texto, e use o comando abaixo pra restartar suas configurações de rede.

$ sudo /etc/init.d/networking restart

Agora vamos atualizar as listas de pacote do nosso sistema:

$ sudo apt-get update

Feito isso, podemos instalar os pacotes que precisamos:

$ sudo apt-get install apache2 php5 php5-json php5-gd php5-sqlite curl libcurl3 libcurl4-openssl-dev 
php5-curl php5-gd php5-cgi php-pear php5-dev build-essential libpcre3-dev php5 libapache2-mod-php5 
php-apc gparted

Passo 2: Configurando o PHP e Apache

Feito o download e instalação dos pacotes necessários, vamos começar as configurações. Porém antes vamos instalar e configurar a extensão APC do PHP:

$ sudo pecl install apc

Após a instalação, abra o arquivo de configuração do APC e deixe conforme o exemplo abaixo:

$ sudo nano /etc/php5/cgi/conf.d/apc.ini
extension=apc.so
 apc.enabled=1
 apc.shm_size=30

Salve e saia do arquivo. Agora nós vamos alterar o tamanho máximo de upload no php.ini e adicionar a extensão APC ao PHP

$ sudo nano /etc/php5/apache2/php.ini

Dentro do php.ini, procure a linha upload_max_filesize e altere o valor para 1024M e a linha post_max_size, alterando o valor para 1200m, pois assim poderemos fazer uploads de até 1GB

Agora ache a linha externsion= e adicione o APC, deixando assim extension=apc.so

Salve e saia do arquivo.

Agora vamos configurar o nosso Apache e habilitar o SSL. Abra o arquivo abaixo:

$ sudo nano /etc/apache2/sites-enabled/000-default

Dentro do arquivo altere AllowOverride para None e execute os comandos abaixo:

$ sudo a2enmod ssl
$ sudo a2ensite default-ssl
$ sudo service apache2 reload

Agora execute os comandos abaixo para configurar o SSL:

sudo openssl genrsa -des3 -out server.key 1024; sudo openssl rsa -in server.key -out server.key.insecure;sudo openssl req -new -key server.key -out server.csr;sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt;sudo cp server.crt /etc/ssl/certs;sudo cp server.key /etc/ssl/private;sudo a2enmod ssl;sudo a2ensite default-ssl

Agora é só restartar o Apache com o comando abaixo:

$ sudo service apache2 restart

Passo 3: Download e instalação do Own Cloud

Depois do Apache e do PHP devidamente configurados, vamos instalar o Own Cloud:

$ wget https://download.owncloud.org/community/owncloud-7.0.2.tar.bz2

Vamos extrair os arquivos

$ sudo tar -xjf owncloud-7.0.2.tar.bz2

E copiar o Own Cloud para o nosso Document Root

$ sudo cp -r owncloud /var/www

Depois da cópia, vamos dar as permissões para o apache acessar os arquivos do Own Cloud

$ sudo chown -R www-data:www-data /var/www/owncloud/

Não se esqueça de editar o .htaccess colocando os mesmos valores de tamanho máximo de upload que configuramos no php.ini.

$ sudo nano /var/www/owncloud/.htaccess

Passo 4: Formatando o HD externo e automontando

O sistema operacional do Raspberry Pi é instalado no disco SD e não no HD externo. Logo precisaremos configurar o nosso HD pra ser montado automaticamente. O primeiro passo é formatá-lo em NTFS, pois é um bom sistema de arquivos e suporta leitura/escrita de arquivos grandes.

Para formatá-lo em NTFS você pode usar o gparted dentro do próprio Raspberry Pi. Rode o comando abaixo pra entrar no ambiente gráfico do Rasp, abra o Gparted, selecione o seu HD e formate-o em NTFS:

$ startx
$ sudo gprarted

Feito isso, vamos usar o comando abaixo para achar o UUID do nosso disco

$ sudo blkid /dev/sda1

A saída desse comando deve ser algo como isso:

/dev/sda2: LABEL=”pidsk” UUID=”1AA26276A2625673” TYPE=”ntfs”

Guarde esse número do UUID!

Vamos criar o ponto de montagem do nosso HD e dar as permissões para o Apache

$ sudo mkdir /media/owncloud
$ sudo chown -R www-data:www-data /media/owncloud

Agora vamos criar uma entrada no nosso FSTAB para montar automaticamente nosso HD no início do sistema:

$ sudo nano /etc/fstab

Adicione a linha abaixo (lembra do UUID que guardamos? Então, substitua ele na linha abaixo):

UUID=1AA26276A2625673 /media/owncloud ntfs-3g default 0

Agora seu HD externo será montado em todo início do sistema.

Passo 5: Configurando o Own Cloud

Agora sim está tudo pronto para configurarmos o Own Cloud. Acesse via browser o endereço abaixo e siga o passo-a-passo:

https://IPADDRESS/owncloud

Lembre-se de trocar o IPADDRESS pelo IP que configuramos no passo 1.

Na guia “Avançado” você poderá trocar o local de armazenamento dos dados e setar o seu HD externo, que está em /media/owncloud

Passo 6: Acessando o OwnCloud remotamente

O OwnCloud já possui aplicativos para Android, iOS e Windows para facilitar a sua vida. Porém nós configuramos o nosso Rasp em rede interna, ou seja, o IP que atribuímos à ele não poderá ser roteado pela internet.

Para resolver isso você tem duas saídas:

1) Contratar um serviço de IP fixo na sua provedora de internet.

2) Configurar um serviço de DNS dinâmico, como o DynDNS por exemplo. Alguns destes serviços são pagos, mas neste link tem um tutorial bem explicado para configuração do Free DNS: http://www.techjawab.com/2013/06/setup-dynamic-dns-dyndns-for-free-on.html

Nota: o OwnCloud é uma ferramenta que eventualmente recebe atualizações, e em alguns casos, a forma de configuração e as aplicações necessárias podem mudar. Para isso, visite sempre o manual de administrador do OwnCloud neste link: http://doc.owncloud.org/server/7.0/admin_manual/installation/installation_linux.html

 

Quer continuar por dentro das novidades do Blog Seja Livre? Siga o nosso perfil no TWITTER, curta a nossa página no FACEBOOK ou adicione o Blog Seja Livre nos seus círculos do GOOGLE+.