Nextcloud: Unterschied zwischen den Versionen

Aus WIKI
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „nextcloud installieren <code>emerge -av nextcloud</code> Datenbank-Nutzer in mariadb anlegen <pre> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password…“)
 
Keine Bearbeitungszusammenfassung
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 6: Zeile 6:
CREATE DATABASE IF NOT EXISTS nextcloud;
CREATE DATABASE IF NOT EXISTS nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'username'@'localhost' IDENTIFIED BY 'password';
</pre>
Firewall probleme:
nextcloud versucht beim login nach hause zu telefonieren um genau zu sein nach https://apps.owncloud.com um zB neue versionen von apps anzeigen lassen zu können... Das versuch ich zu unterbinden in dem ich an der Methode viewApps() der Klasse settings/Controller/AppSettingsController ein wenig manipuliere.
<pre>
        /**
        * @NoCSRFRequired
        * @param string $category
        * @return TemplateResponse
        */
        public function viewApps($category = '') {
                $categoryId = $this->getCategory($category);
                if ($categoryId === self::CAT_ENABLED) {
                        // Do not use an arbitrary input string, because we put the category in html
                        $category = 'enabled';
                }
                $params = [];
                $params['experimentalEnabled'] = $this->config->getSystemValue('appstore.experimental.enabled', false);
                $params['category'] = $category;
                $params['appstoreEnabled'] = $this->config->getSystemValue('appstoreenabled', true) === true;
                $this->navigationManager->setActiveEntry('core_apps');
                $templateResponse = new TemplateResponse($this->appName, 'apps', $params, 'user');
                $policy = new ContentSecurityPolicy();
//              $policy->addAllowedImageDomain('https://apps.owncloud.com');
                $templateResponse->setContentSecurityPolicy($policy);
                return $templateResponse;
        }
</pre>
nextcloude 11 hab ich ein wenig anpassen müssen das curl eine port range local benutzt. dazu musste ich die Datei 3rdparty/guzzlehttp/ringphp/src/client/CurlFactory.php wie folgt anpassen:
<pre>
    public function __invoke(array $request, $handle = null)
    {
        $headers = [];
        $options = $this->getDefaultOptions($request, $headers);
        // my modifications
        $options[CURLOPT_LOCALPORT]=60000;
        $options[CURLOPT_LOCALPORTRANGE]=100;
        $this->applyMethod($request, $options);
        if (isset($request['client'])) {
            $this->applyHandlerOptions($request, $options);
        }
        $this->applyHeaders($request, $options);
        unset($options['_headers']);
        // Add handler options from the request's configuration options
        if (isset($request['client']['curl'])) {
            $options = $this->applyCustomCurlOptions(
                $request['client']['curl'],
                $options
            );
        }
        if (!$handle) {
            $handle = curl_init();
        }
        $body = $this->getOutputBody($request, $options);
        curl_setopt_array($handle, $options);
        return [$handle, &$headers, $body];
    }
</pre>
Upload size vergrößern in Datei <code>.htaccess</code>:
<pre>
php_value upload_max_filesize 2G
php_value post_max_size 2G
php_value memory_limit 2G
php_value max_input_time 3600
php_value max_execution_time 3600
</pre>
Nextcloud über Portrange nach aussen komunizieren lassen über Datei <code>3rdparty/guzzlehttp/ringphp/src/Client/CurlFactory.php</code>
<pre>
$options = $this->getDefaultOptions($request, $headers);
$options[CURLOPT_LOCALPORT]=60000;
$options[CURLOPT_LOCALPORTRANGE]=100;
</pre>
Backup anlegen
<pre>
cd /var/www/nextcloud
sudo -u www-data php occ maintenance:mode --on
tar -cpzf /mnt/Share/Backups/Nextcloud/NextcloudBackup_FileDir_`date +"%Y%m%d"`.tar.gz -C /var/www/nextcloud .
tar -cpzf /mnt/Share/Backups/Nextcloud/NextcloudBackup_DataDir_`date +"%Y%m%d"`.tar.gz -C /var/nextcloud_data .
mysqldump --single-transaction -h localhost -u nextcloud_db_user -p nextcloud_db > /mnt/Share/Backups/Nextcloud/NextcloudBackup_DB_`date +"%Y%m%d"`.sql
cd /var/www/nextcloud
sudo -u www-data php occ maintenance:mode --off
</pre>
Der Papierkorb konnte nicht mehr geöffnet werden unter "Gelöschte Dateien" => manuell konnte ich den Papierkorb mit dem folgenden Befehl bereinigen
<pre>
sudo -u apache php occ trashbin:cleanup --all-users
</pre>
nicht mehr aktuelle versionen von allen Dateien bereinigen
<pre>
sudo -u apache php occ version:cleanup
</pre>
[https://www.veuhoff.net/nextcloud-installation-fuer-linux-ubuntu-22-04-komplettanleitung/ |nextcloud unter ubuntu 22.04 installieren]
[https://www.hostflash.de/blog/webhosting/serverseitige-verschluesselung-in-nextcloud-aktivieren-anleitung.html |Serverseitige verschlüsselung]
=iOS - Mit iPhone/iPad synchronisieren=
==Kalender==
<pre>
Öffnen Sie die “Einstellungen”-App auf Ihrem iOS-Gerät.
Wählen Sie “Mail, Kontakte, Kalender”.
Klicken Sie auf “Account hinzufügen”.
Wählen Sie “Andere” als Account-Typ.
Wählen Sie “CalDAV-Account hinzufügen”.
Als Server verwenden Sie: example.com/remote.php/dav/principals/users/USERNAME/
Geben Sie Ihren Nextcloud Benutzernamen und Ihr Passwort ein.
Klicken Sie “Weiter”.
Falls Ihr Server keine verschlüsselte Verbindung unterstützt, wird Ihnen eine entsprechende Fehlermeldung angezeigt. Bestätige Sie mit “OK”.
Wenn die Accountdaten nicht verifiziert werden können, führen Sie folgende Schritte durch:
Klicken Sie auf “OK”.
Öffnen Sie “Erweiterte Einstellungen”.
Falls Ihr Server keine verschlüsselte Verbindung unterstützt, deaktivieren Sie “SSL verwenden”.
Ändern Sie “Port” auf “80”.
Gehen Sie zurück zu den Account-Informationen und klicken Sie “Speichern”.
Ihr Kalender wird nun mit und über Nextcloud synchronisiert.
</pre>
==Adressbuch==
<pre>
Öffnen Sie die “Einstellungen”-App auf Ihrem iOS-Gerät.
Wählen Sie “Mail, Kontakte, Kalender”.
Klicken Sie auf “Account hinzufügen”.
Wählen Sie “Andere” als Account-Typ.
Wählen Sie “CardDAV-Account hinzufügen”.
Als Server verwenden Sie: example.com/remote.php/dav/principals/users/USERNAME/
Geben Sie Ihren Nextcloud Benutzernamen und Ihr Passwort ein.
Klicken Sie “Weiter”.
Falls Ihr Server keine verschlüsselte Verbindung unterstützt, wird Ihnen eine entsprechende Fehlermeldung angezeigt. Bestätige Sie mit “OK”.
Wenn die Accountdaten nicht verifiziert werden können, führen Sie folgende Schritte durch:
Klicken Sie auf “OK”.
Öffnen Sie “Erweiterte Einstellungen”.
Falls Ihr Server keine verschlüsselte Verbindung unterstützt, deaktivieren Sie “SSL verwenden”.
Ändern Sie “Port” auf “80”.
Gehen Sie zurück zu den Account-Informationen und klicken Sie “Speichern”.
Ihr Adressbuch wird nun mit und über Nextcloud synchronisiert.
</pre>
</pre>

Aktuelle Version vom 18. September 2024, 08:47 Uhr

nextcloud installieren emerge -av nextcloud

Datenbank-Nutzer in mariadb anlegen

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'username'@'localhost' IDENTIFIED BY 'password';

Firewall probleme:

nextcloud versucht beim login nach hause zu telefonieren um genau zu sein nach https://apps.owncloud.com um zB neue versionen von apps anzeigen lassen zu können... Das versuch ich zu unterbinden in dem ich an der Methode viewApps() der Klasse settings/Controller/AppSettingsController ein wenig manipuliere.

        /**
         * @NoCSRFRequired
         * @param string $category
         * @return TemplateResponse
         */
        public function viewApps($category = '') {
                $categoryId = $this->getCategory($category);
                if ($categoryId === self::CAT_ENABLED) {
                        // Do not use an arbitrary input string, because we put the category in html
                        $category = 'enabled';
                }

                $params = [];
                $params['experimentalEnabled'] = $this->config->getSystemValue('appstore.experimental.enabled', false);
                $params['category'] = $category;
                $params['appstoreEnabled'] = $this->config->getSystemValue('appstoreenabled', true) === true;
                $this->navigationManager->setActiveEntry('core_apps');

                $templateResponse = new TemplateResponse($this->appName, 'apps', $params, 'user');
                $policy = new ContentSecurityPolicy();
//              $policy->addAllowedImageDomain('https://apps.owncloud.com');
                $templateResponse->setContentSecurityPolicy($policy);

                return $templateResponse;
        }

nextcloude 11 hab ich ein wenig anpassen müssen das curl eine port range local benutzt. dazu musste ich die Datei 3rdparty/guzzlehttp/ringphp/src/client/CurlFactory.php wie folgt anpassen:

    public function __invoke(array $request, $handle = null)
    {
        $headers = [];
        $options = $this->getDefaultOptions($request, $headers);

        // my modifications
        $options[CURLOPT_LOCALPORT]=60000;
        $options[CURLOPT_LOCALPORTRANGE]=100;

        $this->applyMethod($request, $options);

        if (isset($request['client'])) {
            $this->applyHandlerOptions($request, $options);
        }

        $this->applyHeaders($request, $options);
        unset($options['_headers']);

        // Add handler options from the request's configuration options
        if (isset($request['client']['curl'])) {
            $options = $this->applyCustomCurlOptions(
                $request['client']['curl'],
                $options
            );
        }

        if (!$handle) {
            $handle = curl_init();
        }

        $body = $this->getOutputBody($request, $options);
        curl_setopt_array($handle, $options);

        return [$handle, &$headers, $body];
    }

Upload size vergrößern in Datei .htaccess:

php_value upload_max_filesize 2G
php_value post_max_size 2G
php_value memory_limit 2G

php_value max_input_time 3600
php_value max_execution_time 3600

Nextcloud über Portrange nach aussen komunizieren lassen über Datei 3rdparty/guzzlehttp/ringphp/src/Client/CurlFactory.php

$options = $this->getDefaultOptions($request, $headers);
$options[CURLOPT_LOCALPORT]=60000;
$options[CURLOPT_LOCALPORTRANGE]=100;

Backup anlegen

cd /var/www/nextcloud
sudo -u www-data php occ maintenance:mode --on
tar -cpzf /mnt/Share/Backups/Nextcloud/NextcloudBackup_FileDir_`date +"%Y%m%d"`.tar.gz -C /var/www/nextcloud .
tar -cpzf /mnt/Share/Backups/Nextcloud/NextcloudBackup_DataDir_`date +"%Y%m%d"`.tar.gz -C /var/nextcloud_data .
mysqldump --single-transaction -h localhost -u nextcloud_db_user -p nextcloud_db > /mnt/Share/Backups/Nextcloud/NextcloudBackup_DB_`date +"%Y%m%d"`.sql
cd /var/www/nextcloud
sudo -u www-data php occ maintenance:mode --off

Der Papierkorb konnte nicht mehr geöffnet werden unter "Gelöschte Dateien" => manuell konnte ich den Papierkorb mit dem folgenden Befehl bereinigen

sudo -u apache php occ trashbin:cleanup --all-users

nicht mehr aktuelle versionen von allen Dateien bereinigen

sudo -u apache php occ version:cleanup

|nextcloud unter ubuntu 22.04 installieren

|Serverseitige verschlüsselung

iOS - Mit iPhone/iPad synchronisieren

Kalender

Öffnen Sie die “Einstellungen”-App auf Ihrem iOS-Gerät.
Wählen Sie “Mail, Kontakte, Kalender”.
Klicken Sie auf “Account hinzufügen”.
Wählen Sie “Andere” als Account-Typ.
Wählen Sie “CalDAV-Account hinzufügen”.
Als Server verwenden Sie: example.com/remote.php/dav/principals/users/USERNAME/
Geben Sie Ihren Nextcloud Benutzernamen und Ihr Passwort ein.
Klicken Sie “Weiter”.
Falls Ihr Server keine verschlüsselte Verbindung unterstützt, wird Ihnen eine entsprechende Fehlermeldung angezeigt. Bestätige Sie mit “OK”.
Wenn die Accountdaten nicht verifiziert werden können, führen Sie folgende Schritte durch:
Klicken Sie auf “OK”.
Öffnen Sie “Erweiterte Einstellungen”.
Falls Ihr Server keine verschlüsselte Verbindung unterstützt, deaktivieren Sie “SSL verwenden”.
Ändern Sie “Port” auf “80”.
Gehen Sie zurück zu den Account-Informationen und klicken Sie “Speichern”.

Ihr Kalender wird nun mit und über Nextcloud synchronisiert.

Adressbuch

Öffnen Sie die “Einstellungen”-App auf Ihrem iOS-Gerät.
Wählen Sie “Mail, Kontakte, Kalender”.
Klicken Sie auf “Account hinzufügen”.
Wählen Sie “Andere” als Account-Typ.
Wählen Sie “CardDAV-Account hinzufügen”.
Als Server verwenden Sie: example.com/remote.php/dav/principals/users/USERNAME/
Geben Sie Ihren Nextcloud Benutzernamen und Ihr Passwort ein.
Klicken Sie “Weiter”.
Falls Ihr Server keine verschlüsselte Verbindung unterstützt, wird Ihnen eine entsprechende Fehlermeldung angezeigt. Bestätige Sie mit “OK”.
Wenn die Accountdaten nicht verifiziert werden können, führen Sie folgende Schritte durch:
Klicken Sie auf “OK”.
Öffnen Sie “Erweiterte Einstellungen”.
Falls Ihr Server keine verschlüsselte Verbindung unterstützt, deaktivieren Sie “SSL verwenden”.
Ändern Sie “Port” auf “80”.
Gehen Sie zurück zu den Account-Informationen und klicken Sie “Speichern”.

Ihr Adressbuch wird nun mit und über Nextcloud synchronisiert.