Comment installer Nextcloud sur une machine virtuelle avec VirtualBox, le configurer avec Elasticsearch et sécuriser l’accès avec 2FA ?
Ce guide te montre pas à pas comment créer une VM Debian avec VirtualBox, installer YunoHost et Nextcloud, ajouter Elasticsearch pour la recherche plein texte, configurer l’authentification à deux facteurs avec TOTP, et installer les applications mobiles.
🌘 Nextcloud
Nextcloud est une plateforme libre de stockage et de collaboration. Elle te permet d’héberger tes fichiers, calendriers, contacts, et bien plus sur ton propre serveur plutôt que chez un fournisseur infonuagique commercial.
Dans le cadre d’une présentation pour LinuQ, j’ai préparé un guide complet pour installer Nextcloud sur une machine virtuelle VirtualBox avec Debian et YunoHost. Voici le résultat.
🌘 Création de la machine virtuelle avec VirtualBox
On commence par télécharger Debian 10 net install.
Conseil : valide la signature sha512sum de l’image téléchargée.
wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA512SUMS
sha512sum -c SHA512SUMS --ignore-missing
Ouvre VirtualBox et crée une nouvelle machine virtuelle de type Linux et version Debian (64-bit).

🌘 Configuration de la VM
- Mémoire vive : au moins 2048 Mo
- Disque dur : type VDI, dynamiquement alloué, au moins 15 Go
- Processeurs : au moins 2 si possible
- Redirection de port SSH : port hôte 3022 → port invité 22



Sélectionne l’image ISO de Debian 10 et démarre l’installation.

🌘 Installation de Debian
Choisis l’option « install » (sans interface graphique) et suis les étapes :
- Nom de machine :
nextcloud - Mot de passe root :
nextcloud - Utilisateur :
demo - Mot de passe :
demo - Partitionnement assisté — tout dans une seule partition

Pour le miroir, choisis le pays le plus proche géographiquement. Laisse le champ du mandataire vide. À l’invite popularity-contest, réponds « Non ». Décoche toutes les sélections logicielles — YunoHost s’occupe du reste.
Installe le système d’amorçage sur /dev/sda et termine. La VM redémarre.
🌘 Connexion SSH à la machine virtuelle
ssh -p 3022 demo@localhost
Puis passe en root :
su -
Mot de passe : nextcloud.

Note : utilise screen pour les commandes longues (apt install -y screen).
🌘 Installation de YunoHost
YunoHost est une surcouche pour Debian qui simplifie l’autohébergement. Exécute en tant que root :
apt install -y curl
curl https://install.yunohost.org | bash

Laisse YunoHost gérer SSH, puis effectue la postinstallation :
- Domaine :
nextcloud.local - Mot de passe admin :
nextcloud
Crée un premier utilisateur :
yunohost user create utilisateur
🌘 Accès réseau en mode pont
Passe la VM en mode pont pour qu’elle ait sa propre adresse IP. Redémarre la VM.

Fige l’adresse IP dans la configuration DHCP de ton routeur.
Ajoute cette entrée dans le fichier hosts de ta machine hôte :
192.168.0.151 nextcloud.local
(L’adapter selon l’IP de ta VM)
Connecte-toi à https://nextcloud.local et accepte le risque du certificat auto-signé.

🌘 Installation de Nextcloud
En SSH sur le serveur (via le domaine cette fois-ci) :
ssh -p 22 admin@nextcloud.local
sudo yunohost app install nextcloud
Conserve les paramètres par défaut :
Domain: nextcloud.local
Path: /nextcloud
Admin user: utilisateur
Access users home folder: no
Valide l’installation en ouvrant https://nextcloud.local/nextcloud dans ton navigateur.

