Outils pour utilisateurs

Outils du site


serveur_maison:installer_nextcloud

Ceci est une ancienne révision du document !


Nextcloud 28 – Installation sur Ubuntu et Debian

Présentation

Nextcloud 28 (Nextcloud Hub 7) – Interface de connexion

Nous allons, dans ce tutoriel, créer un Cloud personnel en installant Nextcloud.
Nous verrons par la suite comment connecter Nextcloud à un annuaire LDAP ou Active Directory.
Pour finir, nous optimiserons notre installation afin d’améliorer les performances de notre Cloud Personnel.
<html><br/></html>Ce tutoriel est prévu pour Debian 12 et Ubuntu Server 22.04.
Dans ce tutoriel, Nextcloud est installé sur un serveur virtuel Proxmox VE (PVE).


==1) 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

==2) 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

Contenu :

Alias / “/var/www/nextcloud:”
<Directory /var/www/nextcloud:>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
<IfModule mod_headers.c>
Header always set Strict-Transport-Security “max-age=15552000; includeSubDomains”
</IfModule>
</Directory>

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
<html><br/></html># Activation des modules
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime
<html><br/></html># SSL
a2enmod ssl
a2ensite default-ssl
<html><br/></html># 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

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 ».


==3) 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 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 <IfModule mod_env.c> et avant l’instruction RewriteBase / :

RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

<html><img width=“512” height=“80” src=“nextcloud:Nextcloud-htaccess-forcer-https_8e3f02b24efd4bb2a0.png” class=“jop-noMdConv”></html>

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.

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 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 Background jobs de la documentation officielle.

3.6) Configuration de la langue du profil

Rentrer dans le menu « Paramètres » :

<html><img width=“389” height=“266” src=“nextcloud:ParametresPersonel_31eb1fa7592b4cc79705530e81d22bd.png” class=“jop-noMdConv”></html>

Dans le panneau de gauche, sélectionner « Informations personnelles ».

Régler la Langue et les Paramètres régionaux :

<html><img width=“417” height=“201” src=“nextcloud:Parametres-Regionaux_1292ffe779c647c09e8f1696cdef8.png” class=“jop-noMdConv”></html>

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 ».

<html><img width=“589” height=“246” src=“nextcloud:Nextcloud-V_C3_A9rification-MAJ_a2573419bbb94c05a1.png” class=“jop-noMdConv”></html>


==4) Connexion à LDAP ou Active Directory==

//Cette étape et facultative, si vous n’avez pas d’annuaire LDAP, passez à l’étape suivante.//

Grâce à l’application LDAP user and group backend, il est possible de connecter Nextcloud à un Annuaire LDAP (Exemple : **Active Directory** avec Samba 4).

4.1) Configuration LDAP

Se rendre dans le menu Paramètres puis Intégration LDAP/AD et renseigner les informations de connexion au serveur LDAP ou Active Directory.

Serveur

<html><img width=“710” height=“412” src=“nextcloud:Nextcloud-Configuration-Serveur-_ceaa8589c6214637a.png” class=“jop-noMdConv”></html>

==Petite parenthèse :==
Si votre annuaire LDAP est sur un Serveur AD Samba 4.
Il faudra rajouter la ligne ldap server require strong auth = no dans la section [global] du fichier de configuration de samba 4 (Généralement /etc/samba/smb.conf).
Un redémarrage du service Samba sera nécessaire : systemctl restart samba.service

Utilisateurs

<html><img width=“483” height=“536” src=“nextcloud:Nextcloud-Configuration-LDAP-AD-_68056ab3b607407fa.png” class=“jop-noMdConv”></html>

Il s’agit d’un exemple.
Pour des raisons d’organisation, un groupe « Nextcloud Users » a été créé sur le Contrôleur de Domaine.

Attributs de login

<html><img width=“524” height=“483” src=“nextcloud:Nextcloud-Configuration-LDAP-AD-_9030e48ab3f44b8fb.png” class=“jop-noMdConv”></html>

Groupes

<html><img width=“496” height=“417” src=“nextcloud:Nextcloud-Configuration-LDAP-AD-_298962a406d54cfbb.png” class=“jop-noMdConv”></html>

Les utilisateurs et les groupes de l’AD sont maintenant disponibles dans Nextcloud.


==5) Utilisateurs et Groupes==

5.1) Création Utilisateurs et Groupes

Se rendre dans le menu Utilisateurs.

<html><img width=“625” height=“182” src=“nextcloud:Nextcloud-Utilisateurs_0bdfb8fdf7c042ffa42b05fc2c2.png” class=“jop-noMdConv”></html>

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 ».

<html><img width=“638” height=“125” src=“nextcloud:Nextcloud-Utilisateurs-Ajout-Gro_cc1fde50a2684b21a.png” class=“jop-noMdConv”></html>


==6) Stockages Externes==

6.1) Configuration générale

Grâce à l’application ****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 Tutoriel TrueNAS).

Se rendre dans Paramètres, Stockages externes :

<html><img width=“768” height=“411” src=“nextcloud:Nextcloud-Stockages-Externes-102_3ba6d7ed800149d08.png” class=“jop-noMdConv”></html>

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 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 ».

<html><img width=“549” height=“164” src=“nextcloud:2021-01-24-12_08_14-Parametres-N_c72a0a0824c54d5cb.png” class=“jop-noMdConv”></html>


==7) 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

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 mysqld.

Exemple :

<html><img width=“347” height=“138” src=“nextcloud:Nextcloud-mysql-cfg_dcf34eef661644d98f14c9178a4e95.png” class=“jop-noMdConv”></html>

Il est possible d’aller plus loin dans l’optimisation en utilisant cette documentation : 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 :

<html><img width=“520” height=“222” src=“nextcloud:Nextcloud-my-cfg_323f0977c8874946a9793508c6d232f0.png” class=“jop-noMdConv”></html>

Redémarrage MariaDB :

systemctl restart mariadb.service

1systemctl 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 \\+= \\+.\*$

KaTeX parse error: Undefined control sequence: \* at position 96: …ering \\+= \\+.\̲*̲

/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

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 +\*.\*$

KaTeX parse error: Expected group after ‘^’ at position 49: … sed -i -e “s/^̲#\* \*unixsocke…

/unixsocket \/var\/run\/redis\/redis-server.sock/g” /etc/redis/redis.conf
sed -i -e “s/^#* *unixsocketperm+*.*$/unixsocketperm 770/g” /etc/redis/redis.conf

Merci à Modoki pour sa remarque dans la section commentaire.

Vérification :

cat /etc/redis/redis.conf | egrep “^#* *port +|^#* *unixsocket +|^#* *unixsocketperm +”

<html><img width=“376” height=“53” src=“nextcloud:Nextcloud-redis-conf_44f3054d4fea42a3a3467bc099838.png” class=“jop-noMdConv”></html>

Redémarrage de Redis :

systemctl restart redis-server.service

1systemctl restart redis-server.service

7.4) File Locking et Memory Cache

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”
<html><br/></html># 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”
<html><br/></html># 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”

<html><img width=“451” height=“115” src=“nextcloud:Nextcloud-cache-config_9d02579969034e2898d3e1f0fa9.png” class=“jop-noMdConv”></html>

Redémarrage d’Apache :

systemctl restart apache2.service

1systemctl restart apache2.service

7.5) Activation de 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 \*= \*.\*$

KaTeX parse error: Undefined control sequence: \* at position 68: …sed -i -e “s/^;\̲*̲ \*opcache\\.me…

/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 \*= \*.\*$

KaTeX parse error: Undefined control sequence: \* at position 85: …sed -i -e “s/^;\̲*̲ \*opcache\\.ma…

/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 \*= \*.\*$

KaTeX parse error: Undefined control sequence: \* at position 78: …sed -i -e “s/^;\̲*̲ \*opcache\\.sa…

/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\.save_comments *=

<html><img width=“309” height=“98” src=“nextcloud:Nextcloud-php-OPCache-config_2b95b0323c974a9c8f5a7.png” class=“jop-noMdConv”></html>

Redémarrage d’Apache :

systemctl restart apache2.service

1systemctl restart apache2.service

7.6) Taille limite de téléchargement

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 \*= \*.\*$

KaTeX parse error: Undefined control sequence: \* at position 75: …sed -i -e “s/^;\̲*̲ \*post_max_siz…

/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 *=”

<html><img width=“211” height=“36” src=“nextcloud:Nextcloud-upload-big-file-php-co_3c40c8edf04144f3a.png” class=“jop-noMdConv”></html>

Redémarrage d’Apache :

systemctl restart apache2.service

1systemctl restart apache2.service

==8) Certificat SSL avec Let’s Encrypt==

8.1) Explications

Pour accéder au serveur Nextcloud depuis l’extérieur, il est fortement recommandé de le faire au travers du protocole HTTPS.
Grâce aux étapes précédentes, le serveur Nextcloud force l’utilisation du protocole HTTPS.
Cependant, le certificat SSL utilisé est un certificat auto-signé et n’est pas considéré comme fiable par les navigateurs. Ces derniers afficheront donc un avertissement.

Exemple d’avertissement :

<html><img width=“487” height=“235” src=“nextcloud:Nextcloud-certificat-non-fiable-_21f16f38e2104ef29.png” class=“jop-noMdConv”></html>

