====== 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 [[admin:procedures:creation_machine_virtuelle|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 ''; 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 '' --admin-user "chapril" --admin-pass "" Remplacez par le mot de passe de l'utilisateur de PostgreSQL généré auparavant en mettant bien deux SIMPLES quotes autours. Remplacez 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. La commande d'installation est longue (1 à 2 min). Soyez patient. 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. 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]]. ===== 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é. Il arrive que la procédure ne puisse par lancer l'upgrade des applications. Dans ce cas répondez oui à la question "Rester en mode maintenance", et lancer la procédure séparément: 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.1-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). En cas de mise à jour majeure, lancez également le scan de sécurité externe (au même endroit de l'interface). ====== 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. N'oubliez pas de clore l'incident sur status.chapril.org ====== 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 === [[https://github.com/jfcoz/postgresqltuner|postregsqltuning.pl]] === 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''