OwnCloud

Aus Raspberry Pi Workshop
Zur Navigation springen Zur Suche springen

Was ist ownCloud?

ownCloud ist eine Open-Source-Lösung für Datei-Synchronisation, -Speicherung und -Freigabe auf privaten Servern. Sie wird oft als Alternative zu kommerziellen Cloud-Diensten wie Google Drive oder Dropbox genutzt, insbesondere wenn Datenschutz und Kontrolle über die eigenen Daten im Vordergrund stehen.

Funktionen von ownCloud:

  • Zentrale Speicherung und Zugriff auf Dateien von verschiedenen Geräten.
  • Teilen von Dateien mit individuellen Zugriffsrechten.
  • Benutzerverwaltung mit fein abgestuften Berechtigungen.
  • Erweiterbar durch zahlreiche Apps (z. B. Kalender, Kontakte).
  • Kompatibilität mit CalDAV und CardDAV.
  • Volle Datenhoheit – alles bleibt auf dem eigenen Server.

Installation von ownCloud

Zur Installation haben wir ein automatisiertes Bash-Skript genutzt, das mit Unterstützung von ChatGPT erstellt wurde. Dieses Skript übernimmt die Systemaktualisierung, die Paketinstallation, das Einrichten der Datenbank sowie die Konfiguration von Apache und ownCloud.

Verwendetes Installationsskript:

<syntaxhighlight lang="bash">

  1. !/bin/bash

set -e

      1. === KONFIGURATION ===

DB_NAME="owncloud" DB_USER="ownclouduser" DB_PASSWORD="raspberry" OWNCLOUD_DIR="/var/www/html/owncloud" IP_ADDR="$(hostname -I | awk '{print $1}')"

echo "[1/7] System aktualisieren..." apt update && apt upgrade -y

echo "[2/7] Benötigte Pakete installieren..." apt install -y apache2 mariadb-server unzip wget curl \

   php libapache2-mod-php php-mysql php-xml php-mbstring php-curl \
   php-zip php-gd php-intl php-bcmath php-imagick

echo "[3/7] MariaDB konfigurieren..." mysql -u root <<EOF CREATE DATABASE ${DB_NAME}; CREATE USER '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASSWORD}'; GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost'; FLUSH PRIVILEGES; EOF

echo "[4/7] OwnCloud herunterladen..." cd /tmp wget https://download.owncloud.org/community/owncloud-complete-latest.tar.bz2 tar -xjf owncloud-complete-latest.tar.bz2 rm -rf ${OWNCLOUD_DIR} mv owncloud ${OWNCLOUD_DIR}

echo "[5/7] Berechtigungen setzen..." chown -R www-data:www-data ${OWNCLOUD_DIR} chmod -R 755 ${OWNCLOUD_DIR}

echo "[6/7] Apache konfigurieren..." cat <<APACHECONF > /etc/apache2/sites-available/owncloud.conf <VirtualHost *:80>

   DocumentRoot ${OWNCLOUD_DIR}
   ServerName ${IP_ADDR}
   <Directory ${OWNCLOUD_DIR}>
       Options +FollowSymlinks
       AllowOverride All
       <IfModule mod_dav.c>
           Dav off
       </IfModule>
       SetEnv HOME ${OWNCLOUD_DIR}
       SetEnv HTTP_HOME ${OWNCLOUD_DIR}
   </Directory>
   ErrorLog \${APACHE_LOG_DIR}/owncloud_error.log
   CustomLog \${APACHE_LOG_DIR}/owncloud_access.log combined

</VirtualHost> APACHECONF

a2ensite owncloud.conf a2dissite 000-default.conf a2enmod rewrite headers env dir mime setenvif systemctl restart apache2

echo "[7/7] Installation abgeschlossen." echo "" echo "---------------------------------------------------------" echo "OwnCloud-Webinstaller erreichbar unter:" echo " http://${IP_ADDR}/owncloud" echo "" echo "Datenbank-Zugangsdaten:" echo " DB-Name  : ${DB_NAME}" echo " DB-Benutzer: ${DB_USER}" echo " DB-Passwort: ${DB_PASSWORD}" echo "---------------------------------------------------------" </syntaxhighlight>

Mit diesem Skript konnten wir ownCloud erfolgreich auf einem Debian-basierten System installieren und in Betrieb nehmen.