Benutzer-Werkzeuge

Webseiten-Werkzeuge


nextcloudinstall

Nextcloud auf dem Raspberry Pi

1. Installation

Bevor Sie mit der Installation von Nextcloud beginnen, aktualisieren Sie am besten die Paketquellen des Systems und spielen die anstehenden Updates der Distribution ein (Listing 1, Zeile 1 und 2). Anschließend installieren Sie den Apache-Webserver mitsamt MariaDB und allen für den Dienst benötigten Apache- und PHP-Erweiterungen (Zeile 3). Für „lesbare“ URLs aktivieren Sie danach das Apache-Modul mod_rewrite sowie für die SSL-Verbindung noch mod_headers; anschließend starten Sie den Webserver neu (Zeile 4 bis 6). Als Datenbank ließe sich zwar auch SQLite einsetzen, für den Zugriff von mehr als zwei, drei Anwendern empfiehlt sich jedoch MySQL/MariaDB.

Listing 1

 sudo apt update
 sudo apt full-upgrade
 sudo apt install apache2 mariadb-server php5 libapache2-mod-php5 php5-gd php5-json php5-mysql php5-curl php5-intl php5-mcrypt php5-imagick
 sudo a2enmod rewrite
 sudo a2enmod headers
 sudo service apache2 restart

Bei der Installation des MariaDB-Servers erfragt das System ein Root-Passwort für den Datenbankserver. Dies sollte sich aus Sicherheitsgründen vom eigentlich Root-Passwort des Systems beziehungsweise vom Passwort für den Nutzer pi unterscheiden. Danach fehlt Nextcloud noch eine Datenbank, die in Zukunft die Daten des Cloudspeichers organisiert. Dazu melden Sie sich beim MariaDB-Server an und erstellen die Datenbank samt der entsprechenden Rechte und Einstellungen (Listing 2). Beim Anlegen des Datenbank-Benutzers (CREATE USER […]) sollten Sie zur Sicherheit ein besseres Passwort als geheim verwenden. Merken Sie es sich, Sie müssen es später nochmals eingeben.

Listing 2

 mysql -u root -p
 MariaDB [(none)]> CREATE DATABASE nextcloud;
 MariaDB [(none)]> CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'geheim';
 MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
 MariaDB [(none)]> FLUSH PRIVILEGES;
 MariaDB [(none)]> exit;

Let's Encrypt

Im nächsten Schritt ermöglichen Sie den Zugriff aus dem Internet und sichern die Verbindung zum Server über ein SSL-Zertifikat von Let's Encrypt. Dazu müssen Sie in einem ersten Schritt die Ports 80 und 443 (HTTP/HTTPS) von Ihrem Router auf den Nextcloud-RasPi weiterleiten. Zudem benötigen Sie eine Internet-Adresse, unter der sich Ihr Heimnetz künftig erreichen lässt – in der Regel teilt Ihr Internetanbieter Ihrem Router bei jeder Einwahl eine neue Internet-IP-Adresse zu. Kostenlos und ohne Nervigkeiten (wie etwa ein zwingend erforderliches monatliches Einloggen in die Weboberfläche) übernimmt zum Beispiel der DynDNS-Service diese Aufgabe.

Mit einer Fritzbox loggen Sie sich dafür unter http://fritz.box in die Routeroberfläche ein und öffnen dort das Menü unter Internet → Freigaben → Portfreigaben. Hier starten Sie mit einem Klick auf Neue Portfreigabe den entsprechenden Assistenten. Wählen Sie unter Portfreigabe aktiv für den Punkt Andere Anwendungen aus und tragen die entsprechenden Daten ein. Wiederholen Sie das Vorgehen nach dem Port 80 für den Port 443. Andere Router bieten zu diesem Vorgehen ähnliche Dialoge.

Ebenfalls unter den Freigaben finden Sie in den Fritzbox-Settings den Reiter Dynamic DNS. Im zugehörigen Dialog übernehmen Sie die von Ihrem DynDNS-Anbieter genannten Einstellungen. Der im Beispiel genutzte Dienst Ddnss.de gibt konkrete Anweisungen für Fritzbox-Router von AVM. Üblicherweise lassen sich diese auch für andere Router in ähnlicher Form übernehmen. Für einen ersten Test rufen Sie anschließend die Testseite des frisch eingerichteten Webservers über die DynDNS-Adresse auf.

Funktioniert das, ergänzen Sie den Webserver um das Let's-Encrypt-Zertifikat. Installieren Sie dazu die noch fehlenden Pakete certbot und python-certbot-apache. Dazu müssten Sie vorübergehend die Debian-Backports aktivieren. Für Raspbian „Jessie“ gibt es diese nicht – daher erhalten Sie während der Installation Fehlermeldungen, die besagen, dass die Schlüssel der Paketbetreuer nicht im System hinterlegt sind. Ignorieren Sie diese, und löschen Sie nach der Installation der Pakete den Eintrag für die Backports wieder aus der Paketverwaltung (Listing 3).

