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
- Host ist localhost
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
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….
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.
nice