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
- 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
- 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
- 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.
- 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