Ich habe ein paar Scripte für Unraid geschrieben.
Diese findest du hier: https://github.com/kanuracer/unraidscripts
Achtung: Es sollte immer ein Backup gemacht werden. Die Daten auf den entnommenen Festplatten sind nicht mehr im Array einlesbar! Verschiebt vorsichtshalber eure Daten manuell oder mit dem Tool „unBalance“!
Um ein Array zu verkleinern muss als aller erstes das Array gestoppt werden. Gehe hierfür auf den Reiter Main/Start, scrolle nach ganz unten und klicke auf „Stopp“
Macht nun Screenshots von euren Plattenzuweisungen!
Nachdem das Array gestoppt ist, müssen wir nun auf den Reiter Werkzeuge/Tools. Dort klicken wir auf „New Config“
Anschließend wählen wir bei „Aktuelle Zuweisung speichern“ „Alle“ aus und bestätigen den ganzen Vorgang.
Danach können wir wieder auf unseren Startreiter klicken und prüfen mit unseren Screenshots die Plattenzuweisung nach. Wenn alles stimmt, können nun alle Platten entfernt werden, die entfernt werden sollen. Es können auch neue hinzugefügt werden.
Jetzt können wir das Array wieder starten, achte aber darauf, dass bei „Parität ist bereits gültig“ kein Haken gesetzt ist!
Virtuelle Maschinen von Hyper-V, virtualBOX und co. lassen sich relativ einfach in UnRaid importieren.
Dafür benötigt ihr die virtuelle Festplatte eurer VM. (In meinen Fall eine .vhdx von Hyper-V)
Diese kopiert ihr auf euer Unraid und führt folgenden Befehl aus:
qemu-img convert -p -f vhdx -O raw NAME.vhdx NEUERNAME.img
Wenn ihr ein anderes Format wie VHD habt, dann ändert einfach vhdx in euer Format um.
Nachdem die virtuelle Festplatte konvertiert wurde, können wir nun im Unraid unter VM die virtuelle Maschine importieren.
Klickt dafür auf VM Hinzufügen/Add VM. Wählt nun in der Übersicht euer passendes Betriebssystem aus.
Anschließend kommt ihr in die Einstellungen. Nun ist es wichtig, wie eure VM damals installiert wurde. Wurde sie als UEFI installiert, lasst ihr bei „BIOS“ „OVMF“ stehen. Ansonsten müsst ihr „SEABIOS“ auswählen.
Jetzt müssen wir nur noch die .img einbinden. Dafür müssen wir zu dem Reiter „primäre vDisk“. Wähle nun „manuell“ aus und suche die konvertierte vDisk.
Wenn ihr das nun alles erledigt habt, könnt ihr am Ende die VM hinzufügen und starten.
HeidiSQL
WinSCP
Eine Domain, die bereits zu dir nach Hause zeigt.
In meiner Unraid-Konfiguration habe ich:
2 x 500 GB SATA SSDs als Cache Pool im Raid 1 (dovm)
1 x 256 GB m.2 NVME SSD als reinen Schreib-Cache (Cache)
In Unraid musst du im Reiter „APPS“ nach dem „mariaDB“-Docker suchen. Ich empfehle hier den Docker von Linuxserver.
Klicke nun auf „Install“ und du wirst sofort auf die Konfigurationsseite weitergeleitet.
Wenn der Docker installiert ist, prüfe nochmal, ob dieser auch gestartet ist.
Lade dir „HeidiSQL“ herunter und öffne es:
Um die Nextcloud etwas performanter zu machen, benötigen wir einen Redis-Server. Hierfür wieder unter „APPS“ nach „Redis“ suchen und den Docker von jj9987 installieren.
Bevor die Nextcloud installiert werden kann, muss zuerst ein Share für die Nutzerdaten angelegt werden.
Klicke hierfür in der Unraid-WebUI auf „Freigaben“ > „Freigabe“ hinzufügen. Vergib einen Namen (ich nutze für diese Anleitung „nextcloud“)
Als primären Speicher wählst du deinen Schreib-Cache und als sekundären dein Array aus.
Nun werden alle User-Daten auf den Cache geschrieben und anschließend vom Mover auf das Array geschuppst.
Da nun der Share für die Nutzerdaten existiert, kann nun die Nextcloud installiert werden.
Hierfür wieder unter „APPS“ nach „Nextcloud“ suchen. Ich empfehle wieder den Docker von Linuxserver.
Bei WebUI vergebt ihr einen anderen Port als 443 (In dieser Anleitung nutze ich 9556).
Bei „Path: /data“ gebt ihr euren frisch erstellten Share für die Nutzerdaten an. In meinen Fall /mnt/user/nextcloud/
Nachdem der Docker installiert ist, kann man nun die WebUI aufrufen. (UNRAID-IP:9556)
Trag deinen gewünschten Nutzernamen und Kennwort ein.
Klicke nun auf den „Speicher & Datenbank“-Reiter. Das Datenverzeichnis lässt du so wie es ist. Unter Datenbank „MySQL/MariaDB“ auswählen und die Datenbank, Nutzer und Kennwort eintragen. Bei dem Host muss die Unraid-IP:3306 eingetragen werden.
Klicke anschließend auf „Installieren“.
Sollte hier ein Fehler auftauchen, dass du dich nicht zur DB Verbinden kannst, musst du gegebenenfalls die IP aus der Fehlermeldung kopieren und diese in die HeidiSQL Benutzerverwaltung beim Nextcloud-Nutzer hinterlegen.
Nach der Installation sieht man unter „Administrationeinstellungen“ > „Übersicht“ einige Fehler:
Einige können behoben werden, indem man die config.php anpasst. Hierfür benötigst du winSCP oder einen vergleichbaren SFTP-Client.
Verbinde dich einfach via SFTP auf deinen Unraid-Server, navigiere in das Nextcloud-Verzeichnis /mnt/user/appdata/nextcloud/www/nextcloud/config/
und öffne die config.php
Nun müssen folgende Einträge ergänzt oder verändert werden:
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => 'UNRAID-IP',
'port' => 6379,
'timeout' => 0.0,
'password' => '',
),
'overwrite.cli.url' => 'https://your.domain.tld',
'overwriteprotocol' => 'https',
'trusted_domains' =>
array (
0 => 'UNRAID-IP:9556',
1 => 'your.domain.tld',
),
'trusted_proxies' =>
array (
0 => 'UNRAID-IP',
),
'default_phone_region' => 'DE',
'mail_smtpmode' => 'smtp',
'mail_smtpsecure' => 'ssl',
'mail_sendmailmode' => 'smtp',
'mail_smtpauthtype' => 'LOGIN',
'mail_smtpauth' => 1,
'mail_smtpname' => 'EMAIL-Address',
'mail_smtppassword' => 'PASSWORT',
'mail_from_address' => 'cloud',
'mail_domain' => 'domain.tld',
'mail_smtphost' => 'smtp.hoster.de',
'mail_smtpport' => '465',
Die Config sollte am Ende in etwa so aussehen (instanceid und co. wird sich von deiner Config unterscheiden!):
<?php
$CONFIG = array (
'datadirectory' => '/data',
'instanceid' => '',
'passwordsalt' => '',
'secret' => '',
'dbtype' => 'mysql',
'version' => '27.0.1.2',
'dbname' => 'nextcloud',
'dbhost' => 'UNRAID-IP:3306',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'nextcloud',
'dbpassword' => 'Nextcloudtutorial',
'installed' => true,
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => 'UNRAID-IP',
'port' => 6379,
'timeout' => 0.0,
'password' => '',
),
'overwrite.cli.url' => 'https://your.domain.tld',
'overwriteprotocol' => 'https',
'trusted_domains' =>
array (
0 => 'UNRAID-IP:9556',
1 => 'your.domain.tld',
),
'trusted_proxies' =>
array (
0 => 'UNRAID-IP/24',
),
'default_phone_region' => 'DE',
'mail_smtpmode' => 'smtp',
'mail_smtpsecure' => 'ssl',
'mail_sendmailmode' => 'smtp',
'mail_smtpauthtype' => 'LOGIN',
'mail_smtpauth' => 1,
'mail_smtpname' => 'EMAIL-Address',
'mail_smtppassword' => 'PASSWORT',
'mail_from_address' => 'cloud',
'mail_domain' => 'domain.tld',
'mail_smtphost' => 'smtp.hoster.de',
'mail_smtpport' => '465',
);
Als erstes muss wieder ein Share erstellt werden.
Hierfür wieder auf „Freigaben“ > „Freigabe hinzufügen“. Dieser Share wird zukünftig für Logfiles dienen, also nennt ihn „logs“.
Damit die Logs nicht im Array landen und die Festplatten deswegen nicht in den Ruhezustand gehen können, wird der Share nur auf dem Cache abgelegt.
Ist der Share eingerichtet, muss noch ein Unterordner erstellt werden. Hierfür wieder mit winSCP in das Verzeichnis navigieren /mnt/user/logs/
Rechtsklick in das Verzeichnis > „Neu“ > „Ordner“ und nenne diesen „npm“ oder „nginxproxymanager“ oder so ähnlich.
Danach nochmal Rechtsklick auf den „Ordner“ > „Eigenschaften“ und setze die Berechtigungen wie folgt:
Wenn das alles erledigt ist, kann es mit dem Proxy auch schon losgehen.
Dieser ist wieder unter APPS zu finden. Ich empfehle hier den Docker von mgutt.
Setze die Einstellungen wie in diesem Beispiel:
Für die logfiles muss ganz unten auf „+Weiteren Pfad, Port, Variable, Bezeichnung oder Gerät hinzufügen“ geklickt und folgendes eingetragen werden:
Gelegentlich kann es vorkommen, dass der Nginx Proxy Manager (NPM) beim Hochfahren schneller bereit ist als die Nextcloud-Anwendung. Dadurch besteht die Möglichkeit, dass nach einem Neustart des Servers die Nextcloud nicht erreichbar ist, obwohl alles ordnungsgemäß läuft. Um dieses Problem zu beheben, empfiehlt es sich, in der Unraid-Dockerübersicht die „Erweiterte Ansicht“ für den Nginx Proxy Manager zu öffnen und einen Wartezeitwert von 60 Sekunden einzustellen. Durch diese Einstellung wartet der NPM beim Starten nach einem Unraid-Neustart 60 Sekunden, was sicherstellt, dass alle Dienste korrekt gestartet sind und die Nextcloud reibungslos erreichbar ist.
Wenn der Proxy endlich läuft, muss noch ein Port-Forwarding eingestellt werden.
Ich selber habe eine Fritzbox 6660, deshalb ist dieses Beispiel nur für die Fritzbox:
Logge dich auf deiner Weboberfläche der Fritzbox ein, gehe auf „Internet“ > „Freigaben“ > „Portfreigaben“
Füge hier nun ein neues Gerät hinzu. Unter Gerät wählst du jetzt deinen Unraid-Server aus und klickst anschließend ganz unten auf „Neue Freigabe“
Wenn die Portfreigaben nun aktiviert und gespeichert sind, kann es nun mit dem Proxy weitergehen.
Hierfür wird die WebUI benötigt. Um auf die WebUI zu gelangen, gib in deinem Browser UNRAID-IP:81 ein.
Tragt den Default Login ein:
admin@example.com
changeme
Ihr solltet danach aufgefordert werden, diese Daten zu ändern. Sollte keine Aufforderung kommen, kannst du die Daten auch oben rechts ändern.
Klicke nun in der WebUI auf „Hosts“ > „Proxy Hosts“ und anschließend auf der rechten Seite auf „Add Proxy Host“ und richtet diesen wie folgt ein:
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_max_temp_file_size 0;
client_max_body_size 0;
location = /.well-known/carddav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host:$server_port/remote.php/dav;
}
location ^~ /.well-known {
location = /.well-known/carddav { return 301 /remote.php/dav/; }
location = /.well-known/caldav { return 301 /remote.php/dav/; }
location ^~ /.well-known { return 301 /index.php$uri; }
try_files $uri $uri/ =404;
}
Nun kann die Nextcloud neu gestartet werden und alle Fehler sind behoben.
Hierfür muss wieder ein neuer Ordner unter „logs“ erstellt werden. Öffne wieder in winSCP /mnt/user/logs/ und füge einen Ordner namens „nextcloud“ hinzu. Danach Rechtsklick auf den „Ordner“ > „Eigenschaften“ und vergib folgende Berechtigungen:
Öffne nun das Docker-Terminal (Klicke auf das Nextcloud Docker Symbol > Konsole) und gib folgenden Befehl ab:
mkdir /app/www/logs
In der Docker-Konfiguration muss noch der Pfad in den Docker durchgereicht werden.
Diese findest du ganz am Ende unter „+Weiteren Pfad, Port, Variable, Bezeichnung oder Gerät hinzufügen“
Anschließend müssen noch 2 Zeilen in der config.php eingetragen werden:
'loglevel' => 0,
'logfile' => '/app/www/logs/nextcloud.log',
Trage hierfür diese beiden Zeilen in der config.php ein
'trashbin_retention_obligation' => '7, 7',
'versions_retention_obligation' => '7, 7',
Folgendes muss in der config.php ergänzt werden:
'maintenance_window_start' => 2,
Hierfür muss der „client max body size“ – Wert in dieser Config angepasst werden: /mnt/user/appdata/nextcloud/nginx/site-confs/default.conf
client_max_body_size 512M;
in client_max_body_size 0;
ändern
Um die PHP Grenzen wie Uploadlimit Memory Limit und Max File Size anzuheben, müssen ein paar Variablen in der Dockerkonfiguration gesetzt werden. Diese findest du ganz unten unter „+Weiteren Pfad, Port, Variable, Bezeichnung oder Gerät hinzufügen“
Du musst nun folgende Variablen setzen:
Anschließend auf „Anwenden“ klicken.
Wer seinen Bootstick ohne Unraid Connect backupen will, muss sich dafür nur das User Script Plugin installieren.
Danach einfach ein neues Script mit folgenden Inhalt anlegen:
Das Script ist auf GitHub zu finden.
Passe bitte anschließend den Scriptkopf an:
# ----------------------------
# Change
# ----------------------------
# backup destination
BACKUP_DEST="/mnt/user/backup/boot/"
# LOG directory
LOG_DIR="/mnt/user/logs/backup"
# Tempfiles directory
TEMP_DIR="/mnt/user/backup/temp/"
# backups to keep
MAX_BACKUPS=3
# zip-password
PASSWORD="password"
Danach noch den Cron auf zb. stündlich stellen.