====== NextCloud ======
===== Instalace NC 17 na Debian 10 =====
https://linuxhint.com/install_nextcloud_debian_10/
Pěkně popsaná instalace s NGINX a Redis serverem\\
https://english.c-rieger.de/nextcloud-installation-guide-debian-10/#c01
===== OCC příkazy =====
https://docs.nextcloud.com/server/18/admin_manual/configuration_server/occ_command.html#versions
**Založení uživatele včetně skupin**
sudo -u www-data php occ user:add --group="ELP_ZBYNEK" --group="ELP_ALL" Zbynek
**Rescan souborů - aktualizace databáze**
sudo -u www-data php occ files:scan --all
**Smazání souborů v koši**\\
https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#trashbin-label
sudo -u www-data php occ trashbin:cleanup --all-users
**Smazání verzí - souborů**\\
Např. uživatel nastavil do cloudu soubory poštovního klienta - verze velice rychle přibívaly a plnily disk.
sudo -u www-data php occ versions:cleanup Matej
===== Problém s klientem verze 2.6.X =====
Starší verze NC\\
https://download.nextcloud.com/desktop/releases/Windows/\\
Klient chce ověřit pomocí přihlášení přes webový prohlížeč a povolení konkrétního klienta.
Bohužel nešlo povolit klienta z webového prohlížeče, tlačítko povolit se chovalo jako neaktivní.
Pomohla úprava konfiguračního souboru ''config.php'', viz. popis na https://github.com/nextcloud/desktop/issues/1470
Přidal jsem řádek '''overwriteprotocol' => 'https'''
'https://nextcloud.myserver.net',
'overwriteprotocol' => 'https',
# 'installed' => true, );
===== NC Upgrade =====
==== Jednotlivé verze NC ====
https://download.nextcloud.com/server/releases/
==== Popis upgrade ====
https://docs.nextcloud.com/server/15/admin_manual/maintenance/manual_upgrade.html
* stop Apache - ''/etc/init.d/apache2 stop''
* přejmenovat složku ''nextcloud'' - ''mv nextcloud nextcloud.18.0.10''
* stáhnout aktuální verzi NC - ''wget https://download.nextcloud.com/server/releases/nextcloud-19.0.4.tar.bz2''
* rozbalit ve složce kde je aktuálně umístěn NC - ''tar -xjf nextcloud-19.0.4.tar.bz2''
* překopírovat konfiguraci NC do nové složky - ''cp -a nextcloud.18.0.10/config/config.php nextcloud/config/''
* přesunout složku se soubory do nového umístění - ''mv nextcloud.18.0.10/data/ nextcloud/''
* nastavir práva ''chown -R www-data:www-data nextcloud && find nextcloud/ -type d -exec chmod 750 {} \; && find nextcloud/ -type f -exec chmod 640 {} \;''
* upgrade - ''cd nextcloud && sudo -u www-data php occ upgrade''
chown -R www-data:www-data nextcloud
find nextcloud/ -type d -exec chmod 750 {} \;
find nextcloud/ -type f -exec chmod 640 {} \;
sudo -u www-data php occ upgrade
Příkaz na jednom řádku
chown -R www-data:www-data nextcloud && find nextcloud/ -type d -exec chmod 750 {} \; && find nextcloud/ -type f -exec chmod 640 {} \; && cd nextcloud && sudo -u www-data php occ upgrade
Při pokusu o upgrade z v14 na v15 bylo potřeba nejdříve provést upgrade php z v7.0 na v7.2.
Provedl jsem upgrade celého OS Ubuntu z verze 16.04 na 18.04.\\
Po upgrade nefungoval, bylo potřeba doinstalovat php v 7.2 a zařadit php moduly(php.conf a php.load) do /etc/apache2/mods-enabled/ a restartovat Apache.
Při upgrade PHP z verze 7.0 na 7.2 nenaběhl NC 15.0.14 . Místo toho se objevila hláška ''Internal server error''\\
Pomohlo zakomentovat řádek '''memcache.local' => '\\OC\\Memcache\\APCu'''\\
https://help.nextcloud.com/t/internal-server-error-going-from-php-7-0-to-php-7-2/35016
Chyba se podařila odstranit změnou parametru ''bind'' - viz.níže.
==== Upgrade PHP ====
https://tecadmin.net/install-php-debian-9-stretch/\\
https://tecadmin.net/install-php-7-on-ubuntu/\\
https://help.nextcloud.com/t/debian-9-php-version-too-old-for-nextcloud-16/53973\\
How to Switch between Multiple PHP Version on Debian 9\\
https://tecadmin.net/switch-between-multiple-php-version-on-debian/
** PHP 7.2**
apt install php7.2 php7.2-fpm php7.2-cli php7.2-curl php7.2-gd php7.2-mysql php7.2-gd php7.2-imagick php7.2-recode php7.2-tidy php7.2-xmlrpc php7.2-mbstring zip unzip php7.2-common php7.2-opcache php7.2-json php7.2-intl php7.2-xml php7.2-zip libapache2-mod-php7.2
** PHP 7.3**
apt install php7.3 php7.3-fpm php7.3-cli php7.3-curl php7.3-gd php7.3-mysql php7.3-gd php7.3-imagick php7.3-recode php7.3-tidy php7.3-xmlrpc php7.3-mbstring zip unzip php7.3-common php7.3-opcache php7.3-json php7.3-intl php7.3-xml php7.3-zip libapache2-mod-php7.3
** PHP 7.4**
apt install php7.4 php7.4-fpm php7.4-cli php7.4-curl php7.4-gd php7.4-mysql php7.4-gd php-imagick php7.4-tidy php7.4-xmlrpc php7.4-mbstring zip unzip php7.4-common php7.4-opcache php7.4-json php7.4-intl php7.4-xml php7.4-zip libapache2-mod-php7.4 php7.4-bcmath php7.4-gmp
Po upgrade PHP je potřeba přenastavit v souboru ''/etc/php/7.X/apache2/php.ini'' parametr ''memory_limit = 512M'' z 128M na 512M
https://iteco.fi/ubuntu-upgrade-from-16-04-to-18-04-messed-up-nextcloud-installation/
===== Problem s Cardav a Caldav =====
https://help.nextcloud.com/t/solved-well-known-caldav-check-in-15-0-4-nextcloud-sever-is-behind-an-haproxy-where-ssl-offloading-is-being-performed/47483
Příklad konfiguračního Apache souboru. Do konfigurace stačí přidat informaci o přesměrování(poslední dva řádky)
1
2 ServerAdmin webmaster@localhost
3 DocumentRoot /var/www/nextcloud
4 Alias /nextcloud "/var/www/nextcloud/"
5
6
7 Options +FollowSymlinks
8 AllowOverride All
9
10
11 Dav off
12
13
14 Require all granted
15
16 SetEnv HOME /var/www/nextcloud
17 SetEnv HTTP_HOME /var/www/nextcloud
18
19
20 ErrorLog ${APACHE_LOG_DIR}/nextcloud_error_log
21 CustomLog ${APACHE_LOG_DIR}/nextcloud_access_log common
22
23
24 Redirect 301 /.well-known/carddav https://lkscloud.profiit.cz/remote.php/dav
25 Redirect 301 /.well-known/caldav https://lkscloud.profiit.cz/remote.php/dav
===== Strict-Transport-Security =====
HTTP hlavička „Strict-Transport-Security“ není nastavena na přinejmenším „15552000“ sekund. Pro lepší zabezpečení je doporučeno zapnout HSTS, jak je popsáno v tipech pro zabezpečení ↗.
https://www.haproxy.com/de/blog/haproxy-and-http-strict-transport-security-hsts-header-in-http-redirects/
===== Nastavení mezipaměti =====
Po instalaci se objevuje hláška:\\
''Nebyla nastavena mezipaměť v paměti. Pokud je dostupná, nastavte ji pro zlepšení výkonu. Další informace lze nalézt v naší dokumentaci.''\\
apt install redis-server php-redis
Nastavit parametr bind v souboru ''/etc/redis/redis.conf''
bind 127.0.0.1 ::1
1 'xxxxxxxxxxxxxxxxx',
4 'passwordsalt' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
5 'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
6 'trusted_domains' =>
7 array (
8 0 => 'localhost' ,
9 1 => 'XXX.XXX.XXX.XX' ,
10 2 => 'lkscloud.profiit.cz' ,
11 ),
12 'datadirectory' => '/var/www/nextcloud/data',
13 'dbtype' => 'mysql',
14 'version' => '17.0.0.9',
15 'overwrite.cli.url' => 'https://lkscloud.profiit.cz',
16 'overwriteprotocol' => 'https',
17 'dbname' => 'nextcloud',
18 'dbhost' => 'localhost',
19 'dbport' => '',
20 'dbtableprefix' => 'oc_',
21 'mysql.utf8mb4' => true,
22 'dbuser' => 'xxxxxxxxxxxxx',
23 'dbpassword' => 'XXXXXXXXXXXXXXXXX',
24 'installed' => true,
25 'skeletondirectory' => '',
26 'memcache.local' => '\\OC\\Memcache\\Redis',
27 'redis' =>
28 array (
29 'host' => 'localhost',
30 'port' => 6379,
31 ),
32 'memcache.locking' => '\\OC\\Memcache\\Redis',
33 'mail_smtpmode' => 'smtp',
34 'mail_sendmailmode' => 'smtp',
35 'mail_from_address' => 'cloud',
36 'mail_domain' => 'profiit.cz',
37 'mail_smtpauthtype' => 'LOGIN',
38 'mail_smtpauth' => 1,
39 'mail_smtphost' => '10.13.238.53',
40 'mail_smtpport' => '25',
41 'mail_smtpname' => 'cloud@profiit.cz',
42 'mail_smtppassword' => 'xxxxxxxxxxxxxxx',
43 );
Po upgrade PHP z verze 7.2 na 7.3 je problém s mezipamětí ''Redis''\\
Objevuje se následující chybová hláška:\\
''Internal Server Error
The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.''
Dočasně pomůže zákaz mezipaměti v souboru ''/var/www/nextcloud/config/config.php''
===== Omezení zápisu do ROOT složky =====
Pro jednotlivé uživatele.
Pro každého uživatele je potřeba nastavit oprávnění **555** na složku ''files''.\\
Standardní oprávnění na složku ''files'' je **755**
Např.:
cd /var/www/nextcloud/data/volfova
chmod 555 files/
===== NextCloud - Docker =====
Nextcloud All-in-One - AIO\\
Nextcloud, Collabora, Talk ...\\
Přístup přes https buď přímo, nebo přes reverzní proxy.\\
Otestovány obě možnosti. Problém byl s Collabora, systém nedetekoval správně Collabora server.\\
Pro beyproblémové fungování, bylo potřeba na lokálním DNS serveru vytvořit zónu pro doménový název použitý pro přístup z internetu. Lokální A záznam ukazuje buď na IP dockeru(v případě, že je https zakončené přímo v docker kontejneru), nebo na adresu reverzního proxy(https je zakončené na reverzním proxy).
https://github.com/nextcloud/all-in-one
https://github.com/nextcloud/all-in-one#how-to-adjust-borgs-retention-policy
https://github.com/nextcloud/all-in-one#backup-solution
https://github.com/nextcloud/all-in-one?tab=readme-ov-file#how-to-use-this
https://github.com/nextcloud/all-in-one#how-to-properly-reset-the-instance
http://10.199.1.106:8080/login
==== Příkazy ====
# seznam Docker kontejneru
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
442df4686110 nextcloud/aio-apache:latest "/start.sh /usr/bin/…" 6 days ago Up About an hour (healthy) 80/tcp, 0.0.0.0:11000->11000/tcp nextcloud-aio-apache
1645e1c533a0 nextcloud/aio-notify-push:latest "/start.sh" 6 days ago Up About an hour (healthy) nextcloud-aio-notify-push
6732c09b3b14 nextcloud/aio-nextcloud:latest "/start.sh /usr/bin/…" 6 days ago Up About an hour (healthy) 9000/tcp nextcloud-aio-nextcloud
f638779d0b7b nextcloud/aio-redis:latest "/start.sh" 6 days ago Up About an hour (healthy) 6379/tcp nextcloud-aio-redis
336613f70244 nextcloud/aio-postgresql:latest "/start.sh" 6 days ago Up About an hour (healthy) 5432/tcp nextcloud-aio-database
956ac056a6cb nextcloud/aio-collabora:latest "/start-collabora-on…" 6 days ago Up About an hour (healthy) 9980/tcp nextcloud-aio-collabora
20b9b211db85 nextcloud/aio-borgbackup:latest "/start.sh" 6 days ago Exited (0) 6 days ago nextcloud-aio-borgbackup
088718a8cba9 nextcloud/all-in-one:latest "/start.sh" 7 days ago Up About an hour (healthy) 80/tcp, 8443/tcp, 9000/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp nextcloud-aio-mastercontainer
# Bash v Docker kontejneru
docker exec -it nextcloud-aio-nextcloud bash
# vytvoreni skupiny
cd /var/www/html
sudo -u www-data php occ group:add groups
# pridani uzivatele do skupiny
sudo -u www-data php occ group:adduser groups karel
#vytvoreni skupinove slozky
sudo -u www-data php occ groupfolders:create grpfolder
sudo -u www-data php occ groupfolders:group
sudo -u www-data php occ groupfolders:group