Die eigene Cloud mit dem Raspberry Pi und ownCloud

In diesem Beitrag zeige ich euch wie ihr euch eine eigene Cloud mithilfe des Raspberry Pi, ownCloud & Let’s Encrypt baut. Ihr benötigt außerdem eine DynDNS Domain. Ich empfehle euch spdyn.de und werde es auch anhand von diesem zeigen.

Einkaufsliste:

Raspbian herunterladen und auf SD-Karte schreiben:

wget http://director.downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2016-05-13/2016-05-10-raspbian-jessie-lite.zip

unzip 2016-05-10-raspbian-jessie-lite.zip

# rm 2016-05-10-raspbian-jessie-lite.zip

Mit folgendem Befehl kann überprüft werden wo die SD-Karte eingehängt ist:

lsblk

Das Image wird mit folgendem Befehl auf die SD-Karte geschrieben:

dd if=2016-05-10-raspbian-jessie-lite.img of=/dev/sdb

Die ganze SD-Karte nutzen:

Steckt nun die SD-Karte in den Raspberry Pi, schließt das LAN-Kabel an und gebt ihm Strom. Nach ein paar Sekunden könnt ihr euch über SSH anmelden.

ssh pi@raspberrypi

Das Passwort ist raspberry

sudo raspi-config

Über die Option Expand Filesystem erweitert ihr die SD-Karte.

raspi-config

Anschließend muss neugestartet werden.

Den Raspberry Pi auf den neusten Stand bringen:

sudo apt update
sudo apt upgrade

ownCloud installieren:

Nun installieren wir ownCloud auf dem Raspberry Pi

sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list"

wget -nv https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O Release.key

sudo apt-key add - < Release.key
sudo apt-get update
sudo apt-get install owncloud owncloud-files

DynDNS Domain bei  spdyn.de

Registriert euch zuerst bei spdyn.de und fügt über euer Profil bei Hosts von Benutzer einen IPv4 Host hinzu.

spdns Dynamic DNS Update-Client installieren:

Nun richten wir den spdns Update Client ein.

wget http://my5cent.spdns.de/wp-content/uploads/2014/12/spdnsUpdater_bin.tar.gz

tar -zxvf spdnsUpdater_bin.tar.gz

sudo mv spdnsu.conf /etc/

sudo mkdir updater

sudo mv spdnsu updater/

sudo chmod u+x updater/spdnsu

sudo chown -R pi:pi /home/pi/updater/

Anschließend müsst ihr die Datei /etc/spdnsu.conf anpassen. Dort müsst ihr anpassen:

  • Host
  • Username
  • Passwort (falls ihr über die Webseite einen Token generiert habt müsst ihr diesen statt des Passwortes eintragen)
sudo crontab -e

Dort einfügen:

*/10 * * * * /home/pi/updater/spdnsu

Testen, ob alles funktioniert:

./updater/spdnsu

Eure IP-Adresse findet ihr in der Datei /tmp/spdnsuIP.cnf

cat /tmp/spdnsuIP.cnf

Beispielausgabe:

currentIP=111.222.333.444

Portfreigabe einrichten:

Anschließend müsst ihr eine Portfreigabe einrichten. Ich zeige das hier mit einer AVM FRITZ!Box 7490

Meldet euch unter fritz.box auf eurer FRITZ!Box an und geht auf Internet > Freigaben

pf-fb

pf-fb2

pf-fb3

Let’s Encrypt herunterladen und Zertifikat erstellen:

Jetzt geht’s ans Zertifikat.

sudo apt install git -y

cd /etc

sudo git clone https://github.com/letsencrypt/letsencrypt

cd letsencrypt

sudo ./letsencrypt-auto

Hier müsst ihr eure DynDNS Domain eingeben. Let’s Encrypt erledigt den Rest von selbst.

Let’s Encrypt Zertifikat automatisch erneuern:

Das Zertifikat von Let’s Encrypt läuft nach 3 Monaten ab.  Aber zum Glück kann man sein Zertifikat automatisch erneuern lassen

Als erstes muss die cli.ini im Ordner /etc/letsencrypt erstellt werden:

sudo nano /etc/letsencrypt/cli.ini

Dort einfügen:

rsa-key-size = 4096
text = True
redirect = True
renew-by-default = True
agree-tos = True
email = mail@domain.tld

mail@domain.tld ist mit einer validen Mail-Adresse zu ersetzen. Mit Strg + O, Enter & Strg +X speichert ihr die Datei.

sudo /etc/letsencrypt/letsencrypt-auto certonly --agree-tos --renew-by-default -a webroot --webroot-path /var/www/owncloud/ -d host.spdns.de

host.spdns.de müsst ihr durch eure DynDNS Domain ersetzen. Nun müssen wir den Befehl noch in crontab einfügen:

sudo nano /etc/crontab

Dort einfügen

@weekly root /etc/letsencrypt/letsencrypt-auto certonly --agree-tos --renew-by-default -a webroot --webroot-path /var/www/netxcloud/ -d host.spdns.de

Mit Strg + O, Enter & Strg +X speichert ihr die Datei.

DocumentRoot anpassen:

Ändert bei den beiden Dateien /etc/apache2/sites-available/000-default.conf und /etc/apache2/sites-available/000-default-le-ssl.conf die Zeile von

DocumentRoot /var/www/html

zu

DocumentRoot /var/www/owncloud

Startet anschließend den Apache Webserver neu

sudo service apache2 restart

ownCloud einrichten:

Nun könnt ihr ownCloud einrichten. Ruft dazu die URL in eurem Browser auf. (passt euren Host vor spdns.de an).

Wenn mehrere Benutzer oder größere Dateien auf dem Pi gehostet werden sollen, solltet ihr unter Speicher & Datenbank MySQL auswählen.

Sicherheitswarnung entfernen:

Solltet ihr im Admin-Bereich folgende Fehlermeldung erhalten, …

oc-sicherheitswarung

… könnt ihr diese wie folgt entfernen:

sudo nano /var/www/owncloud/.htaccess

Dort am Ende der Datei einfügen:

<IfModule mod_headers.c>
 Header always add Strict-Transport-Security "max-age=15768000"
</IfModule>

 

Memory Cache nutzen

ownCloud empfiehlt euch einen Memory Cache zu nutzen. Diesen richtet ihr wie folgt ein:

sudo apt-get install php-apc

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

Dort vor ); einfügen:

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

 

Das war die gesamte Installation von ownCloud auf dem Raspberry Pi. Im Grunde genommen könnt ihr hier nun aufhören. Außer ihr wollt noch wissen wie man den ownCloud Client installiert.

ownCloud Client installieren:

Info: # = als root ausführen

## Debian 8

# echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud-client.list 
# wget http://download.opensuse.org/repositories/isv:ownCloud:desktop/Debian_8.0/Release.key
# apt-key add - < Release.key  
# apt-get update
# apt-get install owncloud-client

## Debian 7

# echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud-client.list 
# wget http://download.opensuse.org/repositories/isv:ownCloud:desktop/Debian_7.0/Release.key
# apt-key add - < Release.key 
# apt-get update
# apt-get install owncloud-client

## Ubuntu 16.04 LTS

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Ubuntu_16.04/ /' >> /etc/apt/sources.list.d/owncloud-client.list"
wget http://download.opensuse.org/repositories/isv:ownCloud:desktop/Ubuntu_16.04/Release.key
sudo apt-key add - < Release.key 
sudo apt-get update
sudo apt-get install owncloud-client

## Ubuntu 14.04 & Linux Mint 17.x

sudo sh -c "echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/Ubuntu_14.04/ /' >> /etc/apt/sources.list.d/owncloud-client.list"
wget http://download.opensuse.org/repositories/isv:ownCloud:desktop/Ubuntu_14.04/Release.key
sudo apt-key add - < Release.key 
sudo apt-get update
sudo apt-get install owncloud-client

 

Anzeige

Steven Seifried

Ich bin Steven, seit Juli 2014 veröffentliche ich auf canox.net die unterschiedlichsten Beiträge zu Linux & Android. Seit September 2015 verwende ich privat ausschließlich Linux (aktuell Ubuntu GNOME 16.04 LTS)

10 Antworten

  1. Mikel sagt:

    Hallo,
    Klasse Anleitung, ich würde die DynDNS allerdings über meine Webseite machen, dies ist ja mit der FritzBox möglich. Aber wie mache ich dies genau?
    Gruß Mikel

  2. Steven Seifried sagt:

    Hallo Mikel,

    wie meinst du das mit DynDNS über deine Webseite?

  3. Mikel sagt:

    Hallo Steven,
    ich will keinen Fremdanbieter bei der DynDNS, sondern will dies über einen mir bekannten Link über meine Webseite dann hin kommen. Da sich ja die IP alle 24h ändert.

  4. Steven Seifried sagt:

    Hallo Mikel,

    du kommst wahrscheinlich nicht um einen DynDNS-Anbieter herum. Bei STRATO scheint das was du vorhast zu funktionieren.
    https://www.strato.de/faq/article/671/So-einfach-richten-Sie-DynDNS-f%C3%BCr-Ihre-Domains-ein.html

    Ich hoffe ich konnte dir damit helfen.

  5. Tobias sagt:

    Hallo Steven,
    Klasse Beschreibung, hat mir sehr geholfen.
    Nun habe ich 2 PI’s hinter meiner FritzBox. wie kann ich denn beide erreichbar machen ? Port 443 2x frei zu geben geht ja nicht.
    Kannst Du mir einen Tip geben, wo ich ggf. überall die Ports ändern kann /muss?

    Danke schon mal

  6. Steven Seifried sagt:

    Hallo Tobias, 2 Pi’s freigeben dürfte bei der FRITZ!Box gehen.

    Du wählst die Option Andere Anwendungen und vergibst 2 Portfreigaben mit Port 443.Du musst sie wahrscheinlich nur unterschiedlich benennen. Dann sollte das funktionieren.

  7. Didi sagt:

    Hi, wie sähe es mit einer automatischen Erneuerung des LE-Zertifikats aus?

  8. Didi sagt:

    Bzw. wie kann man die Gültigkeit des Zertifikats manuell erneuern/verlängern?

  9. Steven Seifried sagt:

    Hallo Didi,

    ich habe nun einen Abschnitt für das automatische erneuern hinzugefügt

  10. Didi sagt:

    Super, vielen Dank. Dann kann ich das Projekt ja in Angriff nehmen. Zur Info: Die als Mail abonnierten Kommentare dieses Beitrages kommen nicht an.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.