mal ganz ehrlich: dr*pbox & co sind doch eigentlich ne tolle sache, oder ?
wenn da nicht mindestens folgenden dinge wären:
- es ist nicht (wirklich) kostenlos - irgendeinen preis zahlt man immer
- der feind kann zu einfach mithören - auch wenn das oft bestritten wird
wäre es da nicht schön, seine eigene cloud aufzubauen?
und dank derinzwischen recht leistungsfähigen mini computer a la raspberry pi geht das auch
owncloud bietet aus meiner sicht den vorteil, dass es sehr viele plugins (erweiterungen)
gibt. damit kann man sich seine cloud nach den eigenen wünschen bauen.
neben der eigentlichen cloud nutzen wir auch folgende dinge in der familie:
- gemeinsame kalender
- gemeinsame kontakte
basis:
- einen raspberry pi (typ 2 b sollte es schon sein - besser ist der 3er)
- das aktuelle raspbian image draufpacken
- image aktualisieren
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo rpi-update
- webserver und andere benötigten basiskomponenten installieren:
sudo -s
apt-get install nginx openssl ssl-cert php5-cli php5-sqlite php5-gd php5-common php5-cgi php5-curl sqlite3 php-pear php-apc curl libapr1 libtool curl libcurl4-openssl-dev php-xml-parser php5 php5-dev php5-gd php5-fpm memcached php5-memcache varnish
- und eine swap datei erstellen bzw vergrößern:
der SWAP ist ein zwischenspeicher und wird ähnlich wie der rbeitsspeicher behandelt.
die SWAP-datei wird dabei auf der SD-karte des pi's abgelegt.
als saustregel wird gerne RAM * 2 = SWAP genommen.
für die meisten anwendungen auf dem pi genügt der arbeitsspeicher plus 1024 MB an SWAP.
sudo su -c 'echo "CONF_SWAPSIZE=1024" > /etc/dphys-swapfile'
sudo dphys-swapfile setup
#Nachdem die SWAP-File erzeugt wurde, ist diese einmalig zu aktivieren.
sudo dphys-swapfile swapon
zunächst erstellen wir ein elbsignierten zertifikat:
openssl req $@ -new -x509 -days 3650 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key
und dann müssen noch die rechte angepasst werden:
chmod 600 /etc/nginx/cert.pem
chmod 600 /etc/nginx/cert.key
das wars schon
zur sicherheit die original konfiguration wegsichern:
sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default-original
und jetzt neu erstellen und an zwei stellen den namen des pis oder die ip eintragen:
nano /etc/nginx/sites-available/default
upstream php-handler {
server 127.0.0.1:9000;
#server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name [IP-Adresse-Raspberry-Pi-eintragen];
return 301 https://$server_name$request_uri; # enforce https
}
server {
listen 443 ssl;
server_name [IP-Adresse-Raspberry-Pi-eintragen];
ssl_certificate /etc/nginx/cert.pem;
ssl_certificate_key /etc/nginx/cert.key;
# Path to the root of your installation
root /var/www/owncloud;
client_max_body_size 1000M; # set max upload size
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_pass php-handler;
}
# Optional: set long EXPIRES header on static assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
}
für eine cloud lösung sind die standardwarte aber viel zu klein.
daher sollten diese nach belieben angepasst werden:
nano /etc/php5/fpm/php.ini
upload_max_filesize = 1000M
post_max_size = 1000M
der listen port in der www.conf muss jetzt ggf noch angepasst werden:
nano /etc/php5/fpm/pool.d/www.conf
listen = 127.0.0.1:9000
damit ist die basiskonfiguration agbeschlossen. jetzt sollten php und webserver durchgestartet werden.
so sieht man sofort, wenn ein syntaxfehler o.ä. vorhanden ist.
/etc/init.d/php5-fpm restart
/etc/init.d/nginx restart
owncloud selber installieren
installationsverzeichnis anlegen:
mkdir -p /var/www/owncloud
mittels wget die gewünschte version herunterladen:
wget https://download.owncloud.org/community/owncloud-9.1.0.tar.bz2
und dann entpacken:
tar xvf ./owncloud-9.1.0.tar.bz2
jetzt noch ins www verzeichnis schieben und die rechte anpassen:
mv owncloud/ /var/www/
chown -R www-data:www-data /var/www
im browser die adresse oder den namen des pi's eingeben. der browser wird dann
mechern, dass keine sichere verbindung vorhanden ist. dieses liegt am
selbstsignierten zertifikat. einfach auf erweitert klicken und das zertifikat
akzeptieren.
dann muss noch ein administrator user und passwort angegeben werden und fertig sind wir.
iOS unterstützt caldav und carddav nativ. unter einstellungen -> mail, kontakte, kalender
jeweils einen neuen account für kalender und kontakte anlegen.
für iOS 7 als server-URL nur den host angeben. die komplette URL wird dann in den details angegeben.
als account-URL für kalender ist
<Domainname>/remote.php/caldav/principals/<username>/
anzugeben, es werden dann alle kalender synchronisiert.
für kontakte gilt:
<domainname>/remote.php/carddav/principals/<username>/