====== Installation complète de Yunohost, Nextcloud et Elasticsearch sur 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: [[https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.8.0-amd64-netinst.iso|debian-10.8.0-amd64-netinst.iso]] Conseil: valider la signature sha256sum de l’image téléchargée wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA512SUMS sha512sum -c SHA512SUMS --ignore-missing 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 la distribution Linux ou via le [[https://www.virtualbox.org/|site web de VirtualBox]] {{:auto-heber:Nextcloud-Installation-VirtualBox-001.png| Accueil de Virtualbox}} On crée une nouvelle machine virtuelle de Type Linux et de version Debian (64-bit). Le dossier de la machine doit avoir au moins 20 Go d’espace libre pour assurer le bon fonctionnement de la machine virtuelle. {{:auto-heber:Nextcloud-Installation-VirtualBox-002.png| créer une nouvelle machine virtuelle}} 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. {{:auto-heber:Nextcloud-Installation-VirtualBox-003.png| quantité de mémoire vive}} Choisissez le type de disque dur VDI {{:auto-heber:Nextcloud-Installation-VirtualBox-005.png| type de disque dur VDI}} Choisissez le stockage dynamiquement alloué {{:auto-heber:Nextcloud-Installation-VirtualBox-006.png| dynamiquement alloué}} Choisissez la taille du disque à utiliser pour la machine virtuelle. Je conseille d’utiliser au moins 15 Go. Vérifiez que le répertoire d’enregistrement du disque contient suffisamment d’espace. {{:auto-heber:Nextcloud-Installation-VirtualBox-007.png| taille disque}} Nous avons maintenant une configuration de base. On ajuste quelques paramètres pour le besoin. {{:auto-heber:Nextcloud-Installation-VirtualBox-008.png| configuration de base}} Je conseille de mettre au moins deux processeurs si possible. {{:auto-heber:Nextcloud-Installation-VirtualBox-009.png| deux processeurs}} Il est possible d’enregistrer l’installation pour garder une trace pour référence future. {{:auto-heber:Nextcloud-Installation-VirtualBox-010.png| enregistrer}} On configure une redirection de port afin de pouvoir se 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. {{:auto-heber:Nextcloud-Installation-VirtualBox-011.png| redirection}} Ajouter la configuration suivante: * Nom: ssh * Protocole: TCP * Port hôte: 3022 * Port invité: 22 {{:auto-heber:Nextcloud-Installation-VirtualBox-012.png| redirection}} Ensuite, sélectionner Afficher depuis l’écran d’accueil. Ceci démarre l’installation du système d’exploitation. {{:auto-heber:Nextcloud-Installation-VirtualBox-008.png| configuration de base}} Sélectionner l’image ISO du système Debian 10 téléchargée préalablement. {{:auto-heber:Nextcloud-Installation-VirtualBox-013.png| image ISO}} {{:auto-heber:Nextcloud-Installation-VirtualBox-014.png| image ISO}} Démarrer l’installation {{:auto-heber:Nextcloud-Installation-VirtualBox-015.png| installation}} ===== Installation de Debian ===== On installe le système Debian sur la machine virtuelle. Choisir l’option “install” comme on n’installe pas un système avec une interface graphique. {{:auto-heber:Nextcloud-Installation-VirtualBox-016.png| install}} Choisissez la langue. Cette installation fonctionnera dans toutes les langues disponibles. {{:auto-heber:Nextcloud-Installation-VirtualBox-017.png| langue}} Choisissez le pays {{:auto-heber:Nextcloud-Installation-VirtualBox-018.png| pays}} Choisissez la disposition de clavier {{:auto-heber:Nextcloud-Installation-VirtualBox-019.png| disposition de clavier}} Nom de machine: ''%%nextcloud%%'' Mot de passe root: ''%%nextcloud%%'' {{:auto-heber:Nextcloud-Installation-VirtualBox-020.png| machine}} Utilisateur: ''%%demo%%'' {{:auto-heber:Nextcloud-Installation-VirtualBox-021.png| Utilisateur}} Mot de passe: ''%%demo%%'' {{:auto-heber:Nextcloud-Installation-VirtualBox-022.png| Mot de passe}} Choisissez le partitionnement assisté {{:auto-heber:Nextcloud-Installation-VirtualBox-023.png| partitionnement assisté}} Choisissez tout dans une seule partition {{:auto-heber:Nextcloud-Installation-VirtualBox-024.png| une seule partition}} Choisissez terminer et appliquer tous les changements {{:auto-heber:Nextcloud-Installation-VirtualBox-025.png| appliquer}} Choisissez “oui” {{:auto-heber:Nextcloud-Installation-VirtualBox-026.png| démarrage installation}} L’installation des packages du système débute, ceci peut prendre quelques minutes. Choisissez “non” à cette invite qui demande s’il y a d’autres disques à analyser. {{:auto-heber:Nextcloud-Installation-VirtualBox-027.png| disque analyser}} Choisissez le pays pour un miroir. Ici, c’est la proximité géographique qui est la plus importante. {{:auto-heber:Nextcloud-Installation-VirtualBox-028.png| pays du miroir}} Choisissez ensuite un miroir pour télécharger les packages additionnels de Debian qui seront installés. {{:auto-heber:Nextcloud-Installation-VirtualBox-029.png| miroir}} Laissez le champ du mandataire vide sauf si applicable (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, il faut répondre à une invite sur popularity-contest. Le choix recommandé est ''%%Non%%''. {{:auto-heber:Nextcloud-Installation-VirtualBox-030.png| popularity-contest}} L’installation se poursuivra par la suite. On aura à choisir différentes options. On réduit ces options au minimum, car Yunohost a son propre script d’installation qui se chargera du reste. {{:auto-heber:Nextcloud-Installation-VirtualBox-031.png| sélection logicielle}} Sélectionner “oui” pour l’installation du système d’amorçage. {{:auto-heber:Nextcloud-Installation-VirtualBox-032.png|sélection logicielle}} Choisir le disque ''%%/dev/sda%%'' {{:auto-heber:Nextcloud-Installation-VirtualBox-033.png| sélection logicielle}} 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, on utilise le port configuré lors de la création de la machine virtuelle ainsi que l’utilisateur demo. Dans un terminal, saisir: ssh -p 3022 demo@localhost S’authentifier avec le mot de passe ''%%demo%%'' Avec PuTTY {{:auto-heber:Nextcloud-Installation-VirtualBox-034.png|putty hote}} {{:auto-heber:Nextcloud-Installation-VirtualBox-035.png|putty user}} Ensuite, se connecter en tant que root avec ''%%su -%%'' et saisir le mot de passe root ''%%nextcloud%%'' entré lors de l’installation de Debian. Nous sommes maintenant connectés en tant qu’administrateur sur la machine virtuelle Debian 10 et prêts à installer Yunohost. (base) ~ ❯❯❯ ssh -p 3022 demo@localhost demo@localhost's password: Linux yunohost 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sat Mar 6 17:20:55 2021 from 10.0.2.2 demo@yunohost:~$ su - Mot de passe : root@yunohost:~# Avec PuTTY: {{:auto-heber:Nextcloud-Installation-VirtualBox-036.png| putty user}} **Note**: Dans un terminal, l’invite de commandes est précédée d’un dièse, lorsque connecté en root. ===== Installation de screen (optionnel) ===== Pour rouler des commandes qui prennent un temps considérable à exécuter, il est recommandé d’utiliser des sessions screen, qui permettent de garder une session active sur le serveur même si la connexion fait défaut. sudo apt install -y screen Pour la suite de ce tutoriel, on assume que la [[https://www.gnu.org/software/screen/manual/screen.html#Getting-Started|section d’introduction du manuel]] de screen ou les principales fonctionnalités sont connues. ===== Installation de Yunohost ===== Exécuter les commandes suivantes en tant que root apt install -y curl curl https://install.yunohost.org | bash Lancez l’installation {{:auto-heber:Nextcloud-Installation-VirtualBox-037.png| débuter installation}} Laisser Yunohost gérer le SSH. À la prochaine connexion, l’utilisateur administrateur sera ''%%admin%%''. C’est un rôle intermédiaire entre ''%%demo%%'' et ''%%root%%'' en termes de permissions. {{:auto-heber:Nextcloud-Installation-VirtualBox-038.png| gestion ssh}} Une fois l’installation terminée, il faut effectuer la postinstallation. Un nom de domaine est requis pour l’installation. On utilisera ''%%nextcloud.local%%''. Le mot de passe d’administration sera ''%%nextcloud%%''. On crée un premier utilisateur ''%%utilisateur%%'' yunohost user create utilisateur Le résultat est: 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 le réseau local ===== On configure maintenant la machine virtuelle en mode “pont” afin qu’elle ait sa propre adresse IP. Le nom de domaine pourra être associé à 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). {{:auto-heber:Nextcloud-Installation-VirtualBox-039.png| réseau pont}} Ensuite, redémarrer la machine virtuelle depuis VirtualBox (Menu Machine/Redémarrage). Une fois redémarré, l’affichage VirtualBox de la machine virtuelle affiche son adresse IP. Dans cet exemple, c’est 192.168.0.151. {{:auto-heber:Nextcloud-Installation-VirtualBox-040.png| réseau pont}} Dans la configuration de routeur DHCP à la maison, figer cette adresse. Voici un exemple pour un routeur D-Link. {{:auto-heber:Nextcloud-Installation-VirtualBox-041.png| figer IP}} On ajoute le domaine au fichier “hosts”. * Sur Windows (éditer en mode administrateur): ''%%C:\Windows\System32\drivers\etc\hosts%%'' * Sur Linux (éditer avec sudo): ''%%/etc/hosts%%'' * Sur macOS (éditer avec sudo): ''%%/private/etc/hosts%%'' Ajouter la ligne suivante au fichier (changer selon l’adresse IP de la machine virtuelle): 192.168.0.151 nextcloud.local On se connecte à l’instance Yunohost via l’adresse ''%%https://nextcloud.local%%'' dans le navigateur. Attention, ça va demander d’accepter le risque d’une adresse sans certificat valide. {{:auto-heber:Nextcloud-Installation-VirtualBox-042.png| accepter HTTPS}} Une fois arrivé à la fenêtre de connexion, on entre ''%%utilisateur%%'' et ''%%nextcloud%%'' {{:auto-heber:Nextcloud-Installation-VirtualBox-043.png| connexion}} Nous avons réussi ! L’installation de Yunohost est fonctionnelle. {{:auto-heber:Nextcloud-Installation-VirtualBox-044.png| accueil yunohost}} ===== Installation de Nextcloud ===== On se connecte en SSH sur le serveur en utilisant le domaine cette fois-ci. ssh -p 22 admin@nextcloud.local On installe une instance de Nextcloud. sudo yunohost app install nextcloud On conserve les paramètres par défaut proposés à moins d’utiliser un sous-domaine. Les paramètres de l’installation devraient ressembler à ceci. 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 s’assurer que l’installation de Nextcloud est bien fonctionnelle, ouvrez l’URL suivante dans le navigateur: ''%%https://nextcloud.local/nextcloud%%'' {{:auto-heber:Nextcloud-Installation-VirtualBox-045.png| Interface Nextcloud}} ===== Installation d’Elasticsearch ===== On installe Elasticsearch comme moteur de recherche en plein texte wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - sudo apt-get install apt-transport-https openjdk-11-jre-headless echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list sudo apt-get update && sudo apt-get install elasticsearch Il faut maintenant mettre en place et activer le service pour qu’Elasticsearch roule en arrière-plan. sudo systemctl enable elasticsearch.service Enfin, il faut installer et activer le plug-in d’indexations de documents pour Elasticsearch /usr/share/elasticsearch/bin/elasticsearch-plugin install --batch ingest-attachment Pour terminer, on redémarre le service sudo systemctl restart elasticsearch.service ===== Installation de l’moteur 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 {{:auto-heber:Nextcloud-Installation-VirtualBox-046.png| applications recherche en plein texte}} 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 {{:auto-heber:Nextcloud-Installation-VirtualBox-047.png| Configuration full text search}} ===== Initialiser l’index ===== Depuis la session SSH, idéalement dans un screen, on initialise l’index Elasticsearch. Exécuter en tant que root. cd /var/www/nextcloud chmod a+x occ sudo -u nextcloud php ./occ fulltextsearch:index {{:auto-heber:Nextcloud-Installation-VirtualBox-048.png| initialiser l’index}} ===== Activer l’indexation en continu ===== Tous les nouveaux documents ajoutés dans Nextcloud devraient être indexés. Pour ce faire, on crée un service dans systemd qui permet l’indexation en continu. Avec un éditeur de texte, ouvrir et modifier le fichier “unit” du service. sudo nano /etc/systemd/system/nextcloud-fulltext-elasticsearch-worker.service Insérer le contenu suivant: [Unit] Description=Elasticsearch Worker for Nextcloud Fulltext Search After=network.target [Service] User=nextcloud Group=nextcloud WorkingDirectory=/var/www/nextcloud ExecStart=/usr/bin/php /var/www/nextcloud/occ fulltextsearch:live -q ExecStop=/usr/bin/php /var/www/nextcloud/occ fulltextsearch:stop Nice=19 Restart=always [Install] WantedBy=multi-user.target Après avoir modifié un fichier “unit” il faut recharger systemd avant d’activer et de démarrer le service. systemctl daemon-reload systemctl enable nextcloud-fulltext-elasticsearch-worker.service systemctl start nextcloud-fulltext-elasticsearch-worker.service Vérifier ensuite que le service est bien activé: systemctl status nextcloud-fulltext-elasticsearch-worker.service {{:auto-heber:Nextcloud-Installation-VirtualBox-049.png| service d’indexation en continu}} On peut utiliser la recherche en plein texte depuis l’URL suivante: ''%%https://nextcloud.local/nextcloud/apps/fulltextsearch/%%'' {{:auto-heber:Nextcloud-Installation-VirtualBox-050.png| exemple recherche}}