Listing 3

 sudo -s
 echo "deb http://httpredir.debian.org/debian jessie-backports main contrib non-free" > /etc/apt/sources.list.d/debian-jessie-backports.list
 apt-get update -y
 sudo apt install -t jessie-backports certbot python-certbot-apache -y
 rm /etc/apt/sources.list.d/debian-jessie-backports.list
 apt-get update

Danach erstellen Sie dann das Zertifikat (Listing 4). Die URL entspricht der zuvor erstellten DynDNS-Adresse. Die Frage nach dem Modus bewirkt, dass der Webserver automatisch alle Anfragen über das verschlüsselte HTTPS-Protokoll leitet (Secure) oder der Nutzer explizit die HTTPS-Adresse aufrufen müsste (Easy). Zur eigenen Sicherheit sollten Sie sich für die Secure-Methode entscheiden (Abbildung 3). Mit dem Schalter renew –dry-run –agree-tos überprüfen Sie dann, ob sich das nur 30 Tage gültige Zertifikat ordentlich aktualisieren lässt.

Listing 4

 sudo letsencrypt --apache -d home.beispiel.com
 sudo letsencrypt renew --dry-run --agree-tos

Damit Let's Encrypt das Zertifikat automatisch erneuert, richten Sie nun noch einen Systemd-Timer ein. Im Verzeichnis /etc/systemd/system erstellen Sie dazu entsprechend der ersten zwei Kommandos aus Listing 5 die Dateien letsencrypt.service und letsencrypt.timer, deren Inhalte Sie aus Listing 6 und Listing 7 übernehmen. Den Editor Nano beenden Sie mit [Strg]+[O],[Eingabe] und [Strg]+[X]. Der Dienst übernimmt die Aufgabe, das Zertifikat zu erneuern. Danach veranlasst er den Webserver, seine Einstellungen neu zu laden und damit ein gegebenenfalls erneuertes Zertifikat zu übernehmen. Die Timer-Unit führt den Let's-Encrypt-Dienst dann einmal am Tag automatisch aus.

Listing 5

 sudo nano /etc/systemd/system/letsencrypt.service
 sudo nano /etc/systemd/system/letsencrypt.timer
 sudo systemctl enable letsencrypt.timer
 systemctl list-timers --all | grep letsencrypt
 Mi 2016-06-22 00:00:00 CEST    12h left    n/a    n/a    letsencrypt.timer    letsencrypt.service

Listing 6

 [Unit]
 Description=Let's Encrypt renewal service
 [Service]
 Type=oneshot
 ExecStart=/usr/bin/letsencrypt renew
 ExecStartPost=/bin/systemctl reload apache2

Listing 7

 [Unit]
 Description=Daily renewal timer of Let's Encrypt's certificates
 [Timer]
 OnCalendar=daily
 Persistent=true
 [Install]
 WantedBy=timers.target

Nextcloud

Nextcloud erhalten Sie nun in Form eines Tarballs oder ZIP-Archivs. Entpacken Sie die Datei ins Wurzelverzeichnis des Webservers (/var/www/html/), und übertragen Sie dem System-User www-data die Rechte an den Daten unter /var/www/nextcloud/ (Listing 8).

Listing 8

 wget https://download.nextcloud.com/server/releases/nextcloud-Version.tar.bz2
 sudo tar xf nextcloud*.bz2 -C /var/www
 sudo chown -R www-data.www-data /var/www/nextcloud

Damit der Apache-Webserver die Daten nutzt, richten Sie danach einen virtuellen Host ein. Erstellen Sie dazu im Verzeichnis /etc/apache2/sites-available/ die Konfigurationsdatei nextcloud.conf (Listing 9), und befüllen Sie sie mit dem Inhalt von Listing 10. Die Änderung speichern Sie wieder über [Strg]+[O],[Eingabe] ab und verlassen Nano über [Strg]+[X]. Danach aktivieren Sie den V-Host und laden abermals die Konfiguration des Webservers neu. Sie müssten nun Ihre Nextcloud-Installation unter http://Beispiel.ddnss.de/nextcloud im Browser erreichen

Listing 9

 sudo nano /etc/apache2/sites-available/nextcloud.conf
 sudo a2ensite nextcloud
 sudo service apache2 reload

Listing 10

 Alias /nextcloud "/var/www/nextcloud/"
 <Directory /var/www/nextcloud/>
   Options +FollowSymlinks
   AllowOverride All
  <IfModule mod_dav.c>
   Dav off
  </IfModule>
  SetEnv HOME /var/www/nextcloud
  SetEnv HTTP_HOME /var/www/nextcloud
 </Directory>

Nach der Installation müssen Sie im Konfigurationsassistenten von Nextcloud noch den Zugang zum Datenbankserver einrichten.

Im Assistenten geben Sie nun die Zugangsdaten für den ersten administrativen Nutzer ein und weiter unten die (während der Installation des LAMP-Stacks vergebenen) Daten des MariaDB-Servers. In der Beispielkonfiguration wäre dies nextcloud als Datenbankbenutzer und Datenbankname, localhost für den Datenbank-Host sowie das bei der Konfiguration festgelegte Password für den Nextcloud-User der Datenbank.

