NextCloud / ownCloud auf einem RaspberryPi / BananaPi

Download von NextCloudPi unter: https://ownyourbits.com/nextcloudpi/

oder händisch nach folgender Anleitung:

bananapiBetriebssystem auf SD-Karte installieren

Im Folgenden wird die Einrichtung mit Bananian, einer Debian-Variante für den BananaPi, gezeigt.

Download

wget http://dl.bananian.org/releases/bananian-latest.zip
unzip bananian-latest.zip

auf SD-Karte kopieren

Die SD-Karte muss min. 2 GB groß und Class 10 sein.

# SD-Karte einlegen, das Device der SD-Karte ermitteln
dmesg | tail          
# Gegebenenfalls die Karte unmounten
sudo umount /dev/<sd-card>
# Image kopieren (<sd-card> steht für z.B. sdd)
sudo dd if=bananian-<xxxx>.img of=/dev/<sd-card> bs=1M && sync

Erster Start von Bananian

SD Karte in den BananaPi einlegen und den BananaPi booten (einfach Stromversorgung einstecken).

Der Standard-Login ist „root“, das Standard-Passwort ist „Pi“. Dann die Grundkonfiguration durchführen:

bananian-config
bananian-update

Externe Festplatte einbinden (optional)

Device ermitteln:

fdisk -l

Im Folgenden wird davon ausgegangen, dass die Festplatte als Device /dev/sda eingebunden ist.

Festplatte partitionieren (mit parted):

select /dev/sda
mktable msdos
mkpart primary ext4 0% 100%
q

Dateisystem erstellen:

mkfs -t ext4 /dev/sda1 -V

In die fstab eintragen:

mkdir /mnt/hdd
echo "/dev/sda1 /mnt/hdd ext4 defaults 0 0" >> /etc/fstab
mount -a

Owncloud installieren

Repository einfügen und OwnCloud installieren

wget -O - http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_8.0/Release.key | apt-key add -
echo "deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_8.0/ /" > /etc/apt/sources.list.d/owncloud.list
apt-get update
apt-get install owncloud php-pear php-apc

Apache konfigurieren

Apache auf die .htaccess-Datei der Owncloud einstellen

In die Datei /etc/apache2/sites-enabled/000-default folgendes am Ende anfügen:

<Directory /var/www/owncloud>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 Allow from all
</Directory>

Apache neu starten:

service apache2 reload

Maximale Dateigröße auf 2 GB anheben

In der Datei /var/www/owncloud/.htaccess folgende Zeilen anpassen:

php_value upload_max_filesize 2G
php_value post_max_size 2G

In der Datei /etc/php5/apache2/php.ini folgende Zeilen anpassen:

upload_max_filesize = 2G
max_file_uploads = 200
post_max_size = 2G

Cache aktivieren:

In der Datei /www/owncloud/config/config.php folgendes eintragen:

'memcache.local' => '\OC\Memcache\APC',

Apache neu starten:

a2enmod rewrite
a2enmod headers
service apache2 reload

SSL aktivieren

Zertifikate erstellen

Am besten in ein Verzeichnis wechseln, welches nur vom Root erreichbar ist, z. B. mit

cd /root
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.crt -reqexts v3_req -extensions v3_ca

Dateneingabe während der Zertifikaterstellung:

    • Country Name (Ländercode): = DE
    • State or Province Name (Bundesland): = <Bundesland>
    • Locality Name, eg. City (Stadt): = <Ort>
    • Organization Name (Firmenname): = Privat
    • Organizational Unit Name (Abteilung) = <Enter>
    • Common Name, eg. YOUR Name: = <domain> „Hier muss die Domain angegeben werden, über die der Server erreichbar ist (bei Nutzung eines DynDNS-Dienstes, die dort zugeteilte Adresse)“
    • Email Adress: = <E-Mail>
    • A challenge password: = <Enter>
  • An optional company name: = <Enter>
Apache anpassen

In der Datei /etc/apache2/sites-enabled/000-default folgende Zeichen am Ende der Datei hinzufügen:

<VirtualHost *:443>
        DocumentRoot /var/www
        ServerName tuxcloud
        SSLEngine on
        SSLCertificateFile /root/server.crt
        SSLCertificateKeyFile /root/server.key
</VirtualHost>

In der Datei /etc/apache2/sites-available/default folgende Zeichen am Ende der Datei hinzufügen:

