Skip to content

Owncloud Infinite Scale - Hetzner Storagebox als Speichererweiterung nutzen

Published: at 17:58

Wenn man sich eine kleine VM bei Hetzner gemietet hat aber trotzdem eine Cloud mit ordentlich Speicher haben möchte, dann kann man dies über die Hetzner eigene Storagebox erreichen. Klar, kann man sich auch Blockstorage kaufen, dieser ist aber im Vergleich zur StorageBox sehr viel teurer. OCIS kann nativ noch keine Storageerweiterung (z.B. S3) anbinden, daher wird über einen lokalen Mountpoint die Speichererweiterung angebunden. Dies kann mit SMB oder SSHFs erfolgen. In dem Beispiel verwende ich SSHFS. Für die Bedienung von Docker verwende ich Portainer.

Ich hatte relativ viele Berechtigungsfehler. Die ganzen Befehle wurden als normaler User durchgeführt, nicht als root.

Owncloud Infinite Scale mit Docker aufsetzen

  1. Vorbereitung: Docker Compose File erstellen

Auf die Installation von Docker gehe ich hier nicht ein

Als erstes sollte das Docker Compose File vorbereitet werden. Ihr müsste in der Datei die “deineDomain” anpassen. Die mount Points /mnt/owncloud-storage sollten beibehalten werden, da diese die mount points der Storagebox sein werden.

version: "3.7"

services:
  ocis:
    image: owncloud/ocis:latest
    environment:
      # INSECURE: needed if oCIS / Traefik is using self generated certificates
      OCIS_INSECURE: "false"
      # OCIS_URL: the external domain / ip address of oCIS (with protocol, must always be https)
      OCIS_URL: "https://deineDomain.de"
      # OCIS_LOG_LEVEL: error / info / ... / debug
      OCIS_LOG_LEVEL: info
    volumes:
      # mount the ocis config file inside the container
      - /mnt/owncloud-storage/ocis.yaml:/etc/ocis/ocis.yaml
      - /mnt/owncloud-storage:/var/lib/ocis
    ports:
      - '9200:9200'
    restart: always  
networks:
  default:
    name: bridge2
    external: true     

Mittels SSHFS die Storagebox mounten

Um nun die Storagebox als Speichererweiterung nutzen zu können, muss dieser erstmal gemountet werden.

# Ordern erstellen
sudo mkdir /mnt/owncloud-storage
# SSHFS Installieren
sudo apt update && sudo apt install sshfs
# Storagebox mit SSHFs mounten
sshfs -p 23 -o allow_other,default_permissions usernamevonderStoragebox@usernamevonderStoragebox.your-storagebox.de:/home/owncloud-storage/ /mnt/owncloud-storage -o idmap=user -o uid=$(id -u) -o gid=$(id -g)

Anzupassen ist der Benutznername von eurer Storagebox. SSHF mountet den Ordner von der Storagebox /home/owncloud-storage nach
/mnt/owncloud-storage.

In der Storagebox muss natürlich der “owncloud-storage” Ordner angelegt sein.

Owncloud initialisieren

  1. Bevor der Docker-Container gestartet wird, muss die Konfiguration initialisiert werden.
# In den mount point wechseln
cd /mnt/owncloud-storage
# OCIS initialisieren
docker run --rm -it -v $(pwd):/etc/ocis/ owncloud/ocis:latest init

Das ausgegebene Passwort ist das Admin-Kennwort.

Docker Container starten

Wenn die Schritte durchgeführt wurden, kann der Container gestartet werden und die Seite von OCIS erscheint.

Automatischer Mount mit Fstab einrichten

  1. SSH Key generieren und auf die Storagebox kopieren

Damit das SSHFS auch beim booten eingebunden wird, müssen wir unseren SSH public Key auf die Storagebox kopieren, um einen Passwortlosen Zugang zu ermöglichen.

# Falls kein SSH Key auf der Hetzner VM existiert
ssh-keygen
# Key auf die Storagebox kopieren
ssh-copy-id -i /home/user/.ssh/id_rsa.pub -p 23 -s username@username.your-storagebox.de
# Connection test
ssh -p 23 username@username.your-storagebox.de
# SSH Privatkey und know_hots nach root kopieren, falls kein identityFile angegeben wird
cd /home/user/.ssh
sudo cp known_hosts id_rsa /root/.ssh

Wichtig: Um beim Bootvorgang die Storagebox zu mounten, muss der SSH Key im /root/.ssh/ liegen, anderen Falls muss der SSH-Key mit “identityFile” direkt angegeben werden. Anzupassen sind hier wieder der Linux Benutzernamen und der der Storagebox.

  1. Fstab editieren
nano /etc/fstab
# Einfügen:
sshfs#username@username.your-storagebox.de:/home/owncloud-storage/ /mnt/owncloud-storage fuse uid=1000,gid=1000,allow_other,_netdev,IdentityFile=/home/user/.ssh/id_rsa,port=23 0 0

https://owncloud.dev/ocis/guides/ocis-local-docker/