====== installation et configuration de nextcloud======
=====suivi de : utilisateurs sous nextcloud=====
* Objet : tuto nextcloud et collabora online :
* Niveau requis : {{tag>débutant avisé}}
* * Création par [[user>lagrenouille et Manu]] le 01/11/2019
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
===== Introduction =====
Installation et configuration de nextcloud sur un serveur debian 10 (buster)
.
cette installation est faite sur mon serveur auto hébergé, donc pas forcément adapté à tous.
.
===== Installation =====
Pour le téléchargement,
wget https://download.nextcloud.com/server/releases/nextcloud-17.0.0.zip
Puis, pour une installation dans ''/var/www/html/''
cd /var/www/html
unzip /home/lagrenouille/nextcloud-17.0.0.zip
Pour l’installation, j’ai suivi la doc du site de nextcloud
=== le premier vhost nextcloud.conf ===
ServerAdmin lagrenouille@localhost
ServerName funambule.org
ServerAlias www.funambule.org
ServerAlias cumulus
DocumentRoot /var/www/html/nextcloud/
Options +FollowSymLinks
AllowOverride all
Require all granted
Dav off
SetEnv HOME /var/www/html/nextcloud/
SetEnv HTTP_HOME /var/www/html/nextcloud/
ErrorLog /var/log/apache2/nextcloud/error.log
LogLevel warn
CustomLog /var/log/apache2/nextcloud/access.log combined
RewriteEngine On
j’ai eu quelques erreurs qui me demandait d’installer les paquets suivant :
{{https://debian-facile.org/images/file-R1501c103de40a0a47de866e12ebf1095.png}}
.
apt-get install php5-curl php7.3-xml php-mbstring php7.3-xml php-dom
Puis j’ai l’affichage dans le navigateur :
{{https://debian-facile.org/images/file-R96293f6f6f9fb75669700b7658d6b1f2.png}}
nextcloud vous demande un login et un pass plus le login et le pass de la BDD (mysql)
une fois entrée, j’ai changé l’image d’accueil et mis mon logo
{{https://debian-facile.org/images/file-Rf45f56dbec3dd8159bcaff48a6aed477.png}}
adduser lagrenouille www-data
chown -R www-data:lagrenouille /var/www/html/nextcloud
chmod -R 755 nextcloud/ # (ou 770)
__pour que tous les utilisateurs du serveur puisse lire, supprimer et renommer fichiers, j'ai mis les data à 755__
==== Créer la BDD ====
mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 39
Server version: 10.3.17-MariaDB-0+deb10u1 Debian 10
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
CREATE DATABASE nextcloud;
Query OK, 1 row affected (0.001 sec)
mysql -u lagrenouille -p -e "show databases";
Enter password:
+--------------------+
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| nextcloud |
| performance_schema |
+--------------------+
la base est bien créée
==== Voici un listing de ce j’ai installé ====
dpkg -l | grep php
ii libapache2-mod-php7.3 7.3.9-1~deb10u1 amd64 server-side, HTML-embedded scripting language (Apache 2 module)
ii php 2:7.3+69 all server-side, HTML-embedded scripting language (default)
ii php-common 2:69 all Common files for PHP packages
ii php-curl 2:7.3+69 all CURL module for PHP [default]
ii php-mbstring 2:7.3+69 all MBSTRING module for PHP [default]
ii php-mysql 2:7.3+69 all MySQL module for PHP [default]
ii php-pear 1:1.10.6+submodules+notgz-1.1 all PEAR Base System
ii php-xml 2:7.3+69 all DOM, SimpleXML, WDDX, XML, and XSL module for PHP [default]
ii php7.3 7.3.9-1~deb10u1 all server-side, HTML-embedded scripting language (metapackage)
ii php7.3-cli 7.3.9-1~deb10u1 amd64 command-line interpreter for the PHP scripting language
ii php7.3-common 7.3.9-1~deb10u1 amd64 documentation, examples and common module for PHP
ii php7.3-curl 7.3.9-1~deb10u1 amd64 CURL module for PHP
ii php7.3-gd 7.3.9-1~deb10u1 amd64 GD module for PHP
ii php7.3-json 7.3.9-1~deb10u1 amd64 JSON module for PHP
ii php7.3-mbstring 7.3.9-1~deb10u1 amd64 MBSTRING module for PHP
ii php7.3-mysql 7.3.9-1~deb10u1 amd64 MySQL module for PHP
ii php7.3-opcache 7.3.9-1~deb10u1 amd64 Zend OpCache module for PHP
ii php7.3-readline 7.3.9-1~deb10u1 amd64 readline module for PHP
ii php7.3-sqlite3 7.3.9-1~deb10u1 amd64 SQLite3 module for PHP
ii php7.3-xml 7.3.9-1~deb10u1 amd64 DOM, SimpleXML, WDDX, XML, and XSL module for PHP
ii php7.3-zip 7.3.9-1~deb10u1 amd64 Zip module for PHP php7.3-fpm
dpkg -l | grep apache
ii apache2 2.4.38-3+deb10u1 amd64 Apache HTTP Server
ii apache2-bin 2.4.38-3+deb10u1 amd64 Apache HTTP Server (modules and other binary files)
ii apache2-data 2.4.38-3+deb10u1 all Apache HTTP Server (common files)
ii apache2-doc 2.4.38-3+deb10u1 all Apache HTTP Server (on-site documentation)
ii apache2-utils 2.4.38-3+deb10u1 amd64 Apache HTTP Server (utility programs for web servers)
ii libapache-poi-java 4.0.1-1 all Apache POI - Java API for Microsoft Documents
ii libapache-pom-java 18-1 all Maven metadata for all Apache Software projects
ii libapache2-mod-php7.3 7.3.9-1~deb10u1 amd64 server-side, HTML-embedded scripting language (Apache 2 module)
ii libapache2-mod-php 2:7.3+69 all server-side, HTML-embedded scripting language (Apache 2 module) (default)
ii libapache2-mod-evasive 1.10.1-3 amd64 evasive module to minimize HTTP DoS or brute force attacks
ii apache2-ssl-dev 2.4.38-3+deb10u1 amd64 Apache HTTP Server (mod_ssl development headers)
dpkg -l | grep mysql
ii libdbd-mysql-perl:amd64 4.050-2 amd64 Perl5 database interface to the MariaDB/MySQL database
ii mysql-common 5.8+1.0.5 all MySQL database common files, e.g. /etc/mysql/my.cnf
ii php-mysql 2:7.3+69 all MySQL module for PHP [default]
ii php7.3-mysql 7.3.9-1~deb10u1 amd64 MySQL module for PHP
ii python3-pymysql 0.9.3-1 all Pure-Python MySQL Driver - Python 3.x
dpkg -l | grep mariadb
ii libmariadb3:amd64 1:10.3.17-0+deb10u1 amd64 MariaDB database client library
ii mariadb-client-10.3 1:10.3.17-0+deb10u1 amd64 MariaDB database client binaries
ii mariadb-client-core-10.3 1:10.3.17-0+deb10u1 amd64 MariaDB database core client binaries
ii mariadb-common 1:10.3.17-0+deb10u1 all MariaDB common metapackage
ii mariadb-server 1:10.3.17-0+deb10u1 all MariaDB database server (metapackage depending on the latest version)
ii mariadb-server-10.3 1:10.3.17-0+deb10u1 amd64 MariaDB database server binaries
ii mariadb-server-core-10.3 1:10.3.17-0+deb10u1 amd64 MariaDB database core server files
==== IP Dynamique et DNS ====
Vu que ma box m’attribue des IP dynamique.
Je suis allé récupérer mon apikey chez gandi :
==== récupérer son apikey chez Gandi ====
En cliquant sur votre nom d'utilisateur en haut à droite, puis sur 'Paramètres'.
Cliquez ensuite sur 'Modification de mot de passe & configuration des restrictions d'accès'.
C'est sur cette page que vous pourrez générer votre clef API.
Un copain m’a fait un script python qui récupère mon IP publique et qui la place dans ma zone DNS chez Gandi.
=== Le script ===
#!/usr/local/bin/python3
# -*- coding: UTF-8 -*-
import pycurl
from io import BytesIO
import json
import pprint
import urllib.parse
apikey = 'sxxxxxxxxxxxxx'
buffer = BytesIO()
buffer1 = BytesIO()
curl = pycurl.Curl()
# Requete chez Gandi pour avoir l'ip du DNS
curl.setopt(pycurl.HTTPHEADER, [ "X-Api-Key: " + apikey ]);
curl.setopt(pycurl.WRITEDATA, buffer)
curl.setopt(pycurl.URL, "https://dns.api.gandi.net/api/v5/domains/funambule.org/records/@/A")
curl.perform()
data = buffer.getvalue().decode('utf-8')
datajs = json.loads(data)
old_ip = datajs['rrset_values'][0]
# Requete chez ifconfig pour avoir l'ip, la vraie
curl.setopt(pycurl.URL, "https://ifconfig.me/all.json")
curl.setopt(pycurl.HTTPHEADER, [ "X-Api-Key: " + apikey ]);
curl.setopt(pycurl.WRITEDATA, buffer1)
curl.perform()
data1js = json.loads(buffer1.getvalue().decode('utf-8'))
new_ip = data1js['ip_addr']
# Les deux sont-elles les memes ?
if old_ip != new_ip:
# NON - Je supprime l'ancienne adresse
buffer2 = BytesIO()
curl.setopt(pycurl.HTTPHEADER, [ "Content-Type: application/json", "X-Api-Key: " + apikey ])
curl.setopt(pycurl.CUSTOMREQUEST,'DELETE')
curl.setopt(pycurl.WRITEDATA, buffer2)
curl.setopt(pycurl.URL, "https://dns.api.gandi.net/api/v5/domains/funambule.org/records/@/A")
curl.perform()
print("DELETE -> " + buffer2.getvalue().decode('utf-8'))
# Je remets new_ip
post_data = {}
post_data["rrset_ttl"] = 10800
post_data["rrset_values"] = [ new_ip ]
postfields = json.dumps(post_data)
buffer3 = BytesIO()
curl.setopt(pycurl.HTTPHEADER, [ "Content-Type: application/json", "X-Api-Key: " + apikey ])
curl.setopt(pycurl.CUSTOMREQUEST,'PUT')
curl.setopt(pycurl.POSTFIELDS, postfields)
curl.setopt(pycurl.WRITEDATA, buffer3)
curl.setopt(pycurl.URL, "https://dns.api.gandi.net/api/v5/domains/funambule.org/records/@/A")
curl.perform()
print("PUT -> " + buffer3.getvalue().decode('utf-8'))//
# Modification de la configuration du serveur turn
old_ip_ech = old_ip.replace('.','\.')
cmd = "sed -e 's/^external-ip={}/external-ip={}/' /etc/turnserver.conf >{}".format(old_ip_ech,new_ip,'/etc/turnserver.conf.new')
subprocess.run(cmd,shell=True, check=True)
cmd = "mv /etc/turnserver.conf /etc/turnserver.conf.bkp"
subprocess.run(cmd,shell=True, check=True)
cmd = "mv /etc/turnserver.conf.new /etc/turnserver.conf"
subprocess.run(cmd,shell=True, check=True)
cmd = "systemctl restart coturn"
subprocess.run(cmd,shell=True, check=True)
=== le cron ===
Pour lancer le script de manière régulière :
14 * * * * python3 /etc/dnsnew/manu_update.py
==== Déplacement de mes data dans un DD de stockage ====
mv nextcloud/data/ /home/cumulus/
et correction du fichier configconfig.php de nextcloud (il y en aura d’autres plus loin)
je remplace
'datadirectory' => '/var/www/html/nextcloud/data',
par
'datadirectory' => '/home/cumulus/data',
dans le cloud, j’ai dans
> Avertissements de sécurité & configuration :
>
> Il est important pour la sécurité et la performance de votre instance que celle-ci soit correctement configurée. Afin de vous > aider, votre instance Nextcloud effectue des vérifications automatiques. Pour de plus amples informations, veuillez consulter la documentation liée.
> Il y a quelques erreurs concernant votre configuration.
>
> Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou de le déplacer hors de la racine du serveur web.
>
> SQLite est actuellement utilisé comme système de gestion de base de données. Pour des installations plus volumineuses, nous vous recommandons de migrer vers un autre système de gestion de base de données. C'est particulièrement recommandé lorsque l'on utilise un client bureau pour la synchronisation des fichiers. Pour migrer vers un autre type de base de données, utilisez la ligne de commande : 'occ db:convert-type' ou consultez la documentation ↗.
> La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo.
> Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS, comme expliqué dans nos conseils de sécurisation ↗.
==== Correction des avertissements ====
=== 1) la redirection https ===
Pour que ''dehydrated -c'' fonctionne, il faut qu'apache2 fonctionne sur le port 80. il faut donc désactivé nextcloud-ssl
(heureusement qu’une girafe me l’a soufflé à l’oreille, je comprenais pas l’erreur)
apt update
apt install dehydrated dehydrated-apache2
Paramétrage de dehydrated :
echo "funambule.org www.funambule.org" >> /etc/dehydrated/domains.txt
cat /etc/dehydrated/domains.txt
funambule.org www.funambule.org
dehydrated --register
dehydrated -c
-La commande dehydrated avec l’option -c permet de lancer le processus de création de certificat :
**Maintenant, mes clés privées et publiques ainsi que mon certificat seront disponibles dans le répertoire /var/lib/dehydrated/certs/funambule.org**
ls -lha /var/lib/dehydrated/certs/funambule.org/
cert-1571438695.csr cert.pem privkey-1571438695.pem
cert-1571438695.pem chain-1571439065.pem privkey-1571439065.pem
cert-1571439065.csr chain.pem privkey.pem
cert-1571439065.pem fullchain-1571439065.pem
cert.csr fullchain.pem
**Réactivé nextcloud-ssl et relancé apache2**
systemctl restart apache2
===crontab pour dehydraded===
cd /etc/cron.weekly/
touch dehydrated
nano dehydraded
#!/bin/bash
/usr/bin/dehydrated -c && systemctl reload apache2
chmod +x /etc/cron.weekly/dehydrated &&
=== le vhost nextcloud.conf modifié et simplifié, juste pour la redirection ===
ServerName funambule.org
ServerAlias www.funambule.org
RedirectMatch ^(.*)$ https://funambule.org/$1
== le vhost https dans /etc/apache2/sites-available/nextcloud-ssl.conf ==
==Commencer le vhost en ajoutant la directive NameVirtualHost *:443 au début du fichier, puisque l'on peut generer plusieurs certificats pour la même machine==
ServerAdmin lagrenouille@localhost
ServerName funambule.org
ServerAlias www.funambule.org
ServerAlias cumulus
SSLEngine on
SSLCertificateFile /var/lib/dehydrated/certs/funambule.org/fullchain.pem
SSLCertificateKeyFile /var/lib/dehydrated/certs/funambule.org/privkey.pem
DocumentRoot /var/www/html/nextcloud/
Options +FollowSymLinks
AllowOverride all
Require all granted
Dav off
SetEnv HOME /var/www/html/nextcloud/
SetEnv HTTP_HOME /var/www/html/nextcloud/
Alias /privatebin /var/www/html/privatebin/
Options +FollowSymLinks
AllowOverride all
Require all granted
Alias /compta /var/www/html/compta/dolibarr/htdocs/
Options +FollowSymLinks
AllowOverride all
Require all granted
Alias /lebarananar /var/www/html/lebarananar/
Options +FollowSymLinks
AllowOverride all
Require all granted
ErrorLog /var/log/apache2/nextcloud/error.log
LogLevel warn
CustomLog /var/log/apache2/nextcloud/access.log combined
RewriteEngine On
=== 2) Augmentation de la mémoire allouée à PHP ===
** Vous aurez probablement un message concernant la mémoire du cache trop faible.
Configurez votre fichier /etc/php/7.3/fpm/php.ini .
**
Memory-limit 512
pendant que vous y êtes, augmentez aussi l’upload à votre goût :
upload_max_size 5000M
=== 3) Le cache avec redis ===
apt install redis-server php-redis
**Éditer le fichier: /var/www/chemin_de_votre_serveur/config/config.php
et ajouter:**
array(...,
'memcache.local' => '\\OC\\Memcache\\Redis', /* contient les scripts php précompilés */
'filelocking.enabled' => 'true',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => 'localhost',
'port' => 6379,
'timeout' => 0,
'dbindex' => 0,
),
...
);
=== 4) Installation des modules recommandés ===
Pour le message « Cette instance ne dispose pas de plusieurs modules PHP recommandés. Il est recommandé de les installer pour améliorer les performances, et la compatibilité.
Intl et imagick
apt install php-intl php-imagick
=== 5) Migration de SQLite vers MariaDB ===
**Pour le message : » SQLite est actuellement utilisé comme système de gestion de base de données. Pour des installations plus volumineuses, nous vous recommandons de migrer vers un autre système de gestion de base de données. »
xxxxxxx étant votre mot de passe mysql
**
sudo -u www-data php occ db:convert-type --password="xxxxxxx" --all-apps mysql lagrenouille 127.0.0.1 nextcloud
**Vous aurez un truc comme ça, mais plus long, je mets juste le début et la fin**
Creating schema in new database
oc_accounts
6/6 [============================] 100%oc_activity
chunked query, 5 chunks
4329/4329 [============================] 100%oc_activity_mq
0 [>---------------------------]oc_addressbookchanges
87/87 [============================] 100%oc_addressbooks
1/1 [============================] 100%oc_appconfig
193/193 [============================] 100%oc_authtoken
8/8 [============================] 100%oc_bruteforce_attempts
25/25 [============================] 100%oc_calendar_invitations
0 [>---------------------------]oc_calendar_resources
***etc***etc*****etc**************etc********etc********
8/8 [============================] 100%oc_systemtag
0 [>---------------------------]oc_systemtag_group
0 [>---------------------------]oc_systemtag_object_mapping
0 [>---------------------------]oc_trusted_servers
0 [>---------------------------]oc_twofactor_backupcodes
0 [>---------------------------]oc_twofactor_providers
5/5 [============================] 100%oc_users
6/6 [============================] 100%oc_users_external
0 [>---------------------------]oc_vcategory
0 [>---------------------------]oc_vcategory_to_object
0 [>---------------------------]oc_whats_new
0 [>---------------------------]root@lebug:/var/www/html/nextcloud#
Pour avoir accès en ssh de l’extérieur, j’ai mis dans ma box à la configuration avancée/NAT/PAT
ssh interne 22 externe 2222
==== le fichier config.php ====
'xxxxxxxx',
'passwordsalt' => 'xxxxxxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
'trusted_domains' =>
array (
0 => 'funambule.org',
),
'datadirectory' => '/home/cumulus/data',
'dbtype' => 'mysql',
'version' => '16.0.5.1',
'overwrite.cli.url' => 'http://www.funambule.org/nextcloud',
'dbname' => 'nextcloud',
'dbhost' => '127.0.0.1',
'dbport' => '',
'dbtableprefix' => 'oc_',
'mysql.utf8mb4' => true,
'dbuser' => 'lagrenouille',
'dbpassword' => 'XXXXXXXXX',
'installed' => true,
'has_rebuilt_cache' => true,
'maintenance' => false,
'mail_from_address' => 'lagrenouille',
'mail_smtpmode' => 'smtp',
'mail_sendmailmode' => 'smtp',
'mail_domain' => 'chezlagrenouille.fr',
'mail_smtpauthtype' => 'LOGIN',
'memcache.local' => '\\OC\\Memcache\\Redis',
'filelocking.enabled' => 'true',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => 'localhost',
'port' => 6379,
'timeout' => 0,
'dbindex' => 0,
),
);
==== Ajout d'une page de portail ====
mon nom de domaine est funambule.org
donc
Création d’un répertoire « funambule »
je déplace l’index de ma page d’accueil dans ce répertoire
ls -lha funambule/
total 20K
drwxr-xr-x 3 www-data lagrenouille 4,0K oct. 21 10:47 .
drwxr-xr-x 4 root root 4,0K oct. 21 10:44 ..
drwxr-xr-x 2 www-data lagrenouille 4,0K oct. 5 11:56 images
-rwxr-xr-x 1 www-data lagrenouille 4,6K oct. 21 10:47 index.html
j’appartiens au groupe www-data, c’est pourquoi j’ai fait un :
chown -R www-data lagrenouille
=== Modification du vhost -ssl ===
ServerAdmin lagrenouille@localhost
ServerName funambule.org
ServerAlias www.funambule.org
ServerAlias cumulus
SSLEngine on
SSLCertificateFile /var/lib/dehydrated/certs/funambule.org/fullchain.pem
SSLCertificateKeyFile /var/lib/dehydrated/certs/funambule.org/privkey.pem
DocumentRoot /var/www/html/funambule/
Require all granted
Alias /nextcloud /var/www/html/nextcloud
Options +FollowSymLinks
AllowOverride all
Require all granted
Dav off
SetEnv HOME /var/www/html/nextcloud/
SetEnv HTTP_HOME /var/www/html/nextcloud/
ErrorLog /var/log/apache2/nextcloud/error.log
LogLevel warn
CustomLog /var/log/apache2/nextcloud/access.log combined
RewriteEngine On
** Notes :**
à chaque création ou modification d’un vhost
n’oubliez pas :
a2ensite votre.conf
et relancer le serveur apache
systemctl reload apache2
**
PS : merci à captnfab pour ses aides et à Manu pour son script python..**
======les commandes occ de nextcloud======
La commande occ de Nextcloud (provenant de "ownCloud Console") est l'interface de ligne de commande de Nextcloud. Vous pouvez effectuer de nombreuses opérations de serveur courantes avec occ, telles que l'installation et la mise à niveau de Nextcloud, la gestion des utilisateurs, le cryptage, les mots de passe, les paramètres LDAP, etc.
occ est dans le répertoire nextcloud/
Exécuter occ en tant qu'utilisateur HTTP (www-data pour debian)
Rajoutez vous au groupe sudo si ce n'est pas fait:
adduser popol sudo
Ajout de l'utilisateur « popol » au groupe « sudo »...
Adding user popol to group sudo
sudo -u www-data php occ list
cumulus 16.0.5
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
--no-warnings Skip global warnings, show command output only
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
check check dependencies of the server environment
help Displays help for a command
list Lists commands
status show some status information
upgrade run upgrade routines after installation of a new release. The release has to be installed before.
activity
activity:send-mails Sends the activity notification mails
app
app:check-code check code to be compliant
app:disable disable an app
app:enable enable an app
app:getpath Get an absolute path to the app directory
app:install install an app
app:list List all available apps
app:remove remove an app
app:update update an app or all apps
background
background:ajax Use ajax to run background jobs
background:cron Use cron to run background jobs
background:webcron Use webcron to run background jobs
config
config:app:delete Delete an app config value
config:app:get Get an app config value
config:app:set Set an app config value
config:import Import a list of configs
config:list List all configs
config:system:delete Delete a system config value
config:system:get Get a system config value
config:system:set Set a system config value
dav
dav:create-addressbook Create a dav addressbook
dav:create-calendar Create a dav calendar
dav:list-calendars List all calendars of a user
dav:move-calendar Move a calendar from an user to another
dav:remove-invalid-shares Remove invalid dav shares
dav:sync-birthday-calendar Synchronizes the birthday calendar
dav:sync-system-addressbook Synchronizes users to the system addressbook
db
db:add-missing-indices Add missing indices to the database tables
db:convert-filecache-bigint Convert the ID columns of the filecache to BigInt
db:convert-mysql-charset Convert charset of MySQL/MariaDB to use utf8mb4
db:convert-type Convert the Nextcloud database to the newly configured one
deck
deck:export Export a JSON dump of user data
encryption
encryption:change-key-storage-root Change key storage root
encryption:decrypt-all Disable server-side encryption and decrypt all files
encryption:disable Disable encryption
encryption:enable Enable encryption
encryption:encrypt-all Encrypt all files for all users
encryption:list-modules List all available encryption modules
encryption:set-default-module Set the encryption default module
encryption:show-key-storage-root Show current key storage root
encryption:status Lists the current status of encryption
federation
federation:sync-addressbooks Synchronizes addressbooks of all federated clouds
files
files:cleanup cleanup filecache
files:recommendations:recommend
files:scan rescan filesystem
files:scan-app-data rescan the AppData folder
files:transfer-ownership All files and folders are moved to another user - shares are moved as well.
files_external
files_external:applicable Manage applicable users and groups for a mount
files_external:backends Show available authentication and storage backends
files_external:config Manage backend configuration for a mount
files_external:create Create a new mount configuration
files_external:delete Delete an external mount
files_external:export Export mount configurations
files_external:import Import mount configurations
files_external:list List configured admin or personal mounts
files_external:notify Listen for active update notifications for a configured external mount
files_external:option Manage mount options for a mount
files_external:verify Verify mount configuration
group
group:add Add a group
group:adduser add a user to a group
group:delete Remove a group
group:list list configured groups
group:removeuser remove a user from a group
integrity
integrity:check-app Check integrity of an app using a signature.
integrity:check-core Check integrity of core code using a signature.
integrity:sign-app Signs an app using a private key.
integrity:sign-core Sign core using a private key.
l10n
l10n:createjs Create javascript translation files for a given app
log
log:file manipulate logging backend
log:manage manage logging configuration
log:tail Tail the nextcloud logfile
log:watch Watch the nextcloud logfile
mail
mail:account:create creates IMAP account
mail:account:export Exports a user's IMAP account(s)
maintenance
maintenance:data-fingerprint update the systems data-fingerprint after a backup is restored
maintenance:mimetype:update-db Update database mimetypes and update filecache
maintenance:mimetype:update-js Update mimetypelist.js
maintenance:mode set maintenance mode
maintenance:repair repair this installation
maintenance:theme:update Apply custom theme changes
maintenance:update:htaccess Updates the .htaccess file
maps
maps:scan-photos Rescan photos GPS exif data
maps:scan-tracks Rescan track files
migrations
migrations:execute Execute a single migration version manually.
migrations:generate
migrations:generate-from-schema
migrations:migrate Execute a migration to a specified version or the latest available version.
migrations:status View the status of a set of migrations.
music
music:cleanup clean up orphaned DB entries (this happens also periodically on the background)
music:reset-cache drop data cached by the music app for performance reasons
music:reset-database drop metadata indexed by the music app (artists, albums, tracks, playlists)
music:scan scan and index any unindexed audio files
notification
notification:generate Generate a notification for the given user
security
security:certificates list trusted certificates
security:certificates:import import trusted certificate
security:certificates:remove remove trusted certificate
sharing
sharing:cleanup-remote-storages Cleanup shared storage entries that have no matching entry in the shares_external table
trashbin
trashbin:cleanup Remove deleted files
trashbin:expire Expires the users trashbin
twofactorauth
twofactorauth:cleanup Clean up the two-factor user-provider association of an uninstalled/removed provider
twofactorauth:disable Disable two-factor authentication for a user
twofactorauth:enable Enable two-factor authentication for a user
twofactorauth:enforce Enabled/disable enforced two-factor authentication
twofactorauth:state Get the two-factor authentication (2FA) state of a user
update
update:check Check for server and app updates
user
user:add adds a user
user:delete deletes the specified user
user:disable disables the specified user
user:enable enables the specified user
user:info show user info
user:lastseen shows when the user was logged in last time
user:list list configured users
user:report shows how many users have access
user:resetpassword Resets the password of the named user
user:setting Read and modify user settings
versions
versions:cleanup Delete versions
versions:expire Expires the users file versions
**Une fois dans nextcloud, vous allez dans "applications" et vous activez la console, le prompt est occ**
{{https://debian-facile.org/images/file-Rc9f8506df62ce366b7d814da5187d498.png}}
**vous reste plus qu'a mettre la commande**
**Voir les applications ouvertes ou non**
occ$ app:list
Enabled:
- accessibility: 1.2.0
- activity: 2.9.1
- bruteforcesettings: 1.4.0
- calendar: 1.7.1
- cloud_federation_api: 0.2.0
- comments: 1.6.0
- contacts: 3.1.6
- dav: 1.9.2
- deck: 0.6.6
- external: 3.3.1
- federatedfilesharing: 1.6.0
- federation: 1.6.0
- files: 1.11.0
- files_external: 1.7.0
- files_pdfviewer: 1.5.0
- files_photospheres: 1.0.5
- files_rightclick: 0.13.0
- files_sharing: 1.8.0
- files_texteditor: 2.8.0
- files_trashbin: 1.6.0
- files_versions: 1.9.0
- files_videoplayer: 1.5.0
- firstrunwizard: 2.5.0
- gallery: 18.3.0
- logreader: 2.1.0
- lookup_server_connector: 1.4.0
- mail: 0.17.0
- maps: 0.1.2
- music: 0.11.0
- nextcloud_announcements: 1.5.0
- notifications: 2.4.1
- oauth2: 1.4.2
- ocr: 4.4.13
- onlyoffice: 3.0.2
- ownpad: 0.6.13
- password_policy: 1.6.0
- privacy: 1.0.0
- provisioning_api: 1.6.0
- recommendations: 0.4.0
- richdocuments: 3.4.2
- serverinfo: 1.6.0
- sharebymail: 1.6.0
- support: 1.0.0
- survey_client: 1.4.0
- systemtags: 1.6.0
- theming: 1.7.0
- twofactor_backupcodes: 1.5.0
- updatenotification: 1.6.0
- user_external: 0.7.0
- viewer: 1.1.0
- workflowengine: 1.6.0
Disabled:
- admin_audit
- carnet
- encryption
- event_update_notification
- files_markdown
- gpxmotion
- user_ldap
====synchronisez votre cloud sur votre bureau====
apt installe nextcloud-desktop
{{https://debian-facile.org/images/file-R3a37098d2eb9ff4b09bc7817138e6766.png}}
{{https://debian-facile.org/images/file-Rb0ad4b0c42a602ad7dc72cce899ae11e.png}}
=====collabora online =====
Toujours pareil, la solution sur mon serveur .
wget https://github.com/nextcloud/richdocuments/releases/download/v3.4.2/richdocuments.tar.gz
tar xzf richdocuments.tgz
echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE ./' >> /etc/apt/sources.list.d/collabora.conf
cat /etc/apt/sources.list.d/collabora.list
deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-debian10 ./
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0CXXXXXXXXXXXX4D
apt search loolwsd
En train de trier... Fait
Recherche en texte intégral... Fait
loolwsd/inconnu,now 4.0.8-2 amd64 [installé]
LibreOffice Online WebSocket Daemon
loolwsd-dbgsym/inconnu 4.0.8-2 amd64
debug symbols for loolwsd
apt search code-brand
En train de trier... Fait
Recherche en texte intégral... Fait
code-brand/inconnu,now 4.0-2 all [installé]
Collabora Online Development Edition (CODE) branding
apt install loolwsd code-brand
Création d'un sous domaine (cnam) chez gandi
cname collabora.funambule.org
maintenant il faut généré un certif autosigné pour loolwsd
openssl req -new -x509 -days 365 -nodes -out /etc/loolwsd/ca-chain.cert.pem -keyout /etc/loolwsd/key.pem
cd /etc/loolwsd/
ln -s ca-chain.cert.pem cert.pem
chown lool.lool key.pem
Le chown est important car key.pem est en 400 et par défaut il appartient à root, alors que loolwsd tourne sous le user lool
ls -lha /etc/loolwsd/
total 60K
drwxr-xr-x 2 root root 4,0K nov. 2 11:11 .
drwxr-xr-x 141 root root 12K nov. 1 14:05 ..
-rw-r--r-- 1 root root 1,3K nov. 1 14:18 ca-chain.cert.pem
lrwxrwxrwx 1 root root 17 nov. 1 14:20 cert.pem -> ca-chain.cert.pem
-rw------- 1 lool lool 1,7K nov. 1 14:18 key.pem
-rw-r--r-- 1 root root 1,7K oct. 23 09:00 loolkitconfig.xcu
-rw-r----- 1 lool lool 13K nov. 1 15:32 loolwsd.xml
-rw-r----- 1 root root 13K nov. 1 14:47 loolwsd.xml.orig
cat /etc/apache2/sites-enabled/000-proxy-ssl.conf
ServerName collabora.funambule.org
Options -Indexes
# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
SSLEngine on
SSLCertificateFile /var/lib/dehydrated/certs/funambule.org/fullchain.pem
SSLCertificateKeyFile /var/lib/dehydrated/certs/funambule.org/privkey.pem
#SSLCertificateChainFile /path/to/intermediate_certificate
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:....je raccourcis.......-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-DSS
SSLHonorCipherOrder on
# Manu rajoute par la suite
TimeOut 6000
# Encoded slashes need to be allowed
AllowEncodedSlashes NoDecode
# Container uses a unique non-signed certificate
SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
# keep the host
ProxyPreserveHost On
# static html, js, images, etc. served from loolwsd
# loleaflet is the client part of Collabora Online
ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0
ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet
# WOPI discovery URL
ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery
# Capabilities
ProxyPass /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities retry=0
ProxyPassReverse /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities
# Main websocket
ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon
# Admin Console websocket
ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws
# Download as, Fullscreen presentation and Image upload operations
ProxyPass /lool https://127.0.0.1:9980/lool
ProxyPassReverse /lool https://127.0.0.1:9980/lool
Rajout de l'alias collabora dans nextcloud/config.config.php à la suite de funambule.org
'trusted_domains' =>
array (
0 => 'funambule.org',
1 => 'collabora.funambule.org',
systemctl restart loolwsd
systemctl restart apache2
J'ai du ouvrir les ports dans ma box, 22 interne et 2222 externe pour ssh, 80 et 443 puis 9980
La création d'un document office ouvre instantanément collabora
{{https://debian-facile.org/images/file-Reed34f4fccb1ea3f63adb221acf4664d.png}}
**Maintenant, voila la seule procédure que j'ai trouvé pour collaborer à plusieurs à l'écriture d'un texte.**
1) créez votre texte
2) vous avez le sigle de partage à droite (le petit V basculé sur sa droite
3) cliquez dessus et vous aurez à droite "partager un lien"
4) dans la zone de texte mettez l'adresse émail de la personne avec qui vous voulez collaboré sur ce texte
5) en cliquant sur les 3 points, Un menu déroulant s'ouvre, cochez "Permettre la modification"
6) cliquez sur l’icône de presse-papiers, ça affiche le texte "Copié "
7) gardez ce lien au chaud et collez le dans l’émail que vous envoyez à la, ou aux personnes qui vont travailler avec vous sur le texte.
ça devrait le faire. :o)
Chaque fois qu'une nouvelle personne se connecte, vous verrez son logo en haut de page
{{https://debian-facile.org/images/file-R8b51ab3ec3133d8874de73fd5efc424e.png}}
=====autre article sur Debian-facile et ailleurs =====
[[https://debian-facile.org/doc:reseau:nextcloud]]
installation chez gandi
https://blog.leboeuf.me/2017/installer-un-nextcloud-sur-un-simplehosting-de-gandi-de-a-a-z.html
=====* tuto pour les nouveaux utilisateurs de nextcloud *=====
Votre premier contact avec le cloud sera le logo et la demande de votre login et mot de passe
{{https://debian-facile.org/images/file-R4be31b7dfb2f9a1984a96b3f40e7abc7.png}}
Si tout va bien vous arrivez dans votre espace personnel, il n’y aura pas forcément les fichiers et le menu qui sont sur cette image.
Il y aura les applis que l'administrateur à installé, et les dossiers et fichiers que vous allez faire vous même.
{{https://debian-facile.org/images/file-R70d90742c50d9c939e9f5a6cda546932.png}}
En haut à droite cliquez sur votre logo (rond)
{{https://debian-facile.org/images/file-Ra81169f83e7b1f694911425b0e4efde6.png}}
c'est là que vous pouvez choisir la langue, mettre votre logo, etc...
{{https://debian-facile.org/images/file-R081bddeea85718282761a64b268dbd5a.png}}
===Créer des dossiers et mettre des fichiers dedans, mp3, mp4, pdf, txt, odt etc....===
Vous avez une petite maison à gauche et un + dans un rond.
{{https://debian-facile.org/images/file-Re3ec2cbefdd948a2ae6a79a31b697113.png}}
Lorsque vous cliquez sur cette croix, c'est là où vous allez créer vos dossiers, puis une fois dans vos dossiers, vous envoyez vos fichiers
{{https://debian-facile.org/images/file-R5302f807d9e7bef1d3d373b7b71bd14d.png}}
Su le droite vous avez les 3 petits points, si vous cliquez dessus, voila ce que vous pouvez faire:
{{https://debian-facile.org/images/file-R2b59be3b024b71790527a7f03e9abca5.png}}
===Partagez vos fichiers ou vos dossiers (si l'administrateur vous à donné les droits)===
Dans la page de droite vous avez un petit V couche sur sa droite
{{https://debian-facile.org/images/file-Rf67ab1b55d5866e2c31fae5d49f03798.png}}
cliquez sur le petit V renversé
{{https://debian-facile.org/images/file-R6e48d156f883b928da8f256c73705da3.png}}
cliquez sur le symbole +
{{https://debian-facile.org/images/file-R89889f3bd1df55d9aec4a8752a2c655d.png}}
Vous avez un petit carré (symbole d'un document) avec une flèche dedans, cliquez dessus et vous avez le message "copiez le lien"
Collez le lien dans la ligne vide au dessus et cliquez sur la flèche à droite.
Envoyez ce lien chez vos amis, dans vos emails, sur un site, bref mettez le à disposition là où vous voulez partager votre fichier.
=====Pour les utilisateurs (non admin) =====
Si un utilisateur veut partager l'écriture d'un fichier, il lui faudra créer les nouveaux utilisateurs, aven nom et email
Pour plus de sûreté faite vous un répertoire, exemple "collectif", les utilisateurs qui seront dans le groupe collectif pourront partagé l'écriture du texte.
{{https://debian-facile.org/images/file-Ra038550db9f4f6534170dbffcbddb7c7.png}}
**Revenez à vos dossiers**
**
Puis vous partagez le dossier**: **cliquez sur partagé.**
{{https://debian-facile.org/images/file-Ra88695f053a5d21110915b3b17ad914c.png}}
{{https://debian-facile.org/images/file-R4e7c2706c6a5a8b57e6c593b9d40fcb5.png}}
**Quand le nouvel utilisateur se connecte, vous verrez son logo**
{{https://debian-facile.org/images/file-R5e5202e7f15ffa7d44de687412849925.png}}
=====À propos des utilisateurs=====
Dans la configuration des utilisateurs, vous créez des groupes, avec vos propres critères:
Dans la configuration "partage" je vous conseil de coché :
//N'autoriser les partages qu'entre membres de même groupe//
Ce qui empêchera que tout le monde voit tous les utilisateurs, mais juste ceux du ou des groupes auxquels il appartient
{{https://debian-facile.org/images/file-Re7fda6e24527d2871868de41a92738f9.png}}
===La sortie de serveur Turn à légèrement changé le script python pour le DNS===
il est rajouté à la fin
# Modification de la configuration du serveur turn
old_ip_ech = old_ip.replace('.','\.')
cmd = "sed -e 's/^external-ip={}/external-ip={}/' /etc/turnserver.conf >{}".format(old_ip_ech,new_ip,'/etc/turnserver.conf.new')
subprocess.run(cmd,shell=True, check=True)
cmd = "mv /etc/turnserver.conf /etc/turnserver.conf.bkp"
subprocess.run(cmd,shell=True, check=True)
cmd = "mv /etc/turnserver.conf.new /etc/turnserver.conf"
subprocess.run(cmd,shell=True, check=True)
cmd = "systemctl restart coturn"
subprocess.run(cmd,shell=True, check=True)
{{https://debian-facile.org/images/file-Ra9874b11056daf115efc29dc83a263f1.png}}