Table des matières
Présentation
Valise est un service de synchronisation d'informations personnelles et partage de fichiers sur la base de NextCloud.
Routage
Uniquement le port HTTPS (TCP/443)
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 procédures d'installations de VM.
Installation des services
L'installation et la configuration sont basées sur les instructions originales données par:
https://docs.nextcloud.com/server/16/admin_manual/installation/index.html
Installation d'Apache et de la base de php
Installer les paquets:
apt install apache2 libapache2-mod-php php-cli a2enmod rewrite a2enmod headers
Modifier le fichier de configuration des ports d'apache pour forcer l'écoute sur le port 80 de 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:
apt install postgresql pwgen
Générer un mot de passe fort pour le futur utilisateur de la base de données:
pwgen -syr "'" 15 1
Passer en ligne de commande SQL superviseur de postgres:
su postgres -c psql
Créer l'utilisateur de la base nextcloud en utilisant le mot de passe précédent:
create role nextcloud with login password '<pwd>';
Créer la base de données pour nextcloud:
create database nextcloud owner nextcloud;
Sortir de psql avec Ctrl+D.
Installation des modules PHP pré-requis
apt install php-curl php-gd php-mbstring php-xml php-zip php-pgsql php-bz2 php-intl php-imagick
Préparation du volume de stockage
En raison de la grande quantité de données stockées, l'application Nextcloud et ses données fichiers sont stockées sur leur propre volume. Il est donc nécessaire de préparer et configurer ce volume:
mke2fs -L nextcloud remount-ro -m 0 /dev/mapper/valise--vg--data-nextcloud mkdir /var/www/nextcloud
Ajouter le volume à la table système en éditant /etc/fstab et en y ajoutant la ligne:
/dev/mapper/valise--vg--data-nextcloud /var/www/nextcloud ext4 noexec,nosuid,nodev,errors=remount-ro 0 0
Monter le volume et attribuer les droits sur sa racine à www-data:
mount /var/www/nextcloud chown www-data.www-data /var/www/nextcloud
Installation de Nextcloud
Récupérer les fichiers de Nextcloud et les déployer:
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
Lancer l'installation (création du contenu de la base et du fichier de configuration):
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>"
Remplacez <DB_PASS> par le mot de passe de l'utilisateur de PostgreSQL généré auparavant en mettant bien deux SIMPLES 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.
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é.
Editer le fichier /var/www/nextcloud/config/config.php pour ajouter à 'trusted_domains':
1 = > 'valise.chapril.org'
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.
- Envoyant un message à tous les comptes avec l'application “Annonces” de Nextcloud (depuis l'interface Web et un compte admin),
- Signalant la maintenance sur status.chapril.org.
Exécution
Se connecter en root sur valise.cluster.chapril.org et se positionner dans le répertoire de Nextcloud:
cd /var/www/valise.chapril.org/public_html
Lancer la procédure de mise à jour:
sudo -u www-data php updater/updater.phar
Répondez positivement à toutes les questions posées par le script et acceptez de quitter le mode maintenance si tout s'est bien passé.
occ upgrade
occ maintenance:mode --off
Pour éviter des problèmes de favicon, réparez le thème et redémarrez les services web:
occ maintenance:theme:update
sudo systemctl restart php8.2-fpm apache2
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).
Mise à jour du numéro de version
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.
NOTES
L'outil en ligne de commande pour administrer de NextCloud
$ occ list $ occ log manage $ occ user:add cmann@april.org -group admin
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
sudo -Hiu postgres psql nextcloud
requête SQL pour voir les requêtes en cours
SELECT * FROM pg_stat_activity
Script d'aide à la configuration de PostgreSQL
Chemin du fichier de configuration
/etc/postgresql/13/main/conf.d/custom-chapril.conf
Regarder les applications et leurs consommations
# 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
À éviter
Ne pas exécuter ceci:
# ncdu -x /var/www/valise.chapril.org/data/
table OC_JOBS
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
Exécuter le script postgresqltuner.pl
sudo -Hiu postgres postgresqltuner.pl