====== Nextcloud ====== ++++ Quellen | https://docs.nextcloud.com/server/latest/admin_manual/installation/source_installation.html \\ https://docs.nextcloud.com/server/latest/admin_manual/ \\ https://arnowelzel.de/client-push-fuer-nextcloud-einrichten \\ ++++ ===== Installation ===== Installation auf eigenem Server.\\ Minimal-Variante: Daten, Kalender, Kontakte. * Datenbank anlegen (z.B. MariaDB) - Zugangsdaten bereithalten (Host, DB-Name, DB-User, Passwort) * Installationsdatei [[https://download.nextcloud.com/server/installer/setup-nextcloud.php|downloaden]] * Per SFTP auf Server übertragen (Ordner www-Seiten Nextcloud) * Im Browser: Domain gefolgt von **/setup-nextcloud.php** aufrufen (PHP muss installiert sein). * System schlank halten: nicht die bei der Installation angebotenen Standard-Apps (dort abbrechen) * gewünschte Apps manuell zur Installation auswählen, z.B. * Contacts * Calendar * Gruppen und User anlegen * Sprache der einzelnen User (nur für Web-Oberfläche interessant / jeweils einloggen) zusätzliche PHP-Module installieren (je nach Bedarf und Version) sudo apt install php8.2-gmp php8.2-bcmath php8.2-imagick php8.2-intl php8.2-apcu ==== Hintergrundaufgaben ==== **Über Cronjob nur realisierbar, wenn Zugriff über die Konsole besteht!** \\ Frontend: Administratoreinstellungen -> Grundeinstellungen -> Cron (Empfohlen) auswählen \\ Auf dem Server automatisieren: sudo nano /etc/crontab */5 * * * * www-data php -f /var/www/nextcloud/cron.php Pfad anpassen!! ==== Konfiguration ==== sudo nano config/config.php Datenpfad. 'datadirectory' => '/var/www/data/bluegnu.de', Sicherheit: Hier liegt der Pfad außerhalb des Webseitenbereichs, wodurch dieser nur über Serverscripte oder SSH-Zugriffe erreichbar ist. I.d.R. wird dies bei der Installation festgelegt und damit die Struktur angelegt. Wird der Pfad später manuell geändert, empfiehlt es sich, die Daten aus dem ursprünglichen Pfad dorthin zu kopieren bzw. zu verschieben. \\ Region 'default_phone_region' => 'DE', Zeitfenster für Hintergrund-Wartungen begrenzen (ab Uhrzeit max 4 h) 'maintenance_window_start' => 3, ==== Apps ==== Installation über die Webseite der installierten Cloud -> Apps. \\ * [[https://apps.nextcloud.com/apps/calendar|Kalender]] * [[https://apps.nextcloud.com/apps/contacts|Kontakte, Adressen]] * [[https://apps.nextcloud.com/apps/mail|Mail]] * [[https://apps.nextcloud.com/apps/spreed|Talk]] * [[https://apps.nextcloud.com/apps/tasks|Tasks]] * [[https://apps.nextcloud.com/apps/richdocuments|Nextcloud Office]] * [[https://github.com/nextcloud/circles|Teams]] * [[https://apps.nextcloud.com/apps/groupfolders|Team-Ordner]] * [[https://apps.nextcloud.com/apps/files_3dmodelviewer|3D Model Viewer]] * [[https://github.com/nextcloud/files_pdfviewer|PDF-Viewer]] * [[https://github.com/nextcloud/photos|Fotos]] * [[#Ressourcen anlegen|Calendar Ressource Management]] ==== Optimierungen ==== Abarbeitung entsprechend Infos auf Nextcloud-Adminseite. \\ Es müssen ggf. PHP- und/oder Apache-Module nachinstalliert werden oder Anpassungen in der PHP.INI erfolgen - die für die Seite zuständige. Welche genutzt wird, hängt von den Einstellungen im Webserver ab. \\ Bei Apache und der in diesem System genutzten Variante mit **fpm**, siehe [[open:it:apache#php|Apache Web-Server]], befindet sie sich - für die Version 8.2 - hier: sudo nano /etc/php/8.2/fpm/php.ini zum Beispiel memory_limit erhöhen memory_limit = 512M Datenbank-Indexe aufräumen - als root auf Konsole ausführen - im Verzeichnis der Webseite sudo -u www-data php occ db:add-missing-indices Anpassungen in der Domain-Config (in der Version für Lets-Encrypt) sudo nano /etc/apache2/sites-available/bluegnu.de_cloud-le-ssl.conf Abschnitt der Cloud Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains" dafür erforderlich Installation der Apache-Erweiterung mod_headers sudo a2enmod headers Zum Ende Apache und PHP neu starten/laden sudo systemctl reload php8.2-fpm.service sudo systemctl restart apache2 ==== Update-Probleme ==== [[https://ocloud.de/doc/admin/lang/de/configuration_server/occ_command.html|Infos zum OCC-Kommando]] Sollte ein Update nicht bis zum Ende durchlaufen, kann es von der Konsole aus erneut aufgerufen werden - Ausführung im Mainverzeichnis der HTML-Dateien. sudo -u www-data php occ upgrade -u www-data = Im Namen von User www-data((User für Apache-Webbrowser)) ausführen \\ php OCC = das PHP-Script OCC ausführen\\ upgrade = Parameter für das PHP-Script \\ ==== Papierkorb ==== Ein sehr voller Papierkorb kann zu erheblichen Performance-Problemen führen. \\ Dateien, die durch eine Client-Sync-Nutzung, z.B. auf einem Windows-System, verschoben werden, landen zusätzlich im Papierkorb. Werden so große Veränderungen an der Struktur vorgenommen, kann der Papierkorb extrem voll werden. \\ Es empfiehlt sich diesen regelmäßg zu leeren - z.B. über das Frontend auf der Webseite. ===== Daten Austausch & Synchronisation ===== ==== Thunderbird ==== === Kalender- und Kontakte === Die Synchronisation erfolgt mit den Boardmitteln von Thunderbird. \\ "Neuer Kalender im Netzwerk" oder "CardDav-Adressbuch hinzufügen". \\ === Anhänge in Cloud laden === Thunderbird App:** *cloud - FileLink für Nextcloud und ownCloud** \\ Mit der App lassen sich Dateien teilen bzw. indirekt senden. \\ Anwendungsmöglichkeiten: **Anhang zu E-Mail, Termin, Aufgabe** \\ Zugangsdaten zur Cloud müssen hinterlegt werden: **Einstellungen -> Verfassen -> Anhänge** \\ Die Zugriffsberechtigung (Passwort) und die Aufbewahrungsdauer der Dateien können ebenfalls dort festgelegt werden. \\ Ein Ordner in der Nextcloud-Instanz wird ausgewählt, in dem die Datei(en) abgelegt werden. \\ Quelle: [[https://kaffeeringe.de/2018/01/03/nextcloud-und-thunderbird-perfekt-verbinden/|kaffeeringe.de]] \\ ==== Windows ==== Desktop-Software [[https://github.com/nextcloud/desktop/releases/download/v3.6.2/Nextcloud-3.6.2-x64.msi| downloaden]] und installieren. \\ Während der Kontoeinrichtung wird man auf die Internetseite der Cloud-Installation geleitet - dort muss man den Daten-Zugriff für das Gerät freigeben. ==== Android ==== Fotos vom Handy im Hintergrund und automatisch auf die Nextcloud hochladen. \\ Hierfür wird die Nextcloud-App auf dem Smartphone benötigt. \\ Einstellungen -> Automatisches Hochladen -> Konfigurationsseite öffnet sich \\ Lokaler Ordner -> Ordner, in dem das Smatphone die Fotos speichert. \\ Typisch / Beispiel: Hauptspeicher -> DCIM -> Camera \\ Remote-Ordner -> Ordner auf dem Nextcloud-Server, in den die Fotos geladen werden sollen. \\ Zugriffe entsprechend benötigter Vorgaben einstellen. \\ ===== Ressourcen anlegen ===== Installation der App [[https://github.com/nextcloud/calendar_resource_management|calendar_resource_management]] in der Nextcloud-Instanz. Einrichtung aktuell((August 2024)) nur über die Shell, nicht übers Frontend. \\ Terminkoordination von: \\ * Räumen * Fahrzeugen * Ressourcen Die benannten Räume oder Ressourcen stehen nach folgenden Eingaben im Kalender auf dem Frontend zur Verfügung. Die Ressourcen werden in den Terminen hinterlegt und können auch von anderen Programmen (Thunderbird, etc.) eingesehen werden. Eine Planung über freie Ressourcen ist derzeit nur über die Weboberfläche von Nextcloud möglich. \\ Beispiele (Befehle jeweils auf der Shell im Hauptverzeichnis der Cloud abgeben)\\ Details siehe: [[https://github.com/nextcloud/calendar_resource_management?tab=readme-ov-file#calendar-resource-management|Calendar Resource Management]] **Adresse anlegen** (erforderlich für Etage) sudo -u www-data php occ calendar-resource:building:create --address="Domstr. 1, 50000 Cologne, Germany" "Office Cologne" Eingabe: 1: Adresse | 2: Bezeichnung \\ **Etage anlegen** (erforderlich für Raum) sudo -u www-data php occ calendar-resource:story:create 1 "5. Floor" Eingabe: 1: ID | 2: Bezeichnung \\ **Raum anlegen** (Angabe der E-Mail ist Pflicht, kann aber eine Fake-E-Mail sein) sudo -u www-data php occ calendar-resource:room:create 1 "myhomeoffice" "koeln_home_office" "homeoffice.koeln@bluegnu.de" "home office" Eingabe: 1: ID | 2: UID | 3: Bezeichnung | 4: E-Mail | 5:Raumtyp \\ Optionen((zwischen create und ID)): --wheelchair-accessible=1 --capacity=25 --room-number=201 \\ **Allgemeine Ressource anlegen** sudo -u www-data php occ calendar-resource:resource:create "projetor1" 1 "Projektor 1" "projektor1.homeoffice.koeln@kspi.de" "Projektor" Eingabe: 1: UID | 2: building_id((Adresse)) | 3: Bezeichnung | 4: E-Mail | 5:Ressourcentyp \\ **Ressourcen anzeigen** sudo -u www-data php occ calendar-resource:resources:list **Raum löschen** sudo -u www-data php occ calendar-resource:resource:delete "room" 1 Nutzung über die Kalender-App: \\ Möglicherweise muss der erste Buchstabe der Ressource (display-name) bei Anlage eines Termins angegeben werden, um diesen zu finden. Ohne Eingabe bleibt die Auswahl möglicherweise komplett leer.