Montando a sua própria nuvem com Owncloud + Debian Squeeze

Owncloud é um projeto open-source para nuvem, com ele podemos acessar os nossos arquivos pela web em qualquer lugar com acesso a Internet, podemos fazer também o sincronismo dos nossos arquivos com o Desktop, que uma utilidade que vou abordar que é muito útil.

Ele tem clientes para Android e iOS com isso podemos acessar os nossos arquivos e editar eles pelo smartphone.

Podemos compartilhar arquivos com os usuários da nossa nuvem com facilidade, especificando um determinado usuário, grupo ou ainda podemos tornar um arquivo publico.

Temos um player de musicas integrado ao owncloud com isso podemos escutar as nossas músicas que estão na nuvem.

Temos uma aplicação para visualizar e organizar as nossas fotos com facilidade.

Podemos obter mais aplicações para a nossa nuvem em http://apps.owncloud.com/.

Temos um gerenciador de contatos que pode ser acessado em nossa nuvem e pode ser sincronizado de outro aplicativo que tenha suporte a CardDAV.

Temos um gerenciador de calendário que pode ser conectado de aplicações como Thunderbird, Kontact e Evolution pelo protocolo CalDAV, podemos também sincronizado com Android ou iOS.

Vou mostrar algumas imagens do Owncloud

Menu Principal

Player de Músicas

Calendário

Controle de Contatos

Galeria de Imagens

Galeria de Imagens

Gerenciamento de Aplicações

Bookmarks

Status do sistema

Configurações Pessoais

Controle de Usuários

Criação de Arquivos

Editor de Texto

Menu Ajuda

Vamos a instalação da nossa nuvem

Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialsqueeze_en para que não falte nenhum pacote ou configuração.

Vamos primeiramente atualizar os repositório e fazer um upgrade do sistema

aptitude update && aptitude dist-upgrade -y

Agora vamos instalar os pacotes necessários para o owncloud funcione corretamente.

aptitude install apache2 php5 php5-sqlite php5-mysql php5-json php5-gd mysql-server-5.1 \
mp3info curl libcurl3 libcurl3-dev php5-curl zip -y

Agora vamos obter o nosso Owncloud

cd /var/www
wget -c http://wiki.douglasqsantos.com.br/Downloads/cloud/owncloud-3.tar.bz2

Agora vamos extrair o nosso owncloud

tar -xjvf owncloud-3.tar.bz2

Agora vamos acertar as permissões do owncloud

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

Agora vamos criar a base de dados para o owncloud

mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 40
Server version: 5.1.61-0+squeeze1 (Debian)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database owncloud;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on owncloud.* to owncloud@localhost identified by 'senha';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye

Vamos fazer uns ajustes no PHP, para que ele possa receber uploads de no máximo 20M ajuste de acordo com a necessidade.

vim /etc/php5/apache2/php.ini
[...]
post_max_size = 20M
[...]
upload_max_filesize = 20M
[...]

Agora vamos reiniciar o apache para ele pegar as novas configurações

/etc/init.d/apache2 restart

Agora vamos acessar http://ip_servidor/owncloud

  1. Na primeira tela vamos informar o nome do usuário que vai ser o admin do sistema e a senha
  2. Agora selecione Advanced
  3. Agora selecione MySQL
  4. Em Database User informe: owncloud
  5. Em Database Password informe: senha
  6. Em Database Name informe: owncloud
  7. A última opção deixe como localhost
  8. Agora selecione Finish setup
  9. Agora fomos direcionados para a página principal da nossa nuvem.
  1. Agora vamos a algumas configurações do sistema no lado inferior esquerdo da tela temos uma engrenagem que é o menu de configurações “Settings” selecione ele
  2. Agora selecione Personal.
  3. Aqui podemos modificar a senha, informar um endereço de Email, podemos também mudar o idioma entre outras opções

Note que nesta tela abaixo de Language temos algo como

WebDAV http://ip_servidor/owncloud/files/webdav.php
use this address to connect to your ownCloud in your file manager

Este é o endereço para podermos sincronizar os arquivos da nossa nuvem com algum dispositivo em nosso caso vamos configurar um Ubuntu 11.10 para se conectar em nossa nuvem e montar o nosso diretório pessoal da nuvem.

Os seguintes passos devem ser executados no Ubuntu 11.10

Vamos à configuração, precisamos instalar um pacote para dar suporte ao sistema de arquivos dav.

aptitude install davfs2 -y

Agora vamos mandar reconfigurar o nosso pacote, nessa reconfiguração selecione yes ou sim.

dpkg-reconfigure davfs2

Agora vamos adiconar o nosso usuário no grupo do davfs2

gpasswd -a douglas davfs2

Vamos criar o diretório para o sincronismo de nossa nuvem e vamos acertar as permissões dele

mkdir /home/douglas/owncloud
chown -R douglas:douglas /home/douglas/owncloud

Agora vamos configurar o /etc/fstab, adicone no final do arquivo

vim /etc/fstab
[...]
http://ip_servidor/owncloud/files/webdav.php /home/douglas/owncloud davfs user,rw,noauto,uid=douglas,gid=douglas 0 0 

Agora vamos mandar ele montar o nosso diretório da nuvem em /home/douglas/owncloud

mount /home/douglas/owncloud
Please enter the username to authenticate with server
http://ip_servidor/owncloud/files/webdav.php or hit enter for none.
  Username: douglas #usuário que é utilizado para autenticar no owncloud
Please enter the password to authenticate user douglas with server
http://ip_servidor/owncloud/files/webdav.php or hit enter for none.
  Password:  #senha

Agora vamos mandar listar os nossos pontos de montagem

mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro,commit=0)
[...]
http://ip_servidor/owncloud/files/webdav.php on /home/douglas/owncloud type davfs (rw,nosuid,noexec,nodev,uid=1000,gid=1000,_netdev)

Agora já podemos ir armazenando os arquivos no diretório /home/douglas/owncloud que vai ser tudo sincronizado automaticamente com o owncloud.

Vamos fazer um teste, vamos criar uma pasta dentro de /home/douglas/owncloud e vamos conferir em http://ip_servidor/owncloud se o diretório foi sincronizado.

mkdir Fotos

Agora vamos conferir em nosso owncloud em http://ip_servidor/owncloud

Já estamos com a nossa nuvem funcionado e o nosso Ubuntu 11.10 sincronizado com ela.

E se eu reiniciar a maquina o que vai acontecer ?

Você vai ter que montar novamente o seu compartilhamento, porém vamos montar um script para subir o nosso compartilhamento quando o sistema for iniciado.

vim /etc/init.d/nuvem
#!/bin/bash
### BEGIN INIT INFO
# Provides:             nuvem
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6 
# Short-Description:    Nuvem Owncloud
### END INIT INFO
 
GREY="\033[01;30m" RED="\033[01;31m" GREEN="\033[01;32m" YELLOW="\033[01;33m"
BLUE="\033[01;34m" PURPLE="\033[01;35m" CYAN="\033[01;36m" WHITE="\033[01;37m"
CLOSE="\033[m"
 
MONTAGEM="/home/douglas/owncloud"
MOUNT=$(which mount)
UMOUNT=$(which umount)
 
#O usuário e senha abaixo são os mesmos para conectar em http://ip_servidor/owncloud
USUARIO="douglas"
SENHA="senha"
 
valida(){
if [ $? -eq 0 ]; then
  echo -e "${GREEN}[  OK  ]${CLOSE}"
else
  echo -e "${RED}[  FALHOU  ]${CLOSE}"
fi
}
 
start(){
echo -e "${GREEN}CONECTANDO A NUVEM${CLOSE}"
${MOUNT} ${MONTAGEM} << EOF
${USUARIO}
${SENHA}
EOF
echo -e "${GREEN}NUVEM CONECTADA $(valida) ${CLOSE}"
}
 
stop (){
echo -e "${RED}DESCONECTANDO DA NUVEM${CLOSE}"
${UMOUNT} ${MONTAGEM}
echo -e "${RED}DESCONECTADO DA NUVEM $(valida) ${CLOSE}"
}
 
case "$1" in
start)
start;;
 
stop)
stop;;
 
restart)
stop
start
;;
 
*)
echo -e "${RED}COMANDO INVALIDO${CLOSE}"
;;
esac
 
exit 0

Agora vamos acertar a permissão do nosso script

chmod 755 /etc/init.d/nuvem

Agora vamos testar ele

/etc/init.d/nuvem stop
DESCONECTANDO DA NUVEM
/sbin/umount.davfs: waiting while mount.davfs (pid 9686) synchronizes the cache .. OK
DESCONECTADO DA NUVEM [   OK   ] 

Agora vamos iniciar a nuvem novamente

/etc/init.d/nuvem start
CONECTANDO A NUVEM
Please enter the username to authenticate with server
http://ip_servidor/owncloud/files/webdav.php or hit enter for none.
  Username: Please enter the password to authenticate user douglas with server
http://ip_servidor/owncloud/files/webdav.php or hit enter for none.
  Password:  
NUVEM CONECTADA [   OK   ] 

Agora vamos inserir ele na inicialização do sistema

update-rc.d nuvem defaults
 Adding system startup for /etc/init.d/nuvem ...
   /etc/rc0.d/K20nuvem -> ../init.d/nuvem
   /etc/rc1.d/K20nuvem -> ../init.d/nuvem
   /etc/rc6.d/K20nuvem -> ../init.d/nuvem
   /etc/rc2.d/S20nuvem -> ../init.d/nuvem
   /etc/rc3.d/S20nuvem -> ../init.d/nuvem
   /etc/rc4.d/S20nuvem -> ../init.d/nuvem
   /etc/rc5.d/S20nuvem -> ../init.d/nuvem

Agora quando o computador reinicar o sistema já vai logar na nuvem e mapear ela automáticamente.

Referências