Outils pour utilisateurs

Outils du site


services:valise.chapril.org

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
services:valise.chapril.org [2026/04/11 17:40] – supprimée - modification externe (Date inconnue) 127.0.0.1services:valise.chapril.org [2026/04/11 17:40] (Version actuelle) – ↷ Page déplacée de admin:services:valise.chapril.org à services:valise.chapril.org pitchum
Ligne 1: Ligne 1:
 +====== Service valise.chapril.org ======
 +
 +Valise est un service de synchronisation d'informations personnelles et de partage de fichiers sur la base de [[https://nextcloud.com/|NextCloud]].
 +
 +===== Routage =====
 +
 +<del>Uniquement le port HTTPS (TCP/443)</del> 
 +
 +Uniquement le port HTTPS (TCP/443) vers le port HTTP (TCP/80).
 +
 +===== Installation =====
 +
 +==== Installation du système de la VM ====
 +
 +La machine a été installée en respectant les [[admin:procedures:creation_machine_virtuelle|procédures d'installation de VM]].
 +
 +==== Installation des services ====
 +
 +L'installation et la configuration sont basées sur les instructions originales données par le [[https://docs.nextcloud.com/server/16/admin_manual/installation/index.html|guide d’administration de NextCloud]].
 +
 +=== Installation d'Apache et de la base de PHP ===
 +
 +Installer les paquets :
 +<code bash>
 +apt install apache2 libapache2-mod-php php-cli
 +a2enmod rewrite
 +a2enmod headers
 +</code>
 +
 +Modifier le fichier de configuration des ports d'Apache pour forcer l'écoute sur le port 80 de l’adresse IPv4.
 +Pour cela, dans le fichier ''/etc/apache2/ports.conf'', remplacez la ligne ''Listen 80'' par ''Listen 0.0.0.0:80''.
 +
 +=== Installation de PostgreSQL ===
 +
 +Installer le paquet serveur de la base de données :
 +<code bash>
 +apt install postgresql pwgen
 +</code>
 +
 +Générer un mot de passe fort pour le futur utilisateur de la base de données :
 +<code bash>
 +pwgen -syr "'" 15 1
 +</code>
 +
 +Passer en ligne de commande SQL superviseur de ''postgres'' :
 +<code bash>
 +su postgres -c psql
 +</code>
 +
 +Créer l'utilisateur de la base ''nextcloud'' en utilisant le mot de passe précédent :
 +<code bash>
 +create role nextcloud with login password '<pwd>';
 +</code>
 +
 +Créer la base de données pour ''nextcloud'' :
 +<code bash>
 +create database nextcloud owner nextcloud;
 +</code>
 +
 +Sortir de ''psql'' avec ''Ctrl+D''.
 +
 +=== Installation des modules PHP pré-requis ===
 +
 +<code bash>
 +apt install php-curl php-gd php-mbstring php-xml php-zip php-pgsql php-bz2 php-intl php-imagick
 +</code>
 +
 +=== Préparation du volume de stockage ===
 +
 +En raison de la grande quantité de données stockées, l'application Nextcloud et ses fichiers de donnée sont stockées dans leur propre volume.
 +Il est donc nécessaire de préparer et configurer ce volume :
 +<code bash>
 +mke2fs -L nextcloud  remount-ro -m 0 /dev/mapper/valise--vg--data-nextcloud
 +mkdir /var/www/nextcloud
 +</code>
 +
 +Ajouter le volume à la table système en éditant ''/etc/fstab'' et en y ajoutant cette ligne :
 +<file /etc/fstab>
 +/dev/mapper/valise--vg--data-nextcloud /var/www/nextcloud ext4 noexec,nosuid,nodev,errors=remount-ro 0 0
 +</file>
 +
 +Monter le volume et attribuer les droits sur sa racine à l’utilisateur ''www-data'' :
 +<code bash>
 +mount /var/www/nextcloud
 +chown www-data:www-data /var/www/nextcloud
 +</code>
 +
 +=== Installation de Nextcloud ===
 +
 +Récupérer les fichiers de Nextcloud et les déployer :
 +<code bash>
 +cd /var/www/
 +wget https://download.nextcloud.com/server/releases/nextcloud-16.0.4.tar.bz2
 +tar xvf nextcloud-16.0.4.tar.bz2
 +chown -R www-data:www-data nextcloud
 +rm nextcloud-16.0.4.tar.bz2
 +</code>
 +
 +Lancer l'installation (création du contenu de la base et du fichier de configuration) :
 +<code bash>
 +cd /var/www/nextcloud/
 +occ maintenance:install --database "pgsql" --database-name "nextcloud" --database-host "localhost" --database-user "nextcloud" --database-pass '<DB_PASS>' --admin-user "chapril" --admin-pass "<ADM_PASS>"
 +</code>
 +
 +Remplacez ''<DB_PASS>'' par le mot de passe de l'utilisateur de PostgreSQL généré auparavant en mettant bien deux //single quotes// autours.
 +
 +Remplacez ''<ADM_PASS>'' par le mot de passe de votre choix.
 +Le mot de passe doit être long (au moins 14 caractères) tout en restant utilisable sur une interface Web.
 +
 +<note important>
 +La commande d'installation est longue (1 à 2 min).
 +Soyez patient.
 +</note>
 +
 +A l'issue de la commande, le contenu de la base est créée (tables commençant par ''oc_'' et le fichier de configuration ''/var/www/nextcloud/config/config.php'' est généré.
 +
 +
 +Éditer le fichier ''/var/www/nextcloud/config/config.php'' pour ajouter à ''trusted_domains'' :
 +<code php>
 +1 = > 'valise.chapril.org'
 +</code>
 +
 +
 +===== Mise à jour =====
 +
 +==== Préparation ====
 +
 +La mise à jour de Nextcloud prend en général de 5 minutes pour une mise à jour mineures, et jusqu'à 30 minutes pour une mise à jour majeure.
 +
 +<note important>
 +La mise à jour interrompt le service, il faut donc la planifier et prévenir les utilisateurs quelques jours à l'avance en :
 +  * Envoyant un message à tous les comptes avec l'application Annonces de Nextcloud (depuis l'interface Web et un compte //admin//) ;
 +  * Signalant la maintenance sur [[https://status.chapril.org/|status.chapril.org]].
 +</note>
 +
 +==== Exécution ====
 +
 +Se connecter en ''root'' sur ''valise.cluster.chapril.org'' et se positionner dans le répertoire de Nextcloud :
 +
 +<code bash>
 +cd /var/www/valise.chapril.org/public_html/
 +</code>
 +
 +Lancer la procédure de mise à jour :
 +<code bash>
 +sudo -u www-data php updater/updater.phar
 +</code>
 +
 +Répondez positivement à toutes les questions posées par le script et acceptez de quitter le mode maintenance si tout s'est bien passé.
 +
 +<note important>
 +Il arrive que la procédure ne puisse par lancer la mise à niveau des applications.
 +Dans ce cas répondez //oui// à la question //Rester en mode maintenance//, et lancer la procédure séparément :
 +<code bash>
 +occ upgrade
 +occ maintenance:mode --off
 +</code>
 +</note>
 +
 +Pour éviter des problèmes de //favicon//, réparez le thème et redémarrez les services Web :
 +<code bash>
 +occ maintenance:theme:update
 +sudo systemctl restart php8.2-fpm apache2
 +</code>
 +
 +==== Finalisation ====
 +
 +===== Contrôle de sécurité =====
 +
 +Se connecter par l'interface Web sur un compte admin et aller sur la page //Paramètres/Vue d'ensemble//.
 +Si tout va bien, une coche verte est affichée avec le texte //Tous les test ont réussis//.
 +Sinon, suivez les instructions données par Nextcloud pour résoudre le(s) problème(s).
 +
 +<note important>
 +En cas de mise à jour majeure, lancez également le scan de sécurité externe (au même endroit de l'interface).
 +</note>
 +
 +===== Mise à jour du numéro de version =====
 +
 +<del>
 +Pour finir, dans //Paramètres/Personnaliser l'apparence//, modifier le numéro de version affiché qui est au début de la phrase de slogan.
 +</del>
 +
 +<note important>
 +N'oubliez pas de clore l'incident sur [[https://status.chapril.org/|status.chapril.org]].
 +</note>
 +
 +===== Notes =====
 +
 +==== L'outil en ligne de commande pour administrer de NextCloud ====
 +
 +<code bash>
 +occ list
 +occ log manage
 +occ user:add cmann@april.org -group admin
 +</code>
 +
 +==== Cron ====
 +
 +Chemin du fichier contenant les tâches Cron spécifique au service NextCloud : ''/etc/cron.d/valisechaprilorg''.
 +
 +==== PostgreSQL ====
 +
 +Se connecter à la base de données :
 +<code bash>
 +sudo -Hiu postgres psql nextcloud
 +</code>
 +
 +=== Requête SQL pour voir les requêtes en cours ===
 +
 +<code sql>
 +SELECT * FROM pg_stat_activity;
 +</code>
 +
 +=== Script d'aide à la configuration de PostgreSQL ===
 +
 +Consulter le fichier [[https://github.com/jfcoz/postgresqltuner|''postregsqltuning.pl'']].
 +
 +=== Chemin du fichier de configuration ===
 +
 +Le fichier est ''/etc/postgresql/13/main/conf.d/custom-chapril.conf''.
 +
 +==== Regarder les applications et leurs consommations ====
 +
 +<code bash>
 +lscpu | grep -i ^proc
 +tail -f /srv/valise.chapril.org/www/data/nextcloud.log | jq .
 +tail -n 200 -f /srv/valise.chapril.org/www/data/nextcloud.log | jq .
 +pgrep -af cron
 +iotop -o -d3 -a
 +</code>
 +
 +==== À éviter ====
 +
 +Ne pas exécuter ceci :
 +
 +<code bash>
 +ncdu -x /var/www/valise.chapril.org/data/
 +</code>
 +
 +==== Table OC_JOBS ====
 +
 +<code>
 +id                           class                                                                               argument                                                        |  last_run  | last_checked | dur
 +16758 | OC\Settings\BackgroundJobs\VerifyUserData             | {"verificationCode":"","data":"","type":"email","uid":"","try":6,"lastRun":1586671205} |          0 |   1652827018 |    0
 +11912 | OCA\Talk\BackgroundJob\ExpireSignalingMessage         | null                                                                                                                  | 1593606009 |   1652827017 |    0
 +11913 | OCA\Talk\BackgroundJob\RemoveEmptyRooms               | null                                                                                                                  | 1593606008 |   1652826959 |    0
 +209234 | OCA\DAV\BackgroundJob\RefreshWebcalJob                | {"principaluri":"principals\/users\/","uri":"icsteamupcom-3"                                                    | 1652821869 |   1652821869 |  120
 +21 | OC\Preview\BackgroundCleanupJob                       | null                                                                                                                  | 1652820489 |   1652821869 |    0
 +14 | OCA\UpdateNotification\Notification\BackgroundJob     | null                                                                                                                  | 1652736091 |   1652821869 |    2
 +110482 | OCA\Activity\BackgroundJob\DigestMail                 | null                                                                                                                  | 1652821869 |   1652821869 |    0
 +16774 | OCA\WorkflowEngine\BackgroundJobs\Rotate              | null                                                                                                                  | 1652820489 |   1652821869 |    0
 +251542 | OCA\DAV\BackgroundJob\RefreshWebcalJob                | {"principaluri":"principals\/users\/","uri":"0110007yindex-educationnet"                                     | 1652560537 |   1652821868 | 1471
 +286844 | OCA\DAV\BackgroundJob\RefreshWebcalJob                | {"principaluri":"principals\/users\/","uri":"valisechaprilorg-2"                                         | 1652219711 |   1652821868 |    0
 +5 | OCA\Files_Versions\BackgroundJob\ExpireVersions       | null                                                                                                                  | 1652821456 |   1652821456 |    0
 +326894 | OCA\DAV\BackgroundJob\RefreshWebcalJob                | {"principaluri":"principals\/users\/","uri":"calendargooglecom"                                        | 1652219810 |   1652821456 | 1592
 +157918 | OCA\DAV\BackgroundJob\RefreshWebcalJob                | {"principaluri":"principals\/users\/","uri":"icsteamupcom"                                                      | 1652821456 |   1652821456 |  410
 +</code>
 +
 +==== Exécuter le script postgresqltuner.pl ====
 +
 +<code bash>
 +sudo -Hiu postgres postgresqltuner.pl
 +</code>