Logo d-photos

Nextcloud: Cloud-Speicher in der Hetzner Cloud

Warum

Es gibt zahlreiche Möglichkeiten seine Daten zu sichern: Auf der guten externen Festplatte, im privaten Netzwerk auf einem NAS und/oder auf einem von unzähligen Cloud-Diensten. Ich hatte bisher zwei externe Festplatten für echte Backups und ein NAS im RAID 5 von QNAP. Die Tage meines NAS’ sind allerdings gezählt: Zu laut, zu unflexibel und eine Neuanschaffung auch einfach zu teuer. Vor allem wenn man auf Grund der Lautstärke SSDs einsetzen möchte.

Meine Alternative?

Eine Kombination von Cloud Server und Storage Box von Hetzner Online.

Zwar bietet Hetzner auch eine „Storage Share“-Lösung auf Basis von Nextcloud an, allerdings ist mir hier die Einbindung des Speichers zu unflexibel. Außerdem nutze ich den Cloud Server nicht nur für den Nextcloud-Dienst.

Das Setup?

In meinem Fall habe ich einen Cloud Server CPX21 (3 vCPUs, 4 GB RAM, OS: Ubuntu LTS 22.04) und eine Storage Box BX21 (5 TB Speicher)

Die Kosten?(Stand: 10.09.22)

  • Take-my-Money-Budget: 10,78 € (CPX21 inkl. Server-Backup und IPv4) + 48,31 € (20 TB Storage BX41) = 59,09 € pro Monat
  • Mein Setup: 10,78 € (CPX21 inkl. Server-Backup und IPv4) + 12,97 € (5 TB Storage BX21) = 23,75 € pro Monat
  • Low-Budget: 5,41 € (CX11 inkl. Server-Backup und IPv4) + 3,36 € (1 TB Storage BX11) = 8,77 € pro Monat

Welche Kenntnisse sollte ich haben?

Du solltest keine Angst vor dem Umgang mit dem Terminal haben und Seiten wie Stack Overflow kennen und nutzen :)

Los geht’s

  1. Unter console.hetzner.cloud eine Cloud-Instanz mit der gewünschten Leistung und Ubuntu 20.04 an einem beliebigen Standort anlegen (SSH-Key und automatisches Backup nicht vergessen!)
  2. Danach unter www.hetzner.de/storage/storage-box eine Storage Box in der gewünschten Größe bestellen (dauert in der Regel ein paar Minuten bis zur Bereitstellung)
  3. Sobald die Storage Box eingerichtet ist, kann über die Robot-Oberfläche ein Passwort gesetzt werden. Für den späteren Zugriff wird Samba aktiviert und (falls nicht benötigt) der externe Zugriff deaktiviert:
    Storage Box Konfiguration
  4. Wenn der Server erstellt wurde und hochgefahren ist, sollte das System erstmal auf den neusten Stand gebracht werden. Bei einem Kernel-Update sollte das System noch neugestartet werden:
    apt update && apt upgrade && reboot
  5. Danach folgt die Hochzeit zwischen Cloud-Instanz und Storage-Box. Dafür werden mit nano /etc/backup-credentials.txt die Zugangsdaten der Storage Box hinterlegt:
    username=u237601
    password=faNgbJy12KSid761
  6. Dann wird der Eintrag in der /etc/fstab-Datei hinzugefügt:
    //u237601.your-storagebox.de/backup /storage cifs vers=3.0,iocharset=utf8,rw,credentials=/etc/backup-credentials.txt,gid=www-data,file_mode=0660,dir_mode=0770 0 0
  7. Bevor das Storage eingebunden wird, müssen noch ein paar Schritte erledigt werden:
    # Zugriffsrechte für die Zugangsdaten einschränken
    chmod 400 /etc/backup-credentials.txt
    # Mountpoint anlegen
    mkdir /storage
    # PHP APT-Repository hinzufügen
    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E5267A6C
    echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ondrej-ubuntu-php.list
    # NGINX APT-Repository hinzufügen
    echo "deb http://ppa.launchpad.net/ondrej/nginx-mainline/ubuntu focal main" > /etc/apt/sources.list.d/ondrej-ubuntu-nginx.list
    # NGINX, PHP7.4 und weitere Tools installieren
    apt install certbot cifs-utils keyutils linux-modules-extra-$(uname -r) mysql-server-8.0 nginx php-apcu php-imagick php7.4 php7.4-bcmath php7.4-bz2 php7.4-cli php7.4-common php7.4-curl php7.4-fpm php7.4-gd php7.4-gmp php7.4-imap php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-readline php7.4-xml php7.4-zip python3-certbot-nginx unzip
  8. „Sie dürfen das Storage jetzt mounten“:
    mount -a
  9. Im Idealfall kommt keine Fehlermeldung und die Storage Box ist nun eingebunden. In meinem Test musste ich IPv6 deaktivieren, da die Konfiguration seitens Hetzner scheinbar nicht korrekt gesetzt ist.