Transforme a sua Raspberry PI na biblioteca da sua casa digital (Parte 2)


Assume-se que nesta fase do tutorial, o calibre-server já está instalado na sua RasPI e o calibre (cliente) no seu computador pessoal. Assume-se igualmente que o cartão de memória da Raspberry PI tem a partição do filesystem totalmente expandida (caso contrário ver o post: http://aminhacasadigital.blogspot.pt/2013/04/raspbian-wheezy-expandir-particao-para.html).
Possíveis formas de aceder ao terminal da Raspberry PI já foram abordadas anteriormente, como tal, assume-se que são conhecidas as possibilidades de o fazer.

Neste tutorial serão abordados os seguintes assuntos: utilizar um disco externo ou usb stick para servir de storage à sua biblioteca digital, a instalação de um Web Server na Raspberry PI, a instalação de um serviço de cloud na Raspberry PI (owncloud - um clone da dropbox) para que consiga alterar a biblioteca no seu computador e mantê-la sincronizada com a Raspberry PI; e o início de todos os serviços no boot da Raspberry Pi para que fiquem sempre activos quando a RasPI sofre reboot.

Instalar um Web Server na Raspberry PI

Para o web server iremos utilizar o Apache com SSL, PHP 5 e PHP APC (acelerador que fará com que as páginas carreguem mais rapidamente).

Antes de instalar qualquer pacote na RasPi convém actualizar a informação dos repositórios do Raspbian:

$ sudo apt-get update

Instalar os pacotes necessários para o Web-Server

$ 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

Instalar o PHP Apc:

$ sudo pecl install apc

Configurar o Web-Server. Precisamos de criar e editar o ficheiro apc.ini na directoria /etc/php5/cgi/conf.d/ de forma a adicionar o APC ao PHP.

$ sudo nano /etc/php5/cgi/conf.d/apc.ini

Neste ficheiro deverão ser adicionadas as seguintes três linhas. Guardar o ficheiro e sair. (Guardar = Ctrl + O ; Sair= Ctrl + Z):

extension=apc.so
apc.enabled=1
apc.shm_size=30

Configurar o php de forma a que seja possível fazer o upload de ficheiros até 1 GB.

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

Neste ficheiro deverão ser alteradas as seguintes entradas:

upload_max_filesize = …  para upload_max_filesize=1024M
post_max_size =... para post_max_size=1024M

Posteriormente é necessário encontrar a secção das extensões e adicionar a extensão do apc:

extension=apc.so

Após estas alterações, guardar o ficheiro e sair. Necessitamos agora de configurar o Apache:

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

Neste ficheiro devem alterar a entrada Allowoverride=None para Allowoverride=All

Configurar o SSL (Secure Sockets Layer):

$ sudo a2enmod rewrite

$ sudo a2enmod headers

$ 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


O último comando irá necessitar que coloque alguma informação (e.g. Key ). Após digitar a informação requisitada, reinicie o serviço Apache:

$ sudo service apache2 restart

No browser do seu computador se entrar em http://endereço-de-rede-da-raspberry-pi deverá encontrar a página default do Apache:






Instalar o Owncloud na Raspberry PI

Com o Apache e o PHP instalado e configurado, é necessário agora instalar o Owncloud (clone da Dropbox) na Raspberry Pi. Este serviço irá permitir que consiga sincronizar ficheiros ou pastas do seu computador com a RasPi.


Execute o seguinte comando para efectuar o download do pacote:

$ wget http://mirrors.owncloud.org/releases/owncloud-4.5.1.tar.bz2

Quando finalizado, deverá fazer o unzip do ficheiro:

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

E copiar para a directoria Web da RasPi (/var/www):

$ sudo cp -r owncloud /var/www

Deverá atribuir a ownership da pasta ao utilizador www-data para que consiga fazer o upload de ficheiros

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

Deverá também modificar o .htaccess para que este tenha o mesmo valor de upload que definiu anteriormente (1024M). Modifique as entradas necessárias com o seguinte comando:

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


Montar o disco externo ou usbstick na Rasperry Pi para a Cloud

O disco externo irá servir de armazenamento à Cloud (incluindo a biblioteca de livros para o Calibre). Criemos a pasta /media/usbstick onde o disco ficará montado.

$ sudo mkdir /media/usbstick

Montemos o disco na pasta /media/usbstick . No meu caso, como é o único disco ligado à PI a localização do disco é /dev/sda. Caso tenham mais do que um disco conectado, os caminhos deverão ser /dev/sda1, /dev/sda2 e assim sucessivamente.

Montar o disco no filesystem da RasPI, pasta /media/usbstick:

$ sudo mount -t ext4 -o rw /dev/sda /media/usbstick/

O disco não deverá estar formatado em FAT (não tem permissões suficientes para o comando chown utilizado mais à frente). No meu caso, formatei o disco em ext4.

Seguidamente vamos criar um grupo de utilizadores chamado owncloudusers e adicionar os utilizadores pi e www-data. No fim, criaremos a pasta da Cloud no disco externo e atribuiremos ownership da pasta ao grupo de utilizadores criado.

$ sudo groupadd owncloudusers

$ sudo usermod -a -G owncloudusers pi

$ sudo usermod -a -G owncloudusers www-data

Criar a pasta owncloud no disco externo:

$ sudo mkdir /media/usbstick/owncloud

Atribuir permissões à pasta da owncloud e a ownership ao user www-data do grupo owncloudusers:

$ sudo chmod 770 /media/usbstick/owncloud/

$ sudo chown -R www-data:owncloudusers /media/usbstick/owncloud


Configurar o owncloud na RasPi

No seu browser, entre no endereço owncloud da sua RasPI: http://ip-de-rede-da-raspi/owncloud
Escolha um nome de utilizador e uma password e coloque a pasta que criou como caminho storage da Cloud:


Instalar o Owncloud client no seu computador e ligar à Owncloud criada na RasPI

O Owncloud client pode ser obtido em: https://owncloud.com/download
Está disponível para Windows, Mac OS ou Linux. Depois de instalado, deverá ser configurado de forma a “apontar” para a nossa Raspberry PI:






Será criada uma pasta chamada Owncloud no ambiente de trabalho do computador. Criem uma pasta dentro desta com um nome à vossa escolha, onde irão armazenar a vossa biblioteca de livros (no meu caso chamei-lhe bib).

Se entrarem novamente na Owncloud da vossa RasPI (http://endereço-da-raspi/owncloud) irão verificar  que foi criada uma pasta chamada “Clientsync”, dentro da qual existe a pasta que criaram, no meu caso a pasta “bib”.




Será esta a pasta para onde o Calibre-Server instalado na Raspberry PI irá apontar como a sua biblioteca. Antes disso, iremos configurar a biblioteca do Calibre do nosso computador para a pasta /Owncloud/bib do ambiente de trabalho do nosso computador.

Mudar localização do Calibre (computador pessoal) para a pasta partilhada

No separador Livros do programa Calibre, clicar em Mudar/criar biblioteca e seleccionar a pasta que criamos dentro da pasta Owncloud:



Desta forma, cada novo livro adicionado ou informação modificada será armazenado na pasta partilhada com a Raspberry PI, mantendo-se ambas as bibliotecas completamente sincronizadas. Qualquer alteração no computador...reflecte-se na RasPI.

Iniciar o Calibre-Server da RasPi na pasta partilhada

Uma vez que a pasta da biblioteca foi alterada (passou a ser a pasta partilhada) temos de apontar o calibre-server a essa pasta ( /media/usbstick/owncloud/clientsync/pi/files/bib).


$ sudo calibre-server --with-library=/media/usbstick/owncloud/pi/files/clientsync/bib --port=9292 --username=pi --password=raspberry --daemonize


Montar o disco externo e iniciar o calibre-server no boot da RasPi

Para permitir que quer o disco externo quer a biblioteca digital estejam sempre disponíveis, é necessário montar o disco e iniciar o serviço no boot. Uma forma de o conseguir é editar o ficheiro /etc/rc.local e colocar os comandos antes de “exit 0”. Este script é sempre executado como root quando a Raspberry Pi inicia.

Desta forma basta editar o ficheiro:

$ sudo nano /etc/rc.local


E adicionar as seguintes entradas imediatamente antes da linha “exit 0”

/bin/mount /dev/sda /media/usbstick

calibre-server --with-library=/media/usbstick/owncloud/pi/files/clientsync/bib --port=9292 --username=pi --password=raspberry --daemonize

Screenshots da biblioteca sincronizada:

Na cloud:




Na web:



No pc:


Notar que a biblioteca apenas está disponível na vossa rede doméstica. Se pretenderem aceder fora de casa, devem abrir as portas necessárias do vosso router apontando para o endereço de rede da vossa pi e para a porta respectiva (80 no caso do Apache/owncloud e 9292 para a biblioteca do calibre-server).

Até breve,

Miguel Borges de Freitas

0 Comments: