2021-12-04 22:10:55 +01:00
# Service NUAGE
2021-12-05 13:09:17 +01:00
Service Nextcloud du candidat chaton de Libre en communs.
Responsable: Laurent Poujoulat (@lpoujoulat)
2022-01-02 22:01:09 +01:00
2022-01-04 21:41:32 +01:00
CPU: 2
2022-01-02 22:01:09 +01:00
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
2022-01-04 21:41:32 +01:00
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
2022-01-03 21:22:10 +01:00
## Installation des services
2022-01-04 21:41:32 +01:00
L'installation et la configuration sont basées sur les instructions originales données par:
2022-01-03 21:22:10 +01:00
https://docs.nextcloud.com/server/latest/admin_manual/installation/index.html
### Installation d'Apache
2022-05-04 20:37:12 +02:00
Avec les droits d'installation :
```bash
apt install apache2
a2enmod rewrite
a2enmod headers
```
2022-01-03 21:22:10 +01:00
### Installation de php et des modules pré-requis
2022-05-04 20:37:12 +02:00
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.
2022-01-04 21:41:32 +01:00
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;
2022-01-03 21:22:10 +01:00
2022-01-04 21:41:32 +01:00
Sortir de psql avec Ctrl+D.
2022-01-03 21:22:10 +01:00
2022-05-04 20:37:12 +02:00
### 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
```