Andreas hat einen Nextcloud-Server auf Debian-Basis installiert und dabei seine Vorgehensweise dokumentiert. Diese basiert zum großen Teil, aber nicht ausschließlich auf meinem Homeserver-Tutorial zu Ubuntu 18.04 [Homeserver/NAS mit Ubuntu 18.04: Teil 1, Einleitung, Hardware und Kosten]. Jedoch mit einigen Abweichungen, da sich Debian und Ubuntu doch in einigen Details unterscheiden.

Die Dokumentation seiner Vorgehensweise hat er mit freundlicherweise zur Veröffentlichung zukommen lassen.


In dieser Anleitung geht es darum Debian Buster (10) Server zu installieren, dazu wird das Serversystem ohne Gui und lediglich mit OpenSSH sowie Systemwerkzeugen installiert.

Im Rechner befindet sich eine SSD für das System und eine große HDD als Datenlaufwerk, diese HDD wird während der Installation von Debian Server als /mnt/storage eingebunden.

Nextcloud soll dann so funktionieren das man über die Sambafreigabe die Daten im Netzwerk überspielt und diese Daten einfach in Nextcloud übernimmt, also nicht über Internet hochladen, sondern einfach über das eigene Netzwerk einspielt.

Debian Server ist bereits installiert und der User ist angemeldet, wir fahren wie folgt fort:

Den eigenen User zu sudo hinzufügen:

su -

Passwort für root eingeben:

apt-get update
apt-get install sudo
sudo visudo

In der Konfigurationsdatei ganz unten eingeben:

deinuser ALL=(ALL:ALL) ALL

Speichern und beenden.

exit

Siehe Seite: https://devconnected.com/how-to-add-a-user-to-sudoers-on-debian-10-buster/
Rechner für die Internetfreigabe einrichten, siehe auch Seite: https://www.techgrube.de/tutorials/homeserver-nas-mit-ubuntu-18-04-teil-3-grundkonfiguration

Samba Freigaben

Den Samba-Server mit folgendem Befehl installieren.

sudo apt install samba samba-common

Während der Installation die Abfrage mit „nein“ beantworten. Anschließend die Systemuser für die Samba-Freigaben anlegen.

sudo adduser --no-create-home --disabled-login --shell /bin/false heimnetz

Bei der Abfrage nach Namen usw. muss man nichts eingeben, einfach Enter drücken, am Ende mit Ja bestätigen.

sudo smbpasswd -a heimnetz

Neues Passwort für den User „heimnetz“ eingeben und ein weiteres Mal bestätigen. Nun werden die Ordner für die Samba-Freigaben angelegt und die Benutzerrechte vergeben.

sudo mkdir /mnt/storage/shares

cd /mnt/storage/shares

sudo mkdir Daten

sudo chown -R heimnetz: /mnt/storage/shares

Anschließend erfolgt die Konfiguration der Samba-Freigaben.

sudo nano /etc/samba/smb.conf

Zum Einrichten der Freigaben, ganz unten in der Konfigurationsdatei folgendes einfügen:

[Daten]
comment = Daten
path = /mnt/storage/shares/Daten
write list = heimnetz
valid users = heimnetz
force user = heimnetz

Speichern und beenden, danach Samba neustarten:

sudo systemctl restart smbd.service

weitere Infos siehe hier: https://www.techgrube.de/tutorials/homeserver-nas-mit-ubuntu-18-
04-teil-4-dateifreigaben-im-heimnetz

Apache Webserver und Datenbank-Server installieren und einrichten

su -

Passwort eingeben. Nun den Apache-Webserver, MaridaDB-Datenbankserver und weitere benötigte Pakete installieren.

apt-get install apache2 libapache2-mod-php mariadb-server php-xml php-cli phpcgi
 php-mysql php-mbstring php-gd php-curl php-zip php-intl php-bcmath php-gmp
 php-imagick wget unzip -y

Anschließend wird die PHP-Konfigurationsdatei geöffnet mit:

