{"id":598,"date":"2015-03-16T23:05:45","date_gmt":"2015-03-16T23:05:45","guid":{"rendered":"http:\/\/www.papimigas.com\/?p=598"},"modified":"2015-03-16T23:05:45","modified_gmt":"2015-03-16T23:05:45","slug":"raspberry-cloud","status":"publish","type":"post","link":"https:\/\/blog.papimigas.com\/index.php\/2015\/03\/16\/raspberry-cloud\/","title":{"rendered":"Raspberry &amp; Cloud"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-599\" src=\"https:\/\/blog.papimigas.com\/wp-content\/uploads\/2015\/03\/raspi2.jpg\" alt=\"\" width=\"840\" height=\"362\" \/><\/p>\n<p>Recebi h\u00e1 dias a mais recente vers\u00e3o do Raspberry Pi! Mais potente e melhor equipado, o novo Raspberry 2 Modelo B destaca-se da anterior vers\u00e3o por ter um ARMv7 Quad core @ 900MHz, 1GB RAM, entre outras caracteristicas. O fabricante garante 6x mais performance relativamente \u00e0 vers\u00e3o anterior.<\/p>\n<p>Com a minha habitual euforia de brinquedo novo na bancada, tive que decidir qual o primeiro projeto para testar o bicho&#8230;<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-600\" src=\"https:\/\/blog.papimigas.com\/wp-content\/uploads\/2015\/03\/owncloud.png\" alt=\"\" width=\"300\" height=\"142\" \/>Dispensa apresenta\u00e7\u00f5es. \u00c9 das melhores sen\u00e3o a melhor solu\u00e7\u00e3o open-source para a nossa &#8220;nuvem&#8221; privada. J\u00e1 vai na vers\u00e3o 8.<\/p>\n<p>Vamos ent\u00e3o para o nosso plano de trabalho:<br \/>\nHARDWARE<br \/>\n1 Raspberry com cart\u00e3o microSD de 8GB Classe 10<br \/>\n1 Pen ou Disco externo USB para armazenamento de dados<br \/>\nSOFTWARE<br \/>\nSistema operativo Raspbian<br \/>\nInstala\u00e7\u00e3o de LAMP (Apache + MySQL + PHP)<br \/>\nInstala\u00e7\u00e3o e configura\u00e7\u00e3o inicial do ownCloud<\/p>\n<p>Vou partir do princ\u00edpio que o raspberry est\u00e1 com a vers\u00e3o Raspbian instalada, configurada e atualizada. O <a href=\"http:\/\/www.raspberrypi.org\/forums\/viewtopic.php?f=91&amp;t=4751\" target=\"_blank\" rel=\"noopener\">site<\/a> do Raspberry tem bons tutoriais para esse efeito.<\/p>\n<p>1- Prepara\u00e7\u00e3o da PEN\/HDD USB com o seguinte comando:<br \/>\n<em>sudo fdisk -l<\/em><br \/>\nNa resposta dever\u00e1 aparecer alguma coisa tipo:<br \/>\n<em>Device Boot\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Start\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 End\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Blocks\u00a0\u00a0\u00a0\u00a0\u00a0 Id\u00a0 System<\/em><br \/>\n<em><strong>\/dev\/sda1\u00a0\u00a0 *\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2048\u00a0\u00a0\u00a0 30297215\u00a0\u00a0\u00a0 15147584\u00a0\u00a0\u00a0 c\u00a0 W95 FAT32 (LBA)<\/strong><\/em><br \/>\nPoder\u00e1 aparecer sdb, sdc, etc. No meu caso \u00e9 uma PEN USB de 16GB.<br \/>\nVamos formatar\u00a0 o nosso <em><strong>\/dev\/sda1<\/strong><\/em> com EXT4, um formato nativo de Linux:<br \/>\n<em>sudo mkfs.ext4 \/dev\/sda1<br \/>\n<\/em>Em seguida criamos a pasta onde a informa\u00e7\u00e3o da nossa nuvem vai ficar guardada e montamos a nossa PEN\/HDD USB:<br \/>\n<em>sudo mkdir \/cloud<\/em><br \/>\ns<em>udo mount \/dev\/sda1 \/cloud<\/em><br \/>\nPodem alterar o nome da pasta <em>\/cloud<\/em> para o que quiserem.<br \/>\nDamos as permiss\u00f5es corretas \u00e0 pasta criada (para depois o ownCloud funcionar bem):<br \/>\n<em>sudo chown www-data:www-data \/cloud<\/em><br \/>\nPara tornar este mount permanente fazemos o seguinte:<br \/>\n<em>sudo nano \/etc\/fstab<\/em><br \/>\nDever\u00e1 aparecer a seguinte informa\u00e7\u00e3o:<br \/>\n<em>proc\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/proc\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 proc\u00a0\u00a0\u00a0 defaults\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0<\/em><br \/>\n<em>\/dev\/mmcblk0p1\u00a0 \/boot\u00a0\u00a0\u00a0 \u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 vfat\u00a0\u00a0\u00a0 defaults\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0 \u00a0\u00a0 \u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2<\/em><br \/>\n<em>\/dev\/mmcblk0p2\u00a0 \/\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0\u00a0 ext4\u00a0\u00a0\u00a0 defaults,noatime\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 1<br \/>\n<\/em>\u00c9 s\u00f3 acrescentar:<strong><em><br \/>\n\/dev\/sda1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/cloud\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ext4\u00a0\u00a0\u00a0 defaults\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2<\/em><\/strong><br \/>\nPronto, o nosso raspberry j\u00e1 pode reiniciar.<\/p>\n<p>2- Vamos configurar agora o nosso raspberry como um servidor LAMP (Apache + MySQL + PHP) e instalar o necess\u00e1rio para a nossa &#8220;nuvem&#8221; pessoal:<br \/>\n<em>sudo apt-get install apache2 mysql-server php5 php-pear php5-mysql php5-gd php5-curl<\/em><br \/>\nNa instala\u00e7\u00e3o do MySQL o sistema vai pedir-nos para definirmos uma password de root (n\u00e3o tem nada a haver com o root de sistema).<\/p>\n<p>3- Vamos tornar o nosso MySQL mais seguro:<br \/>\n<em>sudo mysql_secure_installation<\/em><br \/>\nCaso tenham d\u00favidas vejam um bom exemplo <a href=\"http:\/\/www.turnkeylinux.org\/forum\/support\/20140708\/mysql-secure-installation\" target=\"_blank\" rel=\"noopener\">aqui<\/a>.<br \/>\nVamos aproveitar para criar um utilizador MySQL e a base de dados para o ownCloud:<br \/>\n<em>mysql -uroot -p<\/em><br \/>\nInsiram a password definida na instala\u00e7\u00e3o do MySQL. Criamos primeiro o utilizador:<br \/>\n<em>CREATE USER &#8216;username&#8217;@&#8217;localhost&#8217; IDENTIFIED BY &#8216;password&#8217;;<\/em><br \/>\nAlterem o <em>username<\/em> e a <em>password<\/em> para o que quiserem. N\u00e3o esque\u00e7am os &#8216; e o <em>;<\/em> no fim! Agora vamos criar a base de dados e dar permiss\u00f5es ao user criado:<br \/>\n<em>CREATE DATABASE cloud_db;<\/em><br \/>\nG<em>RANT ALL PRIVILEGES on cloud_db.* to username@localhost;<\/em><br \/>\n<em>FLUSH PRIVILEGES;<\/em><br \/>\n<em>exit<\/em><br \/>\nPodem (e devem) alterar o nome da <em>cloud_db<\/em> para o que quiserem.<br \/>\nE pronto. Vamos para a etapa seguinte!<\/p>\n<p>4- Vamos agora ativar o SSL. Come\u00e7amos por gerar uma chave:<br \/>\n<em>sudo mkdir \/etc\/apache2\/ssl<\/em><br \/>\n<em>sudo openssl req -x509 -nodes -days 1001 -newkey rsa:2048 -keyout \/etc\/apache2\/ssl\/apache.key -out \/etc\/apache2\/ssl\/apache.crt<\/em><br \/>\nPodem alterar os dias para o numero que quiserem. Respondam \u00e0s perguntas seguintes. Por fim, vamos editar o ficheiro seguinte:<br \/>\n<em>sudo nano \/etc\/apache2\/sites-available\/default-ssl<\/em><br \/>\nLogo por baixo de ServerAdmin coloquem<br \/>\n<em>ServerName nome_da_maquina.com:443<\/em><br \/>\nO nome <em>nome_da_maquina.com<\/em> \u00e9 o <a href=\"http:\/\/pt.wikipedia.org\/wiki\/FQDN\" target=\"_blank\" rel=\"noopener\">FQDN<\/a>. Em caso de d\u00favida coloquem <em>server.lan<\/em>.<br \/>\nMais abaixo, alterem o caminho dos certificados:<br \/>\n<em>SSLCertificateFile\u00a0\u00a0\u00a0 <strong>\/etc\/apache2\/ssl\/apache.crt<\/strong><\/em><br \/>\n<em>SSLCertificateKeyFile <strong>\/etc\/apache2\/ssl\/apache.key<\/strong><\/em><br \/>\nSalvamos o ficheiro e finalizamos com os seguintes comandos:<br \/>\ns<em>udo a2ensite default-ssl<br \/>\nsudo a2enmod ssl<\/em><br \/>\n<em>sudo service apache2 reload<\/em><br \/>\nPodem testar abrindo o browser no <em>https:\/\/ip_do_raspberry<\/em><\/p>\n<p>5- Descarregamos a vers\u00e3o mais recente do ownCloud (\u00e0 data deste post), descompactamos o ficheiro e copiamos para a pasta www:<br \/>\n<em>wget https:\/\/download.owncloud.org\/community\/owncloud-8.0.0.tar.bz2<\/em><br \/>\n<em>tar -xvf owncloud-8.0.0.tar.bz2<br \/>\nsudo rm\u00a0 \/var\/www\/*<br \/>\nsudo cp owncloud\/* \/var\/www\/ -r<\/em><br \/>\nCorrigimos as permiss\u00f5es:<br \/>\n<em>sudo chown -hR www-data:www-data \/var\/www\/<br \/>\n<\/em>(este comando permite ao apache ter controlo total da pasta do ownCloud)<\/p>\n<p>Vamos ent\u00e3o configurar o ownCloud:<br \/>\n<em>https:\/\/ip_do_raspberry<\/em><br \/>\nSe tudo correu bem v\u00e3o encontrar o seguinte ecr\u00e3, onde poder\u00e3o criar um utilizador de administra\u00e7\u00e3o e inserir a informa\u00e7\u00e3o previamente criada:<br \/>\n<a href=\"https:\/\/papimigas.com\/wp-content\/uploads\/2015\/03\/Owncloud1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-606\" src=\"https:\/\/blog.papimigas.com\/wp-content\/uploads\/2015\/03\/owncloud1.png\" alt=\"\" width=\"783\" height=\"768\" \/><\/a>E pronto, j\u00e1 podem come\u00e7ar a configurar a vossa nuvem pessoal!<a href=\"https:\/\/papimigas.com\/wp-content\/uploads\/2015\/03\/Owncloud2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-607\" src=\"https:\/\/blog.papimigas.com\/wp-content\/uploads\/2015\/03\/owncloud2.png\" alt=\"\" width=\"738\" height=\"441\" \/><\/a>Podem come\u00e7ar por configurar as op\u00e7\u00f5es gerais, no menu de administra\u00e7\u00e3o:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-608\" src=\"https:\/\/blog.papimigas.com\/wp-content\/uploads\/2015\/03\/owncloud3.png\" alt=\"\" width=\"237\" height=\"257\" \/>Boa nuvem! \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recebi h\u00e1 dias a mais recente vers\u00e3o do Raspberry Pi! Mais potente e melhor equipado, o novo Raspberry 2 Modelo B destaca-se da anterior vers\u00e3o por ter um ARMv7 Quad core @ 900MHz, 1GB RAM, entre outras caracteristicas. O fabricante garante 6x mais performance relativamente \u00e0 vers\u00e3o anterior. Com a minha habitual euforia de brinquedo &hellip; <a href=\"https:\/\/blog.papimigas.com\/index.php\/2015\/03\/16\/raspberry-cloud\/\" class=\"more-link\">Continuar a ler<span class=\"screen-reader-text\"> &#8220;Raspberry &amp; Cloud&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,6,11],"tags":[44,84,102,123],"class_list":["post-598","post","type-post","status-publish","format-standard","hentry","category-cloud","category-linux","category-raspberry","tag-debian","tag-linux","tag-owncloud","tag-raspberry-pi-2"],"_links":{"self":[{"href":"https:\/\/blog.papimigas.com\/index.php\/wp-json\/wp\/v2\/posts\/598","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.papimigas.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.papimigas.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.papimigas.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.papimigas.com\/index.php\/wp-json\/wp\/v2\/comments?post=598"}],"version-history":[{"count":0,"href":"https:\/\/blog.papimigas.com\/index.php\/wp-json\/wp\/v2\/posts\/598\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.papimigas.com\/index.php\/wp-json\/wp\/v2\/media?parent=598"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.papimigas.com\/index.php\/wp-json\/wp\/v2\/categories?post=598"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.papimigas.com\/index.php\/wp-json\/wp\/v2\/tags?post=598"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}