Eigene Cloud als Dropbox-Alternative hosten mit ownCloud
Cloud-Dienste wie Google Drive, Dropbox, Mega oder OneDrive sind beliebt wie nie zuvor. Wen wundert es? Von allen Geräten, egal ob Handy, PC oder Tablet kann auf die eigenen Dateien zugegriffen werden, und das von überall auf der Welt. Auch das Teilen von Dateien und Bildern war noch sie so einfach.
Wäre da nicht ein großes Problem: Die Daten liegen nicht mehr in der eigenen Hand. Will ich großen US-Unternehmen wirklich private Dokumente wie Lohnabrechnungen oder Familienbilder anvertrauen? Wegen fehlender Ende-zu-Ende-Verschlüsselung haben Google, Microsoft & Co. theoretisch jederzeit Zugriff auf die Daten ihrer Nutzer.
Genau deshalb habe ich angefangen ownCloud zu nutzen. Dabei handelt es sich um eine selbstgehostete Open-Source-Software, mit der ihr eure eigene Cloud mit allen wichtigen Funktionen (mehrere User, Teilen von Links, Zugriff auf Dateien über Browser und/oder Apps) betreiben könnt. Im Prinzip wie Dropbox nur unter eigener Kontrolle.
Anmerkung: Der aus ownCloud entstandene Fork Nextcloud ist wahrscheinlich deutlich bekannter und weiter verbreitet. Ich habe mich bewusst für ownCloud entschieden, da Nextcloud meiner Meinung nach umfangreicher und dadurch auch etwas träger ist. Für meinen Anwendungsfall reicht eine schlanke Cloud-Lösung ohne zusätzliche Funktionen wie Kontakte oder Kalender völlig aus.
Screenshots:


Voraussetzungen:
- Docker-Compose
- RAM: min. 512 MB, 2 GB empfohlen
- CPU: 2 Cores
Installation:
Die Installation von ownCloud gestaltet sich mit Docker-Compose relativ einfach. Grundsätzlich müsst ihr nur wenige Einstellungen anpassen:
- MySQL-Passwörter: Sowohl das Root-Passwort als auch das ownCloud-Datenbank-Passwort
- ownCloud-Domain & Port: Legt fest, über welche Domain bzw. welchen Port ihr ownCloud erreichen wollt. Falls der Port 8080 bereits belegt ist, müsst ihr ihn anpassen
- Version: Eventuell gibt es bereits eine neuere Version von owncloud/server Die aktuellste Version findet ihr im am Ende des Artikels verlinkten GitHub-Repository
Speicherort der Daten:
Mit ./owncloud_files:/mnt/data werden die in der ownCloud gespeicherten Dateien in dem Verzeichnis abgespeichert, in dem auch das Compose-File liegt. Wenn ihr die Daten auf einer anderen Festplatte oder einem gemounteten Verzeichnis speichern wollt, müsst ihr diesen Pfad entsprechend anpassen.
Admin-Passwort:
Die Variable OWNCLOUD_ADMIN_PASSWORD legt das initiale Admin-Passwort fest. Ihr müsst es nicht zwingend im Compose-File ändern. Nach der ersten Anmeldung könnt ihr es über die Web-Oberfläche jederzeit auf ein sicheres Passwort ändern.
services:
db:
image: mariadb:10.11
container_name: owncloud_db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- ./owncloud_db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=geheimes_passwort123
- MYSQL_DATABASE=owncloud
- MYSQL_USER=owncloud
- MYSQL_PASSWORD=geheimes_passwort123
networks:
- owncloud_net
owncloud:
image: owncloud/server:10.13
container_name: owncloud_app
restart: unless-stopped
depends_on:
- db
ports:
- 8080:8080
volumes:
- ./owncloud_files:/mnt/data
environment:
- OWNCLOUD_DOMAIN=deine.domain.com
- OWNCLOUD_DB_TYPE=mysql
- OWNCLOUD_DB_NAME=owncloud
- OWNCLOUD_DB_USERNAME=owncloud
- OWNCLOUD_DB_PASSWORD=geheimes_passwort123
- OWNCLOUD_DB_HOST=db
- OWNCLOUD_ADMIN_USERNAME=oc-admin
- OWNCLOUD_ADMIN_PASSWORD=geheimes_passwort123
networks:
- owncloud_net
networks:
owncloud_net: null
compose.yaml
Nach dem Anpassen und Speichern des Compose-Files unter dem Namen compose.yaml könnt ihr den Docker-Stack starten. Navigiert dazu in der Kommandozeile in das Verzeichnis, in dem das Compose-File liegt, und führt folgenden Befehl aus:
docker compose up -dDamit wird ownCloud als Container im Hintergrund gestartet und ist über die eingestellte Domain bzw. den Port erreichbar.