189 lines
5.2 KiB
Markdown
189 lines
5.2 KiB
Markdown
# 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
|
||
```
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|