<VirtualHost *:443>
        DocumentRoot /var/www
        ServerName tuxcloud
        SSLEngine on
        SSLCertificateFile /root/server.crt
        SSLCertificateKeyFile /root/server.key
</VirtualHost>

In der Datei /etc/apache2/sites-available/default-ssl folgende Einträge anpassen:

SSLCertificateKeyFile /root/server.key
SSLCertificateFile /root/server.crt

Apache-Konfiguration anpassen und testen:

a2enmod ssl
apache2ctl configtest

Hier sollte ein „Syntax OK“ herauskommen.

Apache neu starten:

service apache2 reload

MySQL installieren

MySQL ist deutlich schneller als SQLite und empfiehlt sich bei größeren Datenmengen.

Installation MySQL

apt-get install mysql-server

Während der Installation öffnet sich ein Fenster, für das root-Passwort, das an dieser Stelle definiert werden muss.

Installation PHPmyAdmin und Datenbank einrichten

apt-get install phpmyadmin

Während der Installation fragt phpMyAdmin, welchen Webserver verwendet werden soll. In unserem Fall ist das apache2. Weiterhin Passwort für den administrativen Benutzer von MySQL eingeben.

Dann die Datenbank für Owncloud einrichten:

http://<IP des Servers>/phpmyadmin

unter Datenbank neuen Namen „owncloud“ eingeben und Datenbank speichern.

Zugriff von außen (über das Internet)

Um über das Internet auf den Server zugreifen zu können braucht man eine feste Adresse. Diese kann man z.B. über spdns.de bekommen. Im Router wird dieser Dienst bei DynDNS eingetragen und eine Portweiterleitung von Port 443 (HTTPS) zum Server gemacht.

Owncloud einrichten

Erster Start

http://<IP des Servers>/owncloud/

Benutzer: root
Passwort: *****

Datenbank auf MySQL umstellen

cd /var/www/owncloud
su www-data
php occ db:convert-type --password="passwort" --all-apps mysql root localhost owncloud

Umstellung auf Cron

Aufräumen nicht nach jedem Seitenaufruf sondern über Cron (beschleunigt Seitenaufrufe):

EDITOR=vim.tiny && crontab -u www-data -e
*/15 * * * * php -f /var/www/owncloud/cron.php

Als Administrator im Web-Frontend unter „Administration“ von Ajax auf Cron umstellen.

Einbindung externer Speicher

Samba-Client installieren:

apt-get install smbclient

Als root in Owncloud die App „External storage support“ aktivieren und unter „Administration“ dann die benötigten Speicher einbinden.

E-Mail-Versand einrichten

Hier am Beispiel eines GMX-Accounts:

Als root unter „Administration“ die Mail-Daten eingeben

  • Sende-Modus: smtp
  • Verschlüsselung: TLS
  • Absender-Adresse: <Login> | gmx.de
  • Authentifizierung: „Anmelden“ und „Authentifizierung benötigt“
  • Adresse des Servers: mail.gmx.net:587
  • Zugangsdaten: <Login> | <Passwort>

In der Datei /var/www/owncloud/config/config.php sehen die Einträge so aus:

'mail_smtpmode' => 'smtp',
'mail_smtpsecure' => 'tls',
'mail_smtpauth' => 1,
'mail_smtphost' => 'mail.gmx.net',
'mail_smtpname' => '<Login>@gmx.de',
'mail_smtppassword' => '<Passwort>',
'mail_smtpport' => '587',
'mail_smtpauthtype' => 'LOGIN',
'mail_from_address' => '<Login>',
'loglevel' => '0',
'mail_domain' => 'gmx.de',

<Login> ist der Teil der Mailadresse vor dem @.

Kalender und Kontakte aktivieren

Im Administrationsmenü unter Apps/PIM Calendar und Contacts aktivieren.

Synchronisierung einrichten

Kontakte

Android

CADroid installieren und Zertifikate importieren
CardDAV-Sync free installieren
CardDAV-Konto hinzufügen
Server: https://<Server>/owncloud/remote.php/carddav

CardDAV-Kontakte können mit der APP „Contact Editor free“ (oder Pro-Version) bearbeitet werden.

Thunderbird/Icedove