🌘 Recherche plein texte avec Elasticsearch
Nextcloud peut être enrichi avec un moteur de recherche plein texte via Elasticsearch.
🌘 Installation d’Elasticsearch
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
sudo systemctl enable elasticsearch.service
/usr/share/elasticsearch/bin/elasticsearch-plugin install --batch ingest-attachment
sudo systemctl restart elasticsearch.service
🌘 Installation des applications Nextcloud
Dans https://nextcloud.local/nextcloud/settings/apps, section Rechercher, installe et active les trois applications suivantes :
- Full text search
- Full text search - Files
- Full text search - Elasticsearch Platform

Dans les paramètres, configure Elasticsearch :
- Adresse du servlet :
http://localhost:9200 - Index :
nc_index

🌘 Initialisation de l’index
cd /var/www/nextcloud
chmod a+x occ
sudo -u nextcloud php ./occ fulltextsearch:index
🌘 Indexation en continu
Crée un service systemd pour l’indexation en continu.
sudo nano /etc/systemd/system/nextcloud-fulltext-elasticsearch-worker.service
Contenu du fichier :
[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
Active et démarre le service :
systemctl daemon-reload
systemctl enable nextcloud-fulltext-elasticsearch-worker.service
systemctl start nextcloud-fulltext-elasticsearch-worker.service
systemctl status nextcloud-fulltext-elasticsearch-worker.service

🌘 Installation des applications Nextcloud
Accède au tableau des applications depuis le menu de Nextcloud.

Le tableau te montre les applications installées, celles qui sont activées ou non, les mises à jour disponibles et le catalogue d’applications par catégorie.

Tu peux mettre à jour les applications individuellement ou en lot.

🌘 Administration — Création d’utilisateurs
Les comptes se gèrent dans le tableau Utilisateurs, accessible depuis le menu de droite.

Pour ajouter un utilisateur, utilise le bouton à gauche.

🌘 Authentification à deux facteurs (2FA / TOTP)
Pour renforcer la sécurité, installe l’application Two-Factor TOTP Provider depuis le tableau des applications.

Active la fonctionnalité dans le panneau Sécurité du volet Administration du tableau Paramètres.


🌘 Configuration par l’utilisateur
Lors de la première connexion, l’utilisateur doit configurer son TOTP.
Sur son appareil mobile, il ouvre une application de gestion de jetons TOTP. Dans cet exemple, il s’agit de FreeOTP+.


Il prend en photo le code QR affiché à l’écran.

Puis il saisit le code généré par l’application.

Ensuite, il sélectionne le mode d’authentification configurée et entre le nouveau code.

🌘 Client de bureau
Le client lourd pour les environnements de bureau est disponible sur la page Clients du site de Nextcloud. Les versions Windows et macOS sont des installations régulières. La version GNU/Linux par défaut est une AppImage.
Astuce : tu peux aussi installer l’application via le gestionnaire de paquets de ta distribution.
Distributions basées RPM : déjà dans le magasin d’applications.
Ubuntu PPA :
add-apt-repository ppa:nextcloud-devs/client
apt-get update
Arch Linux :
pacman -Syu nextcloud-client
Alpine :
apk add nextcloud-client
🌘 Applications Android
Le client Android principal est disponible directement depuis la page Applications de Nextcloud, section Intégration : Nextcloud pour Android.
Tu peux aussi l’installer depuis F-Droid pour éviter les services Google.
🌘 Conclusion
Tu as maintenant un serveur Nextcloud complet : installation sur machine virtuelle VirtualBox via YunoHost, recherche plein texte avec Elasticsearch, authentification à deux facteurs, et clients mobiles. Une excellente façon de reprendre le contrôle de tes données et de découvrir l’autohébergement.
Ce guide a été préparé pour une présentation de LinuQ, le groupe d’utilisateurs de logiciels libres de Québec. Si tu souhaites partager ton expérience, poser des questions ou proposer des améliorations, n’hésite pas à ouvrir une discussion sur le dépôt GitHub ou à venir nous rejoindre à une rencontre de LinuQ.