====== Nextcloud 28 – Installation Debian ====== ===== Présentation ===== {{nextcloud:Presentation_59984293557d4210bab18ad287fba0c6.png?300 }} Nextcloud 28 //(Nextcloud Hub 7)// – Interface de connexion Nous allons, dans ce tutoriel, créer un **Cloud** personnel en installant **Nextcloud**.\\ Pour finir, nous **optimiserons** notre installation afin d’améliorer les performances de notre **Cloud Personnel**.\\ jjworld.fr[[https://www.jjworld.fr/installer-nextcloud-creer-son-cloud-personnel/]] ---- ===== Préparation de l’environnement ===== Avant d’installer Nextcloud et de créer notre Cloud Personnel, il faut s’assurer que le système est correctement configuré.\\ **Important :** A partir d’ici, toutes les commandes seront exécutées en tant que **root**. === 1.1) Configuration de l’heure === timedatectl set-timezone Europe/Paris hwclock -w timedatectl status Vous pouvez obtenir la liste des fuseaux horaire acceptés en utilisant la commande : ''%%timedatectl list-timezones%%'' === 1.2) Mise à jour du dépôt et des paquets === ''%%apt -y update && apt -y upgrade%%'' === 1.3) Ajout d’un nouveau dépôt pour php8.2 === La version 8.2 de php n’est pour le moment pas disponible dans le dépôt officiel de Debian 12 et Ubuntu 22.04.\\ On ajoute donc un dépôt qui contient la version 8.2 : == Pour Debian 11 et Debian 12 == apt install -y lsb-release apt-transport-https ca-certificates && \ wget -O /etc/apt/trusted.gpg.d/php.gpg https:%%//%%packages.sury.org/php/apt.gpg && \ echo “deb https:%%//%%packages.sury.org/php/ $(lsb_release -sc) main” |\ tee /etc/apt/sources.list.d/php.list && \ apt update -y == Pour Ubuntu 22.04 : == apt install -y software-properties-common\ add-apt-repository -y ppa:ondrej/php\ apt update -y === 1.4) Installation des prérequis pour Nextcloud 28 === export DEBIAN_FRONTEND=noninteractive # Installation des paquets (dont sudo pour Debian 11 et Debian 12) apt-get install -y apache2 mariadb-server libapache2-mod-php8.2 imagemagick \ php8.2-gd php8.2-mysql php8.2-curl php8.2-mbstring \ php8.2-intl php8.2-imagick php8.2-xml php8.2-zip \ php8.2-apcu redis-server php8.2-redis \ php8.2-ldap smbclient php8.2-bcmath php8.2-gmp \ sudo ===== Installation de NextCloud 28 ===== === 2.1) Création du Site Nextcloud dans Apache === == Téléchargement de Nextcloud 28 : == wget https:%%//%%download.nextcloud.com/server/releases/latest-28.tar.bz2 == Extraction dans le répertoire /var/www/ : == tar -xvf latest-28.tar.bz2 -C /var/www/ == Edition du fichier de configuration du site : == nano /etc/apache2/sites-available/nextcloud.conf {{nextcloud:Nextcloud-Configuration-Site-Apa_9c8eb3866db5480ea.png}} Contenu : Alias / “/var/www/nextcloud:” Require all granted AllowOverride All Options FollowSymLinks MultiViews Dav off Header always set Strict-Transport-Security “max-age=15552000; includeSubDomains” == Attention à l’indentation. Problème constaté lors du copier/coller sous Firefox 107.0.1. == == Activation du site et des modules nécessaires : == # Activation du site nextcloud a2ensite nextcloud.conf Activation des modules a2enmod rewrite a2enmod headers a2enmod env a2enmod dir a2enmod mime # SSL a2enmod ssl a2ensite default-ssl # Redémarrage service apache systemctl restart apache2 == Changement du propriétaire du répertoire nextcloud : == chown -R www-data:www-data /var/www/nextcloud == Vérifications versions : == sudo -u www-data php /var/www/nextcloud:occ -V sudo -u www-data php /var/www/nextcloud:occ status === 2.2) Création de la base de données Nextcloud === == Pré-configuration de la base MariaDB : == Les commandes qui suivent sont l’équivalent du script interactif **mysql_secure_installation**. mysql –user=root <<-EOF SET PASSWORD FOR ‘root’@‘localhost’ = PASSWORD(‘VotreMotDePasse’); DELETE FROM mysql.user WHERE User=‘root’ AND Host NOT IN (‘localhost’, ‘127.0.0.1’, ‘::1’); DELETE FROM mysql.user WHERE User=’‘; DELETE FROM mysql.db WHERE Db=’test’ OR Db=‘test_%’; FLUSH PRIVILEGES; EOF **==Attention==** : Remplacer **VotreMotDePasse** par le mot de passe que vous aurez choisi. == Création de la base de données : == mysql –user=root –password=VotreMotDePasse <<-EOF CREATE DATABASE nextcloud; CREATE USER ‘nextcloud’@‘localhost’ IDENTIFIED BY ‘VotreMotDePasse’; GRANT ALL PRIVILEGES ON nextcloud.* TO “nextcloud”@“localhost”; FLUSH PRIVILEGES; EOF **==Attention==** : Remplacer **VotreMotDePasse** par le mot de passe que vous aurez choisi. === 2.3) Finalisation de l’installation === Pour terminer l’installation, il va falloir se connecter à l’URL de votre serveur Nextcloud.\\ Exemple : **https:%%//%%192.168.1.203** {{nextcloud:Nextcloud-Finalisation-Installat_9de8df90f336463e8.png}} 1 : Nom du compte Administrateur Nextcloud\\ 2 : Mot de passe du compte Administrateur\\ 3 : Nom de l’utilisateur de base de données\\ 4 : Mot de passe de la base de données\\ 5 : Nom de la base de données\\ 6 : Serveur hébergeant la base de données Cliquer sur **« Terminer l’installation »**. ---- ===== Configuration de Nextcloud 28 ===== Une fois l’installation terminée, retourner dans l’invite de commande. === 3.1) Configuration de la région par défaut pour les numéros de téléphone === sudo -u www-data php /var/www/nextcloud:occ config:system:set \ default_phone_region –value=“FR” Remplacer **FR** par votre code pays [[https://en.wikipedia.org/wiki/ISO_3166-1|ISO 3166-1]]. === 3.1) Configuration de Pretty URLs === sudo -u www-data php /var/www/nextcloud:occ config:system:set htaccess.RewriteBase –value=“/” sudo -u www-data php /var/www/nextcloud:occ maintenance:update:htaccess Pretty URLs permet de supprimer le **//« index.php »//** dans la barre d’adresse. === 3.2) Forcer HTTPS === == Edition du fichier .htaccess : == nano /var/www/nextcloud:.htaccess Se rendre à la fin du fichier et renseigner les lignes suivantes juste avant la balise ''%%%%'' et avant l’instruction ''%%RewriteBase /%%'' : RewriteCond %{HTTPS} !=on\\ RewriteRule (.*) https:%%//%%%{HTTP_HOST}%{REQUEST_URI} [R=301,L] {{nextcloud:Nextcloud-htaccess-forcer-https_8e3f02b24efd4bb2a0.png}} La première ligne **RewriteCond** est la condition.\\ La seconde est la **règle** de réécriture. === 3.3) Suppressions des fichiers par défaut === Le répertoire modèle utilisé lors de la création d’un profil utilisateur se trouve dans : ''%%/var/www/nextcloud:core/skeleton/Documents/%%'' rm -r “/var/www/nextcloud:core/skeleton/Documents/” rm -r “/var/www/nextcloud:core/skeleton/Photos/” rm “/var/www/nextcloud:core/skeleton/Nextcloud intro.mp4” rm “/var/www/nextcloud:core/skeleton/Nextcloud.png” L’exemple ci-dessus supprime les répertoires et les fichiers et ne garde que le fichier ''%%Nextcloud Manual.pdf%%''\\ Bien entendu, de nouveaux fichiers et répertoires peuvent être rajoutés en fonction du besoin. === 3.4) Installation et Activation d’applications dans Nextcloud === == External storage support : == sudo -u www-data php /var/www/nextcloud:occ app:install files_external sudo -u www-data php /var/www/nextcloud:occ app:enable files_external Application permettant de se connecter à des partages externes (SMB, FTP etc…). == LDAP user and group backend : == sudo -u www-data php /var/www/nextcloud:occ app:install user_ldap\\ sudo -u www-data php /var/www/nextcloud:occ app:enable user_ldap Application permettant de se connecter à un annuaire LDAP (Exemple : Active Directory). == Mise à jour de toutes les applications == sudo -u www-data php /var/www/nextcloud:occ app:update –all === 3.5) Gestion des fichiers supprimés (Corbeille) === L’application **Deleted files** installée par défaut gère les fichiers supprimés en fonction du paramètre **trashbin_retention_obligation** du fichier ''%%config.php%%''. == Vérification du paramètre trashbin_retention_obligation : == sudo -u www-data php /var/www/nextcloud:occ config:system:get \ trashbin_retention_obligation **A noter :** Si aucune valeur n’est retournée, la configuration par défaut sera utilisée. == Modification du paramètre trashbin_retention_obligation : == sudo -u www-data php /var/www/nextcloud:occ config:system:set \ trashbin_retention_obligation –value=“auto, 15” Les fichiers seront définitivement supprimés au bout de **15 jours**.\\ Si la taille de l’ensemble des fichiers supprimés dépassent la limite autorisée (par défaut **50% de l’espace libre**), l’application **Deleted files** supprimera les fichiers les plus anciens jusqu’à descendre en dessous de la limite autorisée. == Forcer la suppression définitive des fichiers supprimés ne respectant plus les conditions de rétention == sudo -u www-data php /var/www/nextcloud:occ trashbin:expire == Forcer la suppression définitive de tous les fichiers supprimés == sudo -u www-data php /var/www/nextcloud:occ trashbin:cleanup –all-users ==Il est possible de remplacer ''%%--all-users%%'' par le nom des utilisateurs séparés par des espaces.==\\ ==Pour un utilisateur provenant de l’annuaire LDAP, il faudra utiliser son ID.== Pour aller plus loin : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#deleted-items-trash-bin|Nextcloud – Deleted Items (trash bin)]] et [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#trashbin|Nextcloud – Occ Trashbin]] === 3.6) Tâches de fond === Pour son bon fonctionnement, Nextcloud exécute régulièrement des tâches de fond (Jobs).\\ **Exemple de tâche** : Scan à la recherche de nouveaux fichiers.\\ Par défaut, ces tâches sont exécutées à chaque chargement de page.\\ Cependant, si personne ne visite le site, aucune tâche ne sera exécutée.\\ Il est donc recommandé d’utiliser [[https://doc.ubuntu-fr.org/cron|Cron]] afin d’exécuter ces tâches de manière régulière sans intervention humaine. == Création de la tâche Cron : == crontab -u www-data -e Ajouter la ligne suivante à la fin du fichier : */5 * * * * php -f /var/www/nextcloud:cron.php Le fichier **cron.php** contenant les tâches Nextcloud sera exécuté toutes les **5 minutes**.\\ Cet intervalle peut être modifié en remplaçant le **5** par une autre valeur. == Configuration du type de tâche dans Nextcloud : == sudo -u www-data php /var/www/nextcloud:occ background:cron **Attention aux espaces. Problème constaté lors du copier/coller sous Firefox 107.0.1.** Pour aller plus loin, vous pouvez consulter la page [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/background_jobs_configuration.html|Background jobs]] de la documentation officielle. === 3.6) Configuration de la langue du profil === Rentrer dans le menu **« Paramètres »** : {{nextcloud:ParametresPersonel_31eb1fa7592b4cc79705530e81d22bd.png|Parametres}} Dans le panneau de gauche, sélectionner **« Informations personnelles »**. Régler la **Langue** et les **Paramètres régionaux** : {{nextcloud:Parametres-Regionaux_1292ffe779c647c09e8f1696cdef8.png|Parametres}} Il est également possible de définir les autres paramètres (Adresse email, téléphone etc…) === 3.7) Vérification de Mise à Jour === Cliquer sur **« Vue d’ensemble »** sous **« Administration »**. {{nextcloud:Nextcloud-V_C3_A9rification-MAJ_a2573419bbb94c05a1.png|Mise a jour}} ---- ===== Utilisateurs et Groupes ===== === 5.1) Création Utilisateurs et Groupes === Se rendre dans le menu **Utilisateurs**. {{nextcloud:Nextcloud-Utilisateurs_0bdfb8fdf7c042ffa42b05fc2c2.png|Utilisateurs}} Cliquer sur **« Ajouter un groupe »** pour créer un groupe.\\ Cliquer sur **« Nouvel utilisateur »** pour créer un utilisateur. === 5.2) Administrateurs Nextcloud === Pour définir un utilisateur en tant qu’Administrateur, il faut l’ajouter au groupe **« admin »**. {{nextcloud:Nextcloud-Utilisateurs-Ajout-Gro_cc1fde50a2684b21a.png|Utilisateur admin}} ---- ===== Stockages Externes ===== === 6.1) Configuration générale === Grâce à l’application %%**%%%%**%%[[https://docs.nextcloud.com/server/latest/go.php?to=admin-external-storage|External storage support]]%%**%%%%**%%, il est possible de se connecter à des stockages externes (Exemple : SMB, FTP etc…).\\ Nous allons, dans l’exemple qui suit, nous connecter à un partage SMB/WINDOWS de notre serveur TrueNAS (Installé grâce à notre [[https://www.jjworld.fr/installer-freenas-truenas/|Tutoriel TrueNAS]]). == Se rendre dans Paramètres, Stockages externes : == {{nextcloud:Nextcloud-Stockages-Externes-102_3ba6d7ed800149d08.png|Stockage externe}} **Stockage externe** : Type de stockage\\ **Authentification** : A choisir en fonction du contexte mais **« Identifiants de connexion, sauvegardés dans la base de données »** permet une meilleure compatibilité avec les services tels que l’application pour Smartphone et le client Windows.\\ Pour plus d’information sur les méthodes d’authentification, consulter la page officielle [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/external_storage/auth_mechanisms.html|External Storage authentication mechanisms]] === 6.2) Autoriser le Partage === Pour que les utilisateurs puissent partager des fichiers provenant du stockage externe, il faudra activer l’option **''%%"Permettre le partage"%%''**. Cliquer sur les **« … »** et cocher l’option **« Permettre le partage »**. {{nextcloud:2021-01-24-12_08_14-Parametres-N_c72a0a0824c54d5cb.png|Partage}} ---- ===== Optimisation de Nextcloud ===== **A partir d’ici, le serveur Nextcloud est fonctionnel.**\\ Cependant, des problèmes de performances peuvent se faire ressentir.\\ Pour s’en prévenir, il faut suivre quelques recommandations de la documentation officielle de **NextCloud**. === 7.1) Base de données === Sources : [[https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html#using-mariadb-mysql-instead-of-sqlite|Documentation Nextcloud – MariaDB/MySQL]] == Edition du fichier mysql.cnf : == nano /etc/mysql/conf.d/mysql.cnf Contenu : [mysqld]\\ innodb_buffer_pool_size=512M\\ innodb_io_capacity=4000 Attention, il s’agit de la section mysql**d**. Exemple : {{nextcloud:Nextcloud-mysql-cfg_dcf34eef661644d98f14c9178a4e95.png|Mysql}} Il est possible d’aller plus loin dans l’optimisation en utilisant cette documentation : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_database/linux_database_configuration.html#configuring-a-mysql-or-mariadb-database|Documentation Nextcloud – Configuring a MySQL or MariaDB database]] == Edition du fichier my.cnf : == nano /etc/mysql/my.cnf Contenu : [mysqld]\\ transaction_isolation = READ-COMMITTED\\ binlog_format = ROW Exemple : {{nextcloud:Nextcloud-my-cfg_323f0977c8874946a9793508c6d232f0.png|Ameliorations}} == Redémarrage MariaDB : == systemctl restart mariadb.service === 7.2) PHP – Modification memory_limit et désactivation output_buffering === == Valeur initiale : == cat /etc/php/8.2/apache2/php.ini | egrep “memory_limit|^output_buffering” == Modification : == sed -i -e "s/^memory_limit \+= \+.*$/memory_limit = 512M/g" /etc/php/8.2/apache2/php.ini sed -i -e "s/^output_buffering \+= \+.*$/output_buffering = 0/g" /etc/php/8.2/apache2/php.ini systemctl restart apache2.service Modification du paramètre memory_limit à **512M** minimum pour le bon fonctionnement de Nextcloud.\\ Cette valeur peut être augmentée en fonction du besoin. == Vérifications : == cat /etc/php/8.2/apache2/php.ini | egrep “memory_limit|^output_buffering” === 7.3) Configuration de Redis === Source : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html|Documentation Nextcloud – Redis]] == Ajout de l’utilisateur www-data au groupe redis : == usermod -a -G redis www-data == Configuration du fichier redis.conf : == sed -i -e "s/^#* *port +*6379$/port 0/g" /etc/redis/redis.conf sed -i -e "s/^#* *unixsocket +*.*$/unixsocket \/var\/run\/redis\/redis-server.sock/g" /etc/redis/redis.conf sed -i -e "s/^#* *unixsocketperm+*.*$/unixsocketperm 770/g" /etc/redis/redis.conf == Vérification : == cat /etc/redis/redis.conf | egrep “^#* *port +|^#* *unixsocket +|^#* *unixsocketperm +” {{nextcloud:Nextcloud-redis-conf_44f3054d4fea42a3a3467bc099838.png|Redis}} == Redémarrage de Redis : == systemctl restart redis-server.service === 7.4) File Locking et Memory Cache === Source : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/files_locking_transactional.html|File Locking]] et [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html|Memory Caching]] == Configuration avec la commande occ: == Shell # Activation de filelocking sudo -u www-data php /var/www/nextcloud:occ config:system:set filelocking.enabled –value=“true” # Configuration du Redis sudo -u www-data php /var/www/nextcloud:occ config:system:set redis host –value=“/var/run/redis/redis-server.sock” sudo -u www-data php /var/www/nextcloud:occ config:system:set redis port –value=“0” sudo -u www-data php /var/www/nextcloud:occ config:system:set redis timeout –value=“0.0” # Configuration de memcache.distributed (à effectuer après la configuration de Redis) sudo -u www-data php /var/www/nextcloud:occ config:system:set memcache.distributed –value=“\OC\Memcache\Redis” # Configuration de memcache.local et memcache.locking sudo -u www-data php /var/www/nextcloud:occ config:system:set memcache.local –value=“\OC\Memcache\Redis” sudo -u www-data php /var/www/nextcloud:occ config:system:set memcache.locking –value=“\OC\Memcache\Redis” == Vérification : == cat /var/www/nextcloud:config/config.php | \ egrep “’filelocking\.enabled|’memcache\.local\ ’memcache\.locking|’host|’port|’timeout|’memcache\.distributed” {{nextcloud:Nextcloud-cache-config_9d02579969034e2898d3e1f0fa9.png|Configuration}} == Redémarrage d’Apache : == systemctl restart apache2.service === 7.5) Activation de PHP OPcache === Source : [[https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html#enable-php-opcache|Documentation Nextcloud – Enable PHP OPcache]] == Edition du fichier php.ini : == Shell sed -i -e "s/^;* *opcache\.enable *= *.*$/opcache.enable=1/g" /etc/php/8.2/apache2/php.ini sed -i -e "s/^;* *opcache\.memory_consumption *= *.*$/opcache.memory_consumption=128/g" /etc/php/8.2/apache2/php.ini sed -i -e "s/^;* *opcache\.interned_strings_buffer *= *.*$/opcache.interned_strings_buffer=8/g" /etc/php/8.2/apache2/php.ini sed -i -e "s/^;* *opcache\.max_accelerated_files *= *.*$/opcache.max_accelerated_files=10000/g" /etc/php/8.2/apache2/php.ini sed -i -e "s/^;* *opcache\.revalidate_freq *= *.*$/opcache.revalidate_freq=60/g" /etc/php/8.2/apache2/php.ini sed -i -e "s/^;* *opcache\.save_comments *= *.*$/opcache.save_comments=1/g" /etc/php/8.2/apache2/php.ini sed -i -e "s/^;* *opcache\.interned_strings_buffer *= *.*$/opcache.interned_strings_buffer=16/g" /etc/php/8.2/apache2/php.ini == Vérification : == cat /etc/php/8.2/apache2/php.ini | \ egrep “^;* *opcache\.enable *=|^;* *opcache\.interned_strings_buffer *=\ |^;* *opcache\.max_accelerated_files *=|^;* *opcache\.memory_consumption *=\ |^;* *opcache\.save_comments *=|^;* *opcache\.revalidate_freq *=\ |^;* *opcache\.interned_strings_buffer*=” {{nextcloud:Nextcloud-php-OPCache-config_2b95b0323c974a9c8f5a7.png|Opcache}} == Redémarrage d’Apache : == systemctl restart apache2.service |1|systemctl restart apache2.service| === 7.6) Taille limite de téléchargement === Source : [[https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/big_file_upload_configuration.html|Documentation Nextcloud – Uploading big files]] == Edition du fichier php.ini : == sed -i -e "s/^;* *upload_max_filesize *= *.*$/upload_max_filesize=16G/g" /etc/php/8.2/apache2/php.ini sed -i -e "s/^;* *post_max_size *= *.*$/post_max_size=16G/g" /etc/php/8.2/apache2/php.ini == Vérification : == cat /etc/php/8.2/apache2/php.ini | egrep “^;* *upload_max_filesize *=|^;* *post_max_size *=” {{nextcloud:Nextcloud-upload-big-file-php-co_3c40c8edf04144f3a.png|Taille du téléchargement}} == Redémarrage d’Apache : == systemctl restart apache2.service ---- ===== Sauvegarde de Nextcloud ===== **Source**[[https://docs.nextcloud.com/server/latest/admin_manual/maintenance/backup.html|Nextcloud Backup]] == Création des répertoires de sauvegarde : == # Fichiers\\ mkdir -p /backups/nextcloud:files\\ # Base de données\\ mkdir -p /backups/nextcloud:database\\ # Permissions\\ chmod -R o-rwx /backups/ == Activation du mode Maintenance : == # Activation\\ sudo -u www-data php /var/www/nextcloud:occ maintenance:mode –on\\ # Vérification\\ sudo -u www-data php /var/www/nextcloud:occ maintenance:mode == Sauvegarde des fichiers dans un répertoire /backups/nextcloud: : == # Sauf répertoire data et corbeille\\ rsync -Aavx /var/www/nextcloud: \\\ /backups/nextcloud:files/nextcloud-backup_`date +“%Y%m%d_%H%M%S”`/ \\\ --exclude={‘data/*’,‘*/files_trashbin/files/*’} Le répertoire de sauvegarde sera ''%%/backups/nextcloud:files/nextcloud-backup_20201010_153025/%%'' pour une sauvegarde effectuée le 10 Octobre 2020 à 15:30:25. **Important** : Si vous souhaitez tout de même sauvegarder le répertoire data et la corbeille, il faudra supprimer le paramètre ''%%--exclude%%''. == Sauvegarde de la base de données MySQL/MariaDB : == mysqldump –single-transaction -h localhost -u nextcloud -pVotreMotDePasse nextcloud > \\\ /backups/nextcloud:database/nextcloud-sqlbkp_`date +“%Y%m%d_%H%M%S”`.bak **-h** : nom ou IP du serveur de base de données\\ **-u** : utilisateur de la base de données\\ **-p** : mot de passe de l’utilisateur\\
**Attention :**\\ – Pas d’espace entre **-p** et le **mot de passe**\\ – Remplacer **VotreMotDePasse** par le mot de passe de l’utilisateur. == Désactivation du mode Maintenance : == # Désactivation\\ sudo -u www-data php /var/www/nextcloud:occ maintenance:mode –off == Exemple de script de sauvegarde : == #!/bin/bash # Path nextcloudPath=/var/www/nextcloud/ occPath=$nextcloudPath\occ sourcePath=/var/www/nextcloud/ mainDestinationPath=/backups/nextcloud/`date +"%Y/%m"`/ filesDestinationPath=$mainDestinationPath\files/ databaseDestinationPath=$mainDestinationPath\database/ # Database dbhost=$(cat $nextcloudPath\config/config.php | egrep "dbhost" | sed 's/^.*\=> *'\''//' | sed 's/'\'',.*$//') dbname=$(cat $nextcloudPath\config/config.php | egrep "dbname" | sed 's/^.*\=> *'\''//' | sed 's/'\'',.*$//') dbuser=$(cat $nextcloudPath\config/config.php | egrep "dbuser" | sed 's/^.*\=> *'\''//' | sed 's/'\'',.*$//') dbpassword=$(cat $nextcloudPath\config/config.php | egrep "dbpassword" | sed 's/^.*\=> *'\''//' | sed 's/'\'',.*$//') # Verbose cyan='\e[1;36m' white='\e[1;37m' neutral='\e[0;m' echo -e "${cyan}dbhost : ${white}$dbhost${neutral}" echo -e "${cyan}dbname : ${white}$dbname${neutral}" echo -e "${cyan}dbuser : ${white}$dbuser${neutral}" #echo -e "${cyan}dbpassword : ${white}$dbpassword${neutral}" read -t 10 -p "The backup will start after 10 seconds" || true # Destinations creation mkdir -p $filesDestinationPath mkdir -p $databaseDestinationPath chmod -R o-rwx /backups/ # Maintenance mode activation sudo -u www-data php $occPath maintenance:mode --on # Database backup mysqldump --single-transaction -h $dbhost -u $dbuser -p$dbpassword $dbname > $databaseDestinationPath\nextcloud-sqlbkp_`date +"%Y%m%d_%H%M%S"`.bak # Files backup rsync -Aavx $sourcePath $filesDestinationPath\nextcloud-backup_`date +"%Y%m%d_%H%M%S"`/ --exclude={'data/*','*/files_trashbin/files/*'} #rsync -Aavx $sourcePath $filesDestinationPath\nextcloud-backup_`date +"%Y%m%d_%H%M%S"`/ # Maintenance mode deactivation sudo -u www-data php $occPath maintenance:mode --off exit 0 Sauvegarde de base de données **MySql/MariaDB**. Exemple de restauration : [[https://docs.nextcloud.com/server/latest/admin_manual/maintenance/restore.html?highlight=restore|Nextcloud – Restoring backup]] ===== Mise à jour de Nextcloud ===== **Source** : [[https://docs.nextcloud.com/server/latest/admin_manual/maintenance/upgrade.html|Nextcloud Upgrade]] == Lancement du programme de mise à jour : == sudo -u www-data php /var/www/nextcloud:updater/updater.phar Pour un lancement **sans interaction utilisateur**, il faudra le lancer en mode Batch en rajoutant l’argument **''%%--no-interaction%%''** {{nextcloud:Upgrade-Nextcloud_9f2fa73b7b4d4e5f90ce4c038df25445.png|Update}} Faire le choix **y** {{nextcloud:Upgrade-Nextcloud-2_742066967e444a888d5b85b6119c57.png|Update}} Appuyer sur la touche **Entrée** La ligne **''%%Update of code successful%%''** confirme que la mise à jour des fichiers est terminée. {{nextcloud:Upgrade-Nextcloud-3_fbce7574f07b4d4a973f11f09b5837.png|Update}} Appuyer sur **Entrée** pour désactiver le mode maintenance. La ligne **''%%Update successful%%''** confirme que la mise à jour est terminée. ---- **Voilà ! C’est terminé !** Vous avez enfin créé **votre Cloud personnel** grâce à [[http://www.freenas.org/|]][[https://nextcloud.com/|Nextcloud]].\\ **Il ne reste plus qu’à :** * Créer vos propres utilisateurs * Configurer votre routeur pour que nextcloud soit accessible depuis l’extérieur