Das Plugin „SOGo Connector“ installieren (unter Debian für Icedove über die Paketverwaltung „xul-ext-sogo-connector“ installieren).
Dann im Adressbuch über „File > New > Remote Addressbook“ hinzufügen. Die benötigte URL bekommt man über das OwnCloud-Frontend im Browser: APP Kontakte > Einstellungssymbol links unten > CardDAV-Link“.

Das AddOn CategoryManager erlaubt es die in ownCloud erstellen Gruppen zu synchronisieren

Kalender

Android

„CalDAV Sync Free Beta“ installieren
CalDAV-Konto in der Kalender-APP hinzufügen
Server: https://<Server>/owncloud/remote.php/caldav

Thunderbird/Icedove

neuer Kalender -> im Netzwerk -> CalDAV
https://<Server>/owncloud/remote.php/caldav/calendars/<user>/<kalender>
Offline-Unterstützung

Aufgaben

Hierzu muss in der Owncloud zusätzliche die APP „Tasks“ installiert werden:
Download unter https://apps.owncloud.com/content/show.php/Tasks?content=164356
entpacken und auf den Server hochladen in: /var/www/owncloud/apps
danach im Web-Frontend als root die App „Tasks“ aktivieren

Android

Synchronisation über CalDAV-Sync und Tasks von Marten Gajda.

Notizen

Mit qownnotes lassen sich auch Notizen wie in evernote oder onenote speichern und synchronisieren. Das passende git-repository ist: https://github.com/pbek/QOwnNotes

Zunächst muss im owncloud/apps-Verzeichnis die App qownnotesapi installiert werden.
https://github.com/pbek/qownnotesapi
Für den Desktop gibt es einen Client: http://www.qownnotes.org/

Android

Über F-Droid kann man sich unter https://f-droid.org/app/org.aykit.MyOwnNotes die passende App herunterladen.

Backup anlegen

Sicherung der Daten auf einen USB-Datenträger:

Mit blkid die UUID des USB-Datenträgers herausfinden. (Hier z.B. 7963a8a2-92e8-4050-9c8a-a84a06415824)
Ein Verzeichnis anlegen: mkdir /media/backup

Die Datei /etc/fstab erweitern:

 UUID=7963a8a2-92e8-4050-9c8a-a84a06415824 /media/backup ext4 defaults 0 2

in /root/ die Datei backup.sh anlegen. Inhalt:

#Backup-ownCloud
 tar -czvf "/media/backup/owncloud_$(date +"%Y%m%d").tar.gz" /var/www/owncloud
#Datenbank-Backup
 mysqldump --lock-tables -h localhost -u root -passwort owncloud > "/media/backup/owncloud-db_$(date +"%Y%m%d").bak"
#alte Dateien löschen
 find "/media/backup/" -type f -name "*-db_*.bak" -mtime +6 -exec rm -f {} \;
 find "/media/backup/" -type f -name "*.tar.gz" -mtime +6 -exec rm -f {} \;

ausführbar machen chmod +x backup.sh

In cron eintragen (alle Daten, die älter als 4 Tage sind, werden Nachts um 2:00 Uhr gelöscht):

crontab -e
 0 2 * * * /root/backup.sh

reboot

Einbindung per WebDAV

https://www.meinedomain.de/remote.php/webdav

Pfad zum Datenspeicher ändern

Der Pfad zum Datenspeicher (data) steht in /var/www/owncloud/config/config.php

Nach der Anpassung der Webserver neustarten: service apache2 restart

Update auf owncloud 9

Wenn nach dem Update weiterhin der Wartungsmodus angezeigt wird:
In der Datei /var/www/owncloud/config/config.php
maintenancemode => false auf true setzen

Evtl. müssen die in /var/www/owncloud die Dateien
phpinfo.inf und apache.pem gelöscht werden.

Damit die Aufgabenplanung wieder funktioniert muss die aktuelle Version von tasks von Hand heruntergeladen und ins Verzeichnis apps/tasks entpackt werden.
Download: https://github.com/owncloud/tasks/archive/DAVclient.zip

Backup

Mit calcardbackup lassen sich Adressbücher und Kontakte einfach sichern.

Android

ownCloud Client Zugriff auf den Cloudspeicher (F-Droid)
DAVdroid – Kalendersynchronisation (F-Droid)
o
wnCloud Client Zugriff auf den Cloudspeicher (GooglePlaystore)
CalDAV Sync Free
– zur Kalendersynchronisation (GooglePlaystore)