nuage/README.md

189 lines
5.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Service NUAGE
Service Nextcloud du candidat chaton de Libre en communs.
Responsable: Laurent Poujoulat (@lpoujoulat)
CPU: 2
RAM: 1Go
# Installation
## Généralités
Sauf mention contraire, toutes les commandes indiquées ci-après sont exécutées avec les permissions root
## Création de l'espace de stockage
Créer les chemins nécessaires:
# mkdir -p /var/www/nuage.chalec.org/data
Préparer le volume de données utilisateurs dans la partition /dev/vdb1 (500Go):
# mkfs.ext4 -m 0 -L DataNuage -e remount-ro /dev/vdb1
Ajouter le volume à la table de montage /etc/fstab:
# Users data storage for the Nextcloud instance nuage.chalec.org
UUID=[UUID-/dev/vdb1] /var/www/nuage.chalec.org/data ext4 errors=remount-ro,nosuid,nodev,noexec,noatime 0 2
Monter le volume et attribuer les droits à l'utilisateur serveur web
# mount /var/www/nuage.chalec.org/data
# chown -R www-data.www-data /var/www/nuage.chalec.org
## Installation des services
L'installation et la configuration sont basées sur les instructions originales données par:
https://docs.nextcloud.com/server/latest/admin_manual/installation/index.html
### Installation d'Apache
Avec les droits d'installation :
```bash
apt install apache2
a2enmod rewrite
a2enmod headers
```
### Installation de php et des modules pré-requis
Avec les droits d'installation :
```bash
apt install php-fpm php-cli
a2enmod proxy_fcgi setenvif
a2enconf php7.4-fpm
apt install \
php-ctype php-dom \
php-gd php-iconv \
php-json php-xml php-mbstring \
php-posix php-mbstring \
php-posix php-xmlwriter \
php-xmlreader php-zip \
php-pdo-pgsql php-curl \
php-fileinfo php-bz2 \
php-intl \
php-exif php-redis \
php-imagick php-bcmath \
libmagickcore-6.q16-6-extra
```
Certains paquets sont requis pour avoir une prise en charge complète des fichiers notament des images.
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
Redémarrez le serveur Apache:
# systemctl restart apache2
### Installation de la base de données
Installer le serveur PostgreSQL et l'outil de génération de mots de passe:
# 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 postgreSQL:
# 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 de nextcloud
```bash
# Déplacement dans le dossier
cd /var/www/nuage.chalec.org
# Téléchargement de l'archive compressée de la dernière version
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
# Téléchargement du fichier de somme de controle hashé en sha256 de la dernière version
wget https://download.nextcloud.com/server/releases/latest.tar.bz2.sha256
# Vérification de la somme de controle
sha256sum -c latest.tar.bz2.sha256
# Extraction du contenu de l'archive
tar -xvf latest.tar.bz2
# Suppression de l'archive
rm latest.tar.bz2
# Suppression du fichier de somme de controle
rm latest.tar.bz2.sha256
# Changement de l'utilisateur et du groupe propriaitaire du contenu extrait
# dans le dossier nextcloud
chown -R www-data.www-data nextcloud
# Déplacement dans le dossier des sources de nextcloud
cd nextcloud
# Lancement de l'installation en mode terminal non interactif
# 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.
sudo -u www-data \
php occ maintenance:install \
--database "pgsql" \
--database-name "nextcloud" \
--database-host "localhost" \
--database-user "nextcloud" \
--database-pass '<DB_PASS>' \
--admin-user "chalec" \
--admin-pass "<ADM_PASS>"
```
| :memo: | La commande d'installation est longue (1 à 2 min). Soyez patient. |
|---------------|:------------------------------------------------------------------------|
### Configuration de nextcloud
La configuration se fait à travers le fichier de configuration /var/www/nuage.chalec.org/nextcloud/config/config.php généré.
Un certain nombre de choses sont à configurer (voir la doc officielle pour plus de détails ou le fichiers /var/www/nuage.chalec.org/nextcloud/config/config.sample.php ).
```php
//[...]
'trusted_domains' =>
array (
0 => '127.0.0.1',
1 => '80.67.179.96',
2 => '192.168.2.193',
3 => 'nuage.chalec.org',
4 => '192.169.1.1',
),
'default_phone_region' => 'FR',
```
### Mise à jour
Un script existe :
```bash
cd /var/www/nuage.chalec.org/script`
bash nextcloud.sh
```