Mit einem Klick auf Installation abschließen übertragen Sie diese Einstellungen in die Konfiguration. Der Browser leitet Sie danach automatisch auf den Startbildschirm von Nextcloud weiter. Für den Einstieg sollten Sie aus dem Ausklappmenü unter dem Benutzernamen die Einstellung Administrator öffnen. So sehen Sie auch etwaige Probleme in der aktuellen Konfiguration des Webservers.

Optimieren

Owncloud empfiehlt, einen PHP-Cache einzurichten, sodass diverse leistungshungrige Anweisungen des Programms nicht immer wieder neu ausgeführt werden müssen. Dieser Hinweis gilt auch für Nextcloud: Installieren Sie für den Cache das Paket php-apcu aus der Paketverwaltung, und tragen Sie dann in die Konfigurationsdatei config.php unter /var/www/nextcloud/config/ die Anweisung 'memcache.local' ⇒ '\OC\Memcache\APC', als neue Zeile vor dem abschließenden ); ein (Listing 11). Nextcloud übernimmt die Änderung an der Konfiguration automatisch beim nächsten Aufruf der Seite.

Listing 11

 sudo apt install php5-apcu
 sudo nano /var/www/nextcloud/config/config.php
 sudo cat /var/www/nextcloud/config/config.php
 [...]
   'installed' => true,
   'memcache.local' => '\OC\Memcache\APCu',
 );

Clients

Um auf Ihre Nextcloud-Installation zuzugreifen, müssen Sie nicht unbedingt einen Webbrowser öffnen. Netzwerkfähige Dateimanager wie Files (ehemals Nautilus) aus Gnome oder das KDE-Pendant Dolphin können über WebDAV die Cloud-Speicher ohne weitere Programme öffnen. Dazu geben Sie etwa in Files davs:beispiel.ddnss.de/nextcloud/remote.php/webdav als URL in die per [Strg]+[L] geöffnete Adresszeile ein. In Dolphin ersetzen Sie die Angabe des Protokolls am Anfang der URL mit webbdavs:[…].

Anschließend arbeiten Sie dann mit den entfernt gespeicherten Daten genauso wie mit lokalen Files. Um ähnlich wie bei Dropbox Dateien und Ordner zwischen den angebundenen Rechnern abzugleichen, benötigen Sie jedoch ein Client-Programm. Bisher gibt es nur für Android eine eigene Nextcloud-App, auf dem PC müssen Sie noch auf den Owncloud-Client zurückgreifen. Den finden Sie inzwischen in den Paketquellen diverser Distributionen (Debian/Ubuntu: owncloud-client).

Als Serveradresse geben Sie beim Einrichten des Clients die URL https://Beispiel.ddnss.de/nextcloud an. Danach folgen Sie den Anweisungen des Einrichtungsassistenten. Um Verwirrungen zu vermeiden, sollten Sie als Speicherort das Verzeichnis ~/Nextcloud/ anstatt ~/ownCloud vorgeben. Im Anschluss kopiert der Client die bislang auf dem Server gespeicherten Daten ins ausgewählte Verzeichnis. Kopieren Sie weitere Dateien dorthin, landen diese automatisch auf dem Nextcloud-Server.

Die Installation der Nextcloud-App für Android gelingt über den Google Play Store. Bis auf eine leicht andere Farbgebung unterscheidet sich die Smartphone-App kaum vom Owncloud-Pendant, anders als das „Original“ kostet sie jedoch nichts. Die Owncloud-App müssten Sie entweder für 0,79 Euro kaufen oder über den Open-Source-Market F-Droid einspielen. Eine Nextcloud-App für iOS gibt es derzeit noch nicht, die Owncloud-App für Apple-Geräte funktioniert jedoch auch mit einer Nextcloud-Installation – ähnlich wie die Desktop-App.

Fazit

Noch unterscheidet sich Nextcloud kaum von Owncloud – für Einsteiger ist es daher im Moment noch egal, ob sie mit dem Original oder dem Fork loslegen. Da das Gros der Entwickler nun aber bei Nextcloud arbeitet, dürften Neuerungen vermutlich künftig eher dort auftauchen. Zu den ersten Features dürften Audio- und Video-Chats über die Spreed.me-Software zählen. Ob Owncloud ähnlich wie OpenOffice.org oder MySQL in die zweite Riege abrutscht, bleibt abzuwarten.

Im Zusammenspiel mit dem Raspberry Pi funktioniert Nextcloud gut – allerdings sollten Sie nicht gleich Dutzende Anwender auf den Nextcloud-RasPi loslassen. Die größte Einschränkung liegt nach wie vor beim geringen Datendurchsatz des Mini-Rechners, da sich die USB-Ports und die Netzwerkschnittstelle intern einen USB-Port teilen und somit die real erzielbaren Datenraten unter denen eines 100-Mbit/s-Netzwerks liegen.

nextcloudinstall.txt · Zuletzt geändert: 2017/10/16 23:43 von 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki