owncloud

mal ganz ehrlich: dr*pbox & co sind doch eigentlich ne tolle sache, oder ? wenn da nicht mindestens zwei dinge wären:

  1. es ist nicht (wirklich) kostenlos
  2. der feind kann zu einfach mithören
wäre es da nicht schön, seine eigene cloud aufzubauen ? und dank der leistungsfähigen mini computer a la raspberry pi geht das auch
wie ? das möchte ich hier kurz vorstellen


installation

ich habe mich bei meiner installation an diese anleitung gehalten: http://raspberry.tips/server-2/owncloud-8-auf-dem-raspberry-pi-2-1/
das internet vergisst zwar nix, aber vorsichtshalber fasse ich die wichtigsten schritte nochmal zusammen

ssl zertifikat erstellen

webserver konfiguration für ssl

konfigurationsdatei öffnen sudo nano /etc/lighttpd/lighttpd.conf und folgende zeilen ans ende kopieren. server.name natürlich durch euren hostnamen ersetzen und ggf noch den port anpassen
# SSL Server settings
$SERVER["socket"] == ":443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl/server.pem"
ssl.ca-file = "/etc/lighttpd/ssl/server.crt"
# hier müsst ihr euren Hostname angeben
server.name = "raspberrypi"
server.document-root = "/var/www/owncloud"
ssl.use-sslv2 = "disable"
ssl.use-sslv3 = "disable"
ssl.use-compression = "disable"
ssl.honor-cipher-order = "enable"
ssl.cipher-list = "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-RC4-SHA:ECDHE-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:ECDH-RSA-RC4-SHA:ECDHE-RSA-AES256-SHA:RC4-SHA"
server.errorlog = "/var/log/lighttpd/serror.log"
accesslog.filename = "/var/log/lighttpd/saccess.log"
}

php installieren

sudo apt-get install php5-common php5-cgi php5-sqlite php5-gd php5-curl php5-json php5-intl php-pear php-apc php-xml-parser curl libcurl3 libcurl3-dev php5-mcrypt exif
sudo lighty-enable-mod fastcgi-php
sudo service lighttpd restart



datenbank installieren

owncloud kann mit mehreren datenbanken umgehen. für größere projekte wird mysql empfohlen. das ding erschien mir aber zu mächtig für den klein pi und habe mich deshalb für die leichtgewichtigere variante sqlite entschieden.
die installation ist simpel:
sudo apt-get install sqlite3



owncloud installieren

owncloud gibt es auch als installationspaket via apt-get. aber man kann bei dieser installation den zielort nicht selber bestimmen. daher lade ich es direkt runter und nutze für updates den updatemechanismus von owncloud
aktuelle version downloaden und entpacken
cd ~
wget https://download.owncloud.org/community/owncloud-8.0.4.tar.bz2
tar -jxvf owncloud-8.0.4.tar.bz2
und dann ins rootverzeichnis des webservers kopieren
cd ~
sudo rm -f /var/www/index.lighttpd.html
sudo cp -r owncloud /var/www
jetzt noch ein paar sicherheitseinstellungen am lighttpd vornehmen. am ende einkopieren
sudo service lighttpd stop
sudo nano /etc/lighttpd/lighttpd.conf

$HTTP["url"] =~ "^/owncloud/data/" {
        url.access-deny = ("")
}
$HTTP["url"] =~ "^/owncloud($|/)" {
        dir-listing.activate = "disable"
}
dann noch das document root umbiegen
server.document-root = "/var/www/owncloud"
und die verzeichnisrechte anpassen
sudo find /var/www/owncloud/ -type f -print0 | sudo xargs -0 chmod 0640
sudo find /var/www/owncloud/ -type d -print0 | sudo xargs -0 chmod 0750
sudo mkdir -p /var/www/owncloud/data
sudo chown -R root:www-data /var/www/owncloud/
sudo chown -R www-data:www-data /var/www/owncloud/apps/
sudo chown -R www-data:www-data /var/www/owncloud/config/
sudo chown -R www-data:www-data /var/www/owncloud/data/
sudo chown root:www-data /var/www/owncloud/.htaccess
sudo chmod 0644 /var/www/owncloud/.htaccess
jetzt noch das default charset auf utf-8 setzen, damit es keine probleme mit sonderzeichen gibt
sudo nano /etc/php5/cgi/php.ini

default_charset = "UTF-8"
ab sofort sollte unter https://<euer_name>/ owncloud einsatzbereit sein


sicher ist sicher

da der pi ja jetzt aus dem internet heraus erreichbar ist, sollte man einige sicherheitsvorkehrungen treffen


daten auf usb verschieben

  • installation der ntfs software
    sudo apt-get install ntfsprogs
  • mountpoint anlegen
    sudo mkdir /media/usb-hdd
  • systemlog einschalten
    tail –f /var/log/messages
  • stick reinstecken und merken, welche anschluss er bekommen hat. bei mir war es
    sda: sda1
  • zum automatischen einbinden die blkid ermitteln
    sudo blkid /dev/sda1
  • öffnen der fstab
    sudo nano /etc/fstab
  • und am ende das hier einfügen (natürlich mit eurer UUID
    UUID=8AD08510D08503A3 /media/usb-hdd/ ntfs-3g permissions,defaults,auto
  • jetzt in der ownCloud konfiguration den pfad anpassen
    sudo nano /var/www/owncloud/config/config.php
  • jetzt noch den data pfad anlegen, rechte vergeben und die bisherigen daten kopieren
    sudo mkdir -p /media/usb-hdd/owncloud
    sudo chown www-data:www-data /media/usb-hdd/owncloud
    sudo cp /var/www/owncloud/data /media/usb-hdd/owncloud
  • jetzt noch ein paar sicherheitseinstellungen
    sudo chown -R www-data:www-data /media/usb-hdd/owncloud
    sudo find /media/usb-hdd/owncloud -type d -exec chmod 750 {} ;
    sudo find /media/usb-hdd/owncloud -type f -exec chmod 640 {} ;
    sudo chown root:www-data /media/usb-hdd/owncloud/data/.htaccess
    sudo chmod 0644 /media/usb-hdd/owncloud/data/.htaccess
  • und dann den webserver durchstarten
    sudo service lighttpd restart
Next