# Création de la machine virtuelle avec VirtualBox
## Téléchargement de Debian 10
Depuis le site web de Debian, il est possible de télécharger une version légère "net install" de la version 10. Cliquez simplement sur le bouton "télécharger". Sinon, l'image est disponible via ce lien: [debian-10.8.0-amd64-netinst.iso](https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.8.0-amd64-netinst.iso)
Note: il est possible que cette la version de l'image par défaut ait changé depuis la création de ce tutoriel. L'important est que ce soit la version 10 de Debian.
## Création d'une machine virtuelle Debian
On débute par ouvrir le logiciel VirtualBox qui est habituellement disponible via votre distribution Linux ou via le [site web de VirtualBox](https://www.virtualbox.org/)
![Accueil de Virtualbox](Nextcloud-Installation-VirtualBox-001.png)
Nous allons créer une nouvelle machine virtuelle de Type Linux et de version Debian (64-bit). Veuillez vous assurer que le dossier de la machine contienne au moins 20 Go d'espace libre pour assurer le bon fonctionnement de la machine virtuelle.
![créer une nouvelle machine virtuelle](Nextcloud-Installation-VirtualBox-002.png)
Choisissez la quantité de mémoire vive. Il est conseillé d'avoir au moins 2048 Mo de disponible pour que Nextcloud fonctionne de façon fluide avec quelques applications additionnelles.
![quantité de mémoire vive](Nextcloud-Installation-VirtualBox-003.png)
Choisissez le type de disque dur VDI
![type de disque dur VDI](Nextcloud-Installation-VirtualBox-005.png)
Choisissez la taille du disque à utiliser pour la machine virtuelle. Je conseille d'utiliser au moins 15 Go. Validez que le répertoire d'enregistrement du disque contient suffissamment d'espace.
Si vous le désirez, vous pouvez enregistrer votre installation pour garder une trace pour référence future. C'est d'ailleurs ce que je fais pour préparer cette formation.
Nous allons configurer une redirection de port afin de pouvoir nous connecter à la machine virtuelle en SSH avec une console virtuelle ou un logiciel tel que PuTTY au lieu de devoir utiliser l'interface de VirtualBox.
Laissez le champ du mandataire vide sauf si vous en avez un (c'est très rare sur un réseau résidentiel)
Un autre ensemble de packages sera téléchargé puis installé. En cours de route, vous aurez à répondre à un invite sur popularity-contest. Choisissez Non.
L'installation se poursuivre par la suite. On vous invitera à choisir différentes options. Comme nous installons Yunohost, nous allons réduire ces options au minimum, car son propre script d'installation s'en chargera.
Ensuite, choisissez "continuer" et la machine virtuelle redémarrera. Debian est maintenant installé.
## Se connecter en SSH sur la machine virtuelle
Pour se connecter sur la machine virtuelle, nous utiliserons le port configuré lors de la création de la machine virtuelle ainsi que l'utilisateur demo.
Comme nous allons rouler des commandes qui prennent un temps considérable à exécuter, nous allons utiliser screen, qui permet de garder une session active sur le serveur même si la connexion fait défaut.
```bash
sudo apt install -y screen
```
Pour la suite de ce tutoriel, si vous choisissez d'utiliser screen, nous allons assumer que vous avez lu la [section d'introduction du manuel](https://www.gnu.org/software/screen/manual/screen.html#Getting-Started).
Laisser Yunohost gérer le SSH. Ce faisant, lorsque vous vous connecterez la prochaine fois, l'utilisateur administrateur sera `admin`. C'est un rôle intermédiaire entre `demo` et `root` en terme de permissions.
Une fois l'installation terminée, nous allons maintenant effectuer la post-installation.
Nous aurons besoin d'un nom de domaine pour notre installation. Nous utiliserons `nextcloud.local`.
Le mot de passe d'administration sera `nextcloud`.
Nous allons aussi créer un premier utilisateur `utilisateur`
```bash
yunohost user create utilisateur
```
Le résultat est:
```text
Succès ! L’utilisateur a été créé
fullname: utilisateur nouveau
mail: utilisateur@nextcloud.local
username: utilisateur
```
## Accès à la machine virtuelle comme un serveur séparé sur notre réseau local.
Nous allons maintenant configurer la machine virtuelle en mode "pont" afin qu'elle ait sa propre adresse IP. Ce faisant, nous allons pouvoir associer le nom de domaine à cette adresse pour simplifier les manipulations futures. Ceci va simuler comme si on avait une machine physique séparée ou un serveur avec une adresse IP publique tel un serveur privé virtuel (VPS).
Ajouter la ligne suivante au fichier (Changer selon l'adressse IP de votre machine virtuelle):
```text
192.168.0.151 nextcloud.local
```
Vous pouvez maintenant vous connecter à votre instance Yunohost via l'adresse `https://nextcloud.local` dans votre navigateur. Attention, le navigateur va vous demander d'accepter le risque d'une adresse sans certificat valide.
On se connecte en SSH sur le serveur en utilisant le domaine cette fois-ci.
```bash
ssh -p 22 admin@nextcloud.local
```
On installe une instance de Nextcloud.
```
sudo yunohost app install nextcloud
```
Vous pouvez conserver les paramètres par défaut proposés à monis que vous désiriez utiliser un sous-domaine. Les paramètres de l'installation devraient ressembler à ceci.
```text
Choose the domain where this app should be installed [nextcloud.local] (default: nextcloud.local):
Choose the path where this app should be installed (default: /nextcloud):
Choose an administrator user for this app [utilisateur] (default: utilisateur):
Access the users home folder from Nextcloud? [yes | no] (default: no):
```
## Validation de l'installation
Pour vous assurer que l'installation de Nextcloud est bien fonctionnelle, ouvrez l'URL suivante dans votre navigateur: `https://nextcloud.local/nextcloud`
## Installation de l'engin de recherche plein texte de Nextcloud
Depuis le navigateur web, ouvrir l'URL suivante: `https://nextcloud.local/nextcloud/settings/apps`
Dans la section Rechercher, cliquez sur **Télécharger et activer** pour les trois applications suivantes:
- Full text search
- Full text search - Files
- Full text search - Elasticsearch Platform
![applications full text search](Nextcloud-Installation-VirtualBox-046.png)
Maintenant, allons dans la section Paramètres de Nextcloud pour configurer ces applications. Sélectionner `Elasticsearch` comme plateforme de recherche.
Indiquer `http://localhost:9200` comme adresse du Servlet et `nc_index` comme index
![Configuration full text search](Nextcloud-Installation-VirtualBox-047.png)
## Initialiser l'index
Depuis la session SSH, idéalement dans un screen, nous allons initialiser l'index Elasticsearch. Exécuter en tant que root.
Nous souhaitons que tous les nouveaux documents ajoutés dans Nextcloud soit indexés. Pour ce faire, nous allons créer un service dans systemd qui permet l'indexation en continu.
Avec un éditeur de texte, ouvrir et modifier le fichier "unit" du service.