Installare OwnCloud sul Raspberry

OwncloudRasp

 

Una delle ultime tecnologie più utilizzate è il cloud. Siamo circondati da questi servizi di storage e noi non ne possiamo fare a meno, abbiamo sempre più bisogno di memoria dove salvare i nostri dati, e magari in un posto dove che sia sempre accessibile come per esempio DropBox o Google Drive.

Ma uno degli argomenti principali nell'ultimo periodo non è solo il cloud, ma anche la sicurezza informatica e soprattutto la privacy.
Quanto siamo disposti a fidarci di lasciare i nostri dati, foto e file su questi servizi?
In fin dei conti stiamo salvando i dati su dispositivi hardware, e come ben sappiamo non è difficile recuperare file da loro. Ma per fortuna, l'open source, ci viene in contro anche per questa esigenza grazie al servizio di OwnCloud, che ci permette di tenere sotto controllo tutti i nostri dati ovunque.

 

INTRODUZIONE
OwnCloud è un software open source che permette di gestire un proprio server per il cloud, una sorta di proprio DropBox.
Questo servizio mette a disposizione dei software per il client e per il server, direttamente scaricabili dal sito internet di OwnCloud.
Ma come avrete notato dal titolo di questo post, perché non far convergere OwnCloud e il Raspberry in un unica soluzione?
Ed è proprio quello che andremo a vedere oggi!

 

INSTALLAZIONE
Iniziamo l'installazione entrando sul Raspberry con ssh.
Come prima cosa installiamo le cose necessarie per far funzionare il nostro piccolo server, ma prima può essere utile aggiornare le dipendenze quindi scriviamo:

 

sudo apt-get update

 

e poi diamo il seguente comando:

 

sudo apt-get install apache2 php5 php5-gd php-xml-parser php5-intl php5-sqlite php5-mysql smbclient curl libcurl3 php5-curl

 

Una volta finita l'installazione, scarichiamo dal sito ufficiale il software di OwnCloud per il nostro piccolo server:

 

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

 

Ora che lo abbiamo scaricato ovviamente dobbiamo estrarlo quindi diamo il seguente comando:

 

tar -xjf owncloud-8.0.2.tar.bz2

 

Ora che abbiamo terminato l'estrazione, copiamo la cartella di OwnCloud all'interno di /var/www e modifichiamo il proprietario dando i seguenti comandi:

 

sudo cp -r owncloud /var/www
sudo chown -R www-data:www-data /var/www/

 

Ora abilitiamo il servizio di OwnCloud per farlo funzionare con Apache editando un suo file, scrivendo al posto di AllowOverride None questo AllowOverride All , dando il seguente comando:

 

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

 

Ora procediamo con l'installazione del database, che ci servirà per memorizzare gli utenti di OwnCloud, quindi diamo il seguente comando:

 

sudo apt-get install mysql-server mysql-client

 

Durante l'installazione vi chiederà di inserire la password per l'utente root del database.
Infine riavviamo il server Apache con il comando seguente:

 

sudo a2enmod rewrite 
sudo a2enmod headers 
sudo service apache2 restart

 

Ora apriamo un browser e scriviamo:

 

ip_address_raspberry/owncloud

 

Apparirà la schermata di OwnCloud dove inseriremo il primo utente, ossia l'utente amministratore.

Bene ora abbiamo quasi finito.
È buona norma salvare i dati su un dispositivo esterno come un hard disk, altrimenti se useremo pesantemente la memory card del Raspberry, questa farà una brutta fine molto preso!

Creiamo una directory all'interno di /media dove andremo a montare il nostro supporto USB e modifichiamo il nome del gruppo e proprietario dando i seguenti comandi:

 

sudo mkdir /media/cloud
sudo chown www-data:www-data /media/cloud

 

Ora montiamo il nostro supporto USB all'interno della directory /media/cloud:

 

sudo mount /dev/sdxy /media/cloud

 

Dove ovviamente /dev/sdxy è il nostro dispositivo. Spostiamo ora la directory dei dati al suo interno dando il seguente comando:

 

sudo mv /var/www/owncloud/data/ /media/cloud

 

Ora siamo quasi alla fine, editiamo un file di OwnCloud per dire dove salvare i dati modificando al suo interno:

 

'datadirectory' => '/var/www/owncloud/data' 

 

in:

 

'datadirectory' => '/media/cloud/data' 

 

Nel file:

 

sudo nano /var/www/owncloud/config/config.php 

 

Infine riavviamo il server Apache con il comando seguente:

 

sudo a2enmod rewrite 
sudo a2enmod headers 
sudo service apache2 restart

 

Ora facciamo in modo che il nostro dispositivo si monti automaticamente all'avvio del Raspberry, editando il file all'interno di /etc/fstab aggiungendo la seguente riga:

 


/dev/sdxy /media/cloud ext4 defaults,noatime 0 0

 

Non ci resta che testare il tutto! Apriamo il browser e digitiamo:

 


ip_address_raspberry/owncloud

 

Dopo averlo scritto dovrebbe apparire una schermata del genere:


owncloud_home


Ossia la stessa schermata che avete visto prima per inserire l'utente amministratore.
Una volta all'interno potrete aggiungere utenti e modificare, accedendo con l'utente amministratore che avete impostato prima.

Se volete accedere dall'esterno, sarà necessario assegnare al vostro Raspberry un indirizzo ip pubblico statico, e sbloccare la porta 80 del vostro modem. In più dovete aggiungere l'ip statico dentro l'opzione trusted_domains:

 


'trusted_domains' => 
array (
0 => '192.168.1.145',
1 => 'ip_statico'
)

 

editando il file:

 


sudo nano /var/www/owncloud/config/config.php

 

 

CONCLUSIONI

Oggi vi abbiamo mostrato come sfruttare il vostro Raspberry per avere una soluzione di cloud open source. Un modo facile e veloce per tenere sotto controllo tutti i propri file, con una semplice software.
Vi ricordo che per accedere al cloud, oltre all'applicazione desktop, ci sono anche le applicazioni per smartphone scaricabili dallo store.
E' possibile acquistare il modello completo Raspberry Pi 2 B Complete Starter Kit oppure il modello base di Raspberry Pi 2 B. Noi di Tux Maniacs consigliamo il primo in quanto è esteticamente più curato e vengono forniti tutti gli accessori per utilizzarlo al 100% e fin da subito. Al prossimo post! 😉

 

FONTI:
- Immagini Joel Garia;
- Wikipedia OwnCloud;
- OwnCloud;

Dottore in Informatica. Da sempre appassionato di Linux, reti informatiche, sicurezza e, in modo amatoriale, all'elettronica. Il mio intento è quello di trasmettere le mie conoscenze ad altri appassionati.

20 risposte

  1. Ciao, per "colpa" tua ho comprato un Raspberry e sono entrato nel mondo Debian!
    Grazie.

    Nel post, alla fine dici "Se volete accedere dall'esterno, sarà necessario assegnare al vostro Raspberry un indirizzo ip pubblico statico, e sbloccare la porta 80 del vostro modem. In più dovete aggiungere l'ip statico dentro l'opzione trusted_domains:"

    Ma come faccio ad editare il file trusted_domain ?
    Grazie e scusa
    Paolo

  2. Ciao,
    mi congratulo anzitutto con la guida dettagliata che hai pubblicato. Da un pò che smanetto con Raspberry+Ownocloud e non sono riuscito a metterlo in piedi, la prima anomalia si riscontra al comando: "sudo nano /etc/apache2/sites-enabled/000-default" e più precisamente non vi è la voce da modificare . . .

    • Risolto, è bastato modificare nel file "/etc/apache2/sites-available/000-default.conf" la voce:
      DocumentRoot /var/www/html
      in
      DocumentRoot /var/www
      riavviato apache e tutto OK!

      • Daniele Scanu - Blogger

        Perfetto:D

        • Ciao,
          tutto funzionante alla perfezione meno che per un dettaglio, in pratica ho abilitato l'SSL su Apache ma non trovo le indicazioni per "forzarlo" all'inoltro verso HTTPS qualora si voglia accedere normalmente in HTTP, spero di aver reso l'idea.
          Ho seguito alla lettera le indicazioni nella sezione "Abilitare ssl su Apache", se imposto io manualmente in HTTPS funziona regolarmente mentre se accedo in HTTP non mi forza la connessione 🙁

          • Daniele Scanu - Blogger

            Ciao Giuseppe,
            effettivamente questo è un particolare che ho tralasciato nel post. Comunque puoi risolvere semplicemente aggiungendo queste righe al file di configurazione di Apache, ad esempio nel virtual host che hai creato:

            ProxyPass https://tuo_dominio.it http://tuo_dominio.it
            ProxyPassReverse https://tuo_dominio.it http://tuo_dominio.it

            In questo modo Apache reindirizza tutto il traffico che arriva su http in https. Per abilitare il modulo "proxy" di Apache dai il seguente comando:

            sudo a2enmod proxy_http

            e infine riavvia Apache:

            sudo /etc/init.d/apache2 restart

          • Giuseppe

            Grazie della dritta e della disponibilità, dopo ci provo e fornisco conferma dell'effettiva funzionalità.
            Grazie ancora!

          • Giuseppe

            Inserite in 000-default.conf:

            ServerAdmin webmaster@localhost
            DocumentRoot /var/www/owncloud
            ProxyPass https://192.168.1.12 http://192.168.1.12
            ProxyPassReverse https://192.168.1.12 http://192.168.1.12
            Come dicevo ho provato sia con IP rete interna come indicato sopra ed anche con IP pubblico statico

          • Daniele Scanu - Blogger

            Mi servirebbe vedere tutto il file per capire dov'è il problema. Prova a fare così, segui questo nostro post: https://tuxmaniacs.it/2016/10/virtuahost-con-apache.html dove vengono spiegati i virtualhost su Apache. Fai due virtualhost, uno per la porta 80 (dove andrai a mettere il proxypass) e l'altro normale dove gestisci l'https (come fai ora). Tieni solamente questi due virtualhost così eviti possibili conflitti.

          • Giuseppe

            Grazie infinite, troppo gentile come sempre per celerità e disponibilità.
            Ci provo!

          • Daniele Scanu - Blogger

            Figurati, sempre disponibili 😉

        • Nulla da fare, ho impostato sia IP pubblico (che tra l'altro è statico) ed ho tentato anche con IP interno della LAN ma il risultato non cambia per connettermi in HTTPS devo per forza digitarlo 🙁

          • Daniele Scanu - Blogger

            Strano, esattamente dove le hai messe quelle righe che ti ho scritto? La prima cosa che mi viene in mente è che non sono mai lette da Apache. Verifica che siano nel virtualhost della porta 80, non 443.

          • Giuseppe

            Risolto, spulciano in rete ho rimediato un'altra soluzione!
            Basta inserire la riga di seguito nel file del VH:
            Redirect permanent / https://xxx.xxx.xxx.xxx/
            dove chiaramente le xxx rappresentano l'indirizzo locale Raspi, e funziona!
            Spero sia di aiuto anche per gli altri e che sia comunque una valida alternativa.
            Grazie ancora per tutti consigli e soprattutto buone festività Pasquali!

          • Daniele Scanu - Blogger

            Perfetto, sono contento che ci sei riuscito, sarà di sicuro molto utile anche ad altre persone;)

            Buone feste anche a te!

  3. Ciao,
    io avrei un problema con i diritti, ho fatto come scrivi tu, poi i dati li ho messi su una chiavetta USB montata e funzionante, solo che quando avvio da browser owncloud mi appare
    La cartella dei dati (/media/owncloud/data) è leggibile dagli altri utenti
    Modifica i permessi in 0770 in modo tale che la cartella non sia leggibile dagli altri utenti.
    Non riesco a risolvere perchè pare che i permessi non riesco a modificarli

    • Daniele Scanu - Blogger

      Per modificare i permessi di quella cartella devi essere utente root. Prova con "sudo" davanti al comando e dovrebbe funzionare.

  4. Ciao e come prima cosa ti ringrazio per la guida.
    Ho un problema quando arrivo a questo punto:-
    "Ora montiamo il nostro supporto USB all'interno della directory /media/cloud:
    sudo mount /dev/sdxy /media/cloud
    Dove ovviamente /dev/sdxy è il nostro dispositivo. Spostiamo ora la directory dei dati al suo interno dando il seguente comando:

    ... dopo aver dato il seguente comando
    sudo mv /var/www/owncloud/data/ /media/cloud
    ... ricevo questo messaggio :-

    pi@raspberrypi:~ $ sudo mv /var/www/owncloud/data/ /media/cloud
    mv: impossibile creare la directory "/media/cloud/data": Operazione non permessa

    cosa fare???

    • Daniele Scanu - Blogger

      Ciao Vincenzo,
      hai controllato che il supporto USB sia stato montato correttamente? Se si, prova a diventare direttamente utente root, dando "sudo -i", e ridai il comando senza "sudo" davanti.

Lascia un commento