nano /etc/php/7.3/apache2/php.ini

Dort, in dieser Datei folgende empfohlene Änderungen vornehmen: Die jeweiligen Abschnitte über STRG+W suchen

memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 300

Dann speichern und beenden, danach folgende Befehle ausführen, damit die geänderte Konfiguration übernommen wird.

systemctl start apache2
systemctl start mariadb
systemctl enable apache2
systemctl enable mariadb

Nun wird die Datenbank für Nextcloud konfiguriert. Zuerst loggt man sich im Datenbankserver ein.

Anschließend wird die Datenbank für NExtcloud angelegt. Achtung: ‚passwort‘ unbedingt durch ein selbst gewähltes Passwort ersetzen.

mysql -u root -p
CREATE DATABASE nextclouddb;

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password';

GRANT ALL ON nextclouddb.* TO 'nextclouduser'@'localhost';

FLUSH PRIVILEGES;

EXIT;

Nach einem weiteren „exit“ arbeitet man wieder mit normalen Userrechten.

exit

Nextcloud Installieren

siehe Seite: https://www.howtoforge.de/anleitung/wie-man-nextcloud-unter-debian-10-installiert/

zur Installation von nextcloud gehen wir dann wieder laut der anderen Seite vor https://www.techgrube.de/tutorials/homeserver-nas-mit-ubuntu-18-04-teil-5-nextcloud ab „Installation von nextcloud….“

cd ~
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
sudo tar -xjvf latest.tar.bz2 -C /var/www/html/
sudo chown -R www-data:www-data /var/www/html/nextcloud

jetzt geht es wieder nach der anderen Anleitung weiter, https://www.howtoforge.de/anleitung/wie-man-nextcloud-unter-debian-10-installiert/ ab „Apache für NextCloud konfigurieren“

su -

Passwort eingeben.

nano /etc/apache2/sites-available/nextcloud.conf

dort folgendes einfügen:

<VirtualHost *:80>
ServerAdmin name@domain.de
DocumentRoot /var/www/html/nextcloud/
ServerName nextcloud.example.com
Alias /nextcloud "/var/www/html/nextcloud/"

<Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Dann folgende Befehle ausführen um die geänderten Konfigurationen zu aktivieren.

a2ensite nextcloud.conf
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

Anschließend den Apachen neustarten:

systemctl restart apache2

Let’s Encrypt Zertifikat einrichten

Zuerst wird Certbot für Apache installiert und anschließend das Let’s Encrypt Zertifikat ausgestellt.

apt-get install python-certbot-apache -y
certbot --apache -d nextcloud.example.com

Die eigene Adresse einfügen, danach die Anleitung von Techgrube.de weiter befolgen:

exit
sudo mkdir -p /mnt/storage/nextcloud
sudo chown -R www-data:www-data /mnt/storage/nextcloud

Danach kann man Nextcloud über https://domain.deineEndung aufrufen.

Man vergibt einen User samt Passwort:

Datenbankbenutzer ist: nextclouduser
Datenbankpasswort ist das vergebene Passwort: password
Datenbank-Name ist: nextclouddb
der Eintrag: „localhost“ bleibt bestehen

Jetzt führt man noch aus:

sudo apt install smbclient
sudo systemctl restart apache2

Hier geht es weiter mit der Anleitung: https://www.techgrube.de/tutorials/homeserver-nas-mit-ubuntu-18-04-teil-5-nextcloud

Externes Laufwerk in Nextcloud einbinden

Es wird jetzt noch das „externe“ Laufwerk eingebunden.

Bei den Apps findet man unter dem Punkt deaktivierte Apps die App External Storage Support, welche mit einem Klick auf aktivieren verfügbar gemacht wird.

Zum Einbinden der vorhandenen Ordner gehen wir wieder auf das Symbol in der rechten oberen Ecke und anschließend auf
Einstellungen. Im linken Bereich findet man verwirrender Weise zwei Punkte mit dem Namen „Externe Speicher„. Zum Einrichten benötigen wir den unteren.

  • Ordnername wird entsprechend der Freigabe benannt. Z.B. lokale Videos
  • Externer Speicher ist SMB/CIFS
  • Authentifizierung ist Benutzername und Passwort
  • Konfiguration:
    • Host ist localhost
      Share ist der Name der Freigabe. Z.B. Video
      Entfernter Unterordner bleibt leer
      Domain bleibt ebenfalls leer
      Benutzername ist heimnetz oder heimgast. Je nachdem ob dieDateien mit Schreibrechten (heimnetz) oder aus Sicherheitsgründen nur mit Leserechten (heimgast) eingebunden werden sollen
      Passwort ist das zum Benutzername gehörende Passwort

Ein Klick auf den kleinen Haken am Ende des Formularfeldes bindet den Ordner in Nextcloud ein.

Optionale Nextcloud-Konfigurationen

Da NextCloud ab und zu Dateien blockiert (File is locked), füge ich folgendes in der config.php ein:

sudo nano /var/www/html/nextcloud/config/config.php

unter „dbhost“

'maintenance' => true,

speichern und beenden, und nochmals

sudo nano /var/www/html/nextcloud/config/config.php

dann füge ich unter „maintenance…“ ein:

'filelocking.enabled' => false,

wieder speichern und beenden und nochmals

sudo nano /var/www/html/nextcloud/config/config.php

Dort ändere ich unter „maintenance“ auf „false“ um. Datei wieder speichern und schließen. Nextcloud ist jetzt Einsatzbereit.

Ab und zu die Dateien neu durchzählen lassen mache ich mit:

sudo -u www-data php /var/www/html/nextcloud/occ files:scan --all

Vielen Dank, Andreas, für die Dokumentation.

4 Comments

  1. Jürgen Hoffmann

    Hallo,
    Ich habe letzte Woche erfolgreich meine NC Installation mit dem eBook (18.04) hinbekommen und sehe gerade obigen Post.
    Etwas verwirrt bin ich wg. Folgendem Absatz:
    > soll dann so funktionieren das man über die Sambafreigabe die Daten im Netzwerk
    > überspielt und diese Daten einfach in Nextcloud übernimmt, also nicht über Internet
    > hochladen, sondern einfach über das eigene Netzwerk einspielt.

    Läuft das bei der Installation lt. eBook nicht so? Heisst das, wenn ich z.B. meine gerippten CDs in den Audio-Ordner umziehe, werden die über das Internet dort reinkopiert und nicht über mein lokales Netz?
    Sorry für die Anfängerfrage, bin noch relativ neu auf dem Linux-Gebiet….

    • Niko

      Hallo Jürgen,
      sorry, wenn die Formulierung für Verwirrung gesorgt hat. Die Datenübertragung läuft immer über das lokale Netz, wenn sich beide Geräte im selben Netzwerk befinden. Auch wenn man über die Internetadresse und nicht über die lokale IP-Adresse auf den Homeserver zugreift. Das regelt der Router ganz automatisch und hat nichts mit dem Homeserver zu tun.
      Gruß
      Niko

    • Hallo,

      es funktioniert so, das Du über die Sambafreigabe ganz normal in Deinem Netzwerk die Dateien kopierst. Diese Dateien sind dann in nextcloud sichtbar und Du kannst sie entweder dort lassen oder in einen anderen Ordner kopieren/verschieben.
      Hat den Vorteil bei großen Dateien das das normal bedeutend schneller gehen sollte, als der Upload über Internet :-).
      Im eBook mit UbuntuServer (18.04) steht es auch so, nur funktioniert das mit UbuntuServer 20.04 noch nicht so reibungslos, da Ubuntu auf Snap ausweicht, was mir persönlich gar nicht gefällt, daher habe ich die Installation mit Debian Server versucht, und es hat geklappt.
      Einzig habe ich nicht 5 Ordner angelegt, sondern nur einen für Daten, da ich die Dateien dann in die gewünschten nextcloudOrdner einfach reinkopiere.