Avertissement en cas d’utilisation d’un certificat non-fiable

Afin de ne pas faire fuir les futurs visiteurs, nous utiliserons Let’s Encrypt pour générer et mettre en place gratuitement un certificat reconnu.

8.2) Génération d’un certificat SSL avec Let’s Encrypt

==Le procédure d’obtention de certificat que nous utiliserons nécessite que le serveur soit joignable <html><ins></html>depuis l’extérieur via le port 80<html></ins></html>.==

//Généralement, cela est possible en effectuant une <html><ins></html>**redirection de port**<html></ins></html> depuis votre Routeur ou Box Internet.//

Source : https://certbot.eff.org/lets-encrypt/ubuntubionic-apache.html

Activation du dépôt universe :

apt update -y
apt install -y software-properties-common
add-apt-repository universe
apt update -y

Installation de Certbot et du plugin pour Apache :

apt install -y certbot python3-certbot-apache

1apt install <html><br></html><html><br/></html>-y <html><br></html><html><br/></html>certbot python3-certbot-apache
Génération et installation du Certificat :

certbot –apache -d nextcloud.domaine.fr -m monadresse@mail.fr –no-redirect

Remplacer nextcloud.mondomaine.dom par le nom de votre domaine.
Remplacer monadresse@mail.fr par votre adresse mail.
no-redirect car plus haut dans le tutoriel, nous avons déjà forcé la redirection vers HTTPS.
Si vous n’avez pas suivi la méthode de redirection du tuto ou si vous souhaitez quand même que Certbot se charge de la redirection il faudra utiliser le paramètre --redirect.

Test renouvellement automatique :

certbot renew –dry-run

1certbot renew <html><br></html><html><br/></html>–dry-run
Visualisation de la tâche de renouvellement :

systemctl list-timers certbot

1systemctl list-timers certbot
Visualisation des noms de domaine autorisés dans Nextcloud :

sudo -u www-data php /var/www/nextcloud:occ config:system:get trusted_domains

Ajout d’un nom de domaine dans Nextcloud :

sudo -u www-data php /var/www/nextcloud:occ config:system:set trusted_domains 1 \
–value=nextcloud.domaine.dom

Le 1 est l’index dans la liste des domaines autorisés (0 étant le 1er)
–value= est suivi du nom de domaine à autoriser.


==9) Sauvegarde de Nextcloud==

<html><ins></html>Source<html></ins></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
<html><br/></html>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/'\\,.\*$ KaTeX parse error: Undefined control sequence: \* at position 62: …st” | sed ‘s/^.\̲*̲\\⇒ \*’\\’‘//’… //’)
dbname=$(cat $nextcloudPath\\config/config.php | egrep “dbname” | sed 's/^.\*\\⇒ \*'\\
' | sed 's/'\\
,.\*$

KaTeX parse error: Undefined control sequence: \* at position 62: …me” | sed ‘s/^.\̲*̲\\⇒ \*’\\’‘//’…

//’)
dbuser=$(cat $nextcloudPath\\config/config.php | egrep “dbuser” | sed 's/^.\*\\⇒ \*'\\' | sed 's/'\\,.\*$ KaTeX parse error: Undefined control sequence: \* at position 62: …er” | sed ‘s/^.\̲*̲\\⇒ \*’\\’‘//’… //’)
dbpassword=$(cat $nextcloudPath\\config/config.php | egrep “dbpassword” | sed 's/^.\*\\⇒ \*'\\
' | sed 's/'\\
,.\*$

KaTeX parse error: Undefined control sequence: \* at position 66: …rd” | 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 “$

KaTeX parse error: Expected ‘EOF’, got ‘#’ at position 14: {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 : Nextcloud – Restoring backup

==10) Mise à jour de Nextcloud==

<html><ins></html>Source<html></ins></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

<html><img width=“710” height=“291” src=“nextcloud:Upgrade-Nextcloud_9f2fa73b7b4d4e5f90ce4c038df25445.png” class=“jop-noMdConv”></html>

Faire le choix y

<html><img width=“747” height=“284” src=“nextcloud:Upgrade-Nextcloud-2_742066967e444a888d5b85b6119c57.png” class=“jop-noMdConv”></html>

Appuyer sur la touche Entrée

La ligne Update of code successful confirme que la mise à jour des fichiers est terminée.

<html><img width=“669” height=“280” src=“nextcloud:Upgrade-Nextcloud-3_fbce7574f07b4d4a973f11f09b5837.png” class=“jop-noMdConv”></html>

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/Nextcloud.
Il ne reste plus qu’à :

Partager :

serveur_maison/installer_nextcloud.1720457645.txt.gz · Dernière modification : 2024/07/08 16:54 de admin