MatérielsNAS

Comment installer Nextcloud sur TrueNAS Core 12

TrueNAS permet de stocker ses données facilement, cependant, pour pousser les fonctionnalités de votre NAS DIY, la solution Nextcloud peut être très intéressante.

Nextcloud est une solution de stockage et de partage de fichiers en ligne.  C’est un logiciel libre, distribué gratuitement et installable sur son propre serveur. Nous verrons dans ce guide, comment installer NextCloud sur un serveur NAS TrueNAS Core 12.

Fonctionnalités de NextCloud

  • Gratuit et open-source
  • Chiffrement de bout en bout, ce qui signifie que les fichiers peuvent être chiffrés sur les appareils clients avant d’être téléchargés sur le serveur, donc même si quelqu’un vole votre serveur, il ne peut pas lire vos fichiers.
  • Peut être intégré à une suite bureautique en ligne ( Collobora Online , OnlyOffice) afin que vous puissiez créer et éditer vos fichiers doc, ppt, xls directement à partir de NextCloud.
  • L’App Store contient des centaines d’applications pour étendre les fonctionnalités (comme l’application de calendrier, l’application de contacts, l’application de prise de notes, l’application de vidéoconférence, etc.).
  • Le client de synchronisation est disponible sur Linux, macOS, Windows, iOS et Android

Installer Nextcloud sur TrueNAS Core

Depuis l’interface web de TrueNAS, cliquez sur « Plugins », c’est ici que vous retrouverez tous les plugins de TrueNAS, dont Nextcloud que nous allons installer ensemble aujourd’hui.

Sélectionnez « Nextcloud » puis cliquez sur « Installer »

Ici, pour des raisons de praticité, nous allons désactiver le NAT et configurer le « container » Nextcloud en DHCP. Nous utiliserons notre routeur pour fixer l’adresse IP de Nextcloud plus tard.

L’installation prendra quelques minutes, en fonction des performances de votre NAS. 

À la fin de l’installation, un résumé apparaitra, avec le mot de passe SQL temporaire, mais également l’adresse de votre instance de Nextcloud.

Si vous retournez dans les plugins de TrueNAS, vous devriez maintenant voir que Nexcloud est installé et vous devriez également retrouver l’adresse de votre instance.

Si vous essayez d’accéder à votre instance NextCloud via l’adresse du portail, vous devriez avoir quelque chose comme ceci :

Accès à partir d'un domaine non approuvé

Pourquoi ? Puisque j’ai choisi non pas d’utiliser Nextcloud en NAT (Donc avec l’adresse ip du NAS) mais en DHCP. Donc l’adresse IP de cette instance de Nextcloud n’est pas approuvée. Aucun problème, nous allons résoudre ça.

Depuis le menu « Jails », sélectionner votre tout nouveau Jails, contenant Nextcloud, puis lancer la console sur celui-ci.

Nous allons maintenant éditer le fichier de configuration de Nextcloud. Pour cela, tapez la commande suivante afin d’ouvrir le fichier de configuration sous l’éditeur « vi » : 

vi /usr/local/www/nextcloud/config/config.php

Puis ajouter une ligne avec l’adresse IP de votre instance Nextcloud. Dans mon cas, « 192.168.1.36 ». J’ajoute donc la ligne suivante : 

2 => '192.168.1.36',
Si vous souhaitez accéder à votre instance Nextcloud depuis l’extérieur, il faudra également ici ajouter l’adresse d’accès depuis l’extérieur. Donc votre adresse IP externe ou votre nom de domaine par exemple.

Si vous rafraichissez votre navigateur sur l’IP de votre instance Nextcloud, vous devriez maintenant être invité à vous connecter.

Cool ! Maintenant, ou trouvez les informations d’identification ?

Vous pouvez retrouver tout ce qu’il faut depuis la section plugins en sélectionnant « Nextcloud » et en cliquant sur « POST INSTALL NOTES ».

Vous avez les identifiants de la base de données, et également le compte admin de votre instance Nextcloud.

Vous pouvez maintenant vous connecter et profitez de Nextcloud !

Vous pouvez vous arrêter là ou aller plus loin en jeter un coup d’oeil à la suite. En effet, ici nous sommes dans un Jail, vos documents, photos, fichiers sont tous « enfermé » dans le container. Il peut être intéressant donc de créer un lien entre votre stockage TrueNAS et votre instance Nextcloud. C’est ce que nous verrons ci-dessous.

Partage des données TrueNAS via Nextcloud

Comme je l’explique plus haut, votre instance Nextcloud est enfermée dans un Jail, donc les données ne sont pas directement accessibles depuis vos partages réseau par exemple. Pour faciliter le partage de vos données, il va falloir créer des points de montage et ajouter un « Stockage Externe » sur Nextcloud.

Création d’un point de montage

La première chose à faire est de créer un ou des points de montage dans votre Jail NextCloud qui pointera vers un Dataset auxquels vous souhaitez accéder via Nextcloud. Il va de soi que ces Dataset doivent exister sur TrueNAS. Et il faut également que l’utilisateur « www » ait les droits sur le DataSet. Personnellement, je créer un DataSet spécifique pour Nextcloud.

Une fois le ou les Dataset créés nous allons créer un point de montage pour le Jail Nextcloud. Pour cela, vous devez arrêter votre instance Nextcloud depuis le menu « plugins ».

Une fois arrêté, direction votre Jail pour créer un point de montage.

Cliquez sur « Actions » puis « Ajouter »

Ici sélectionner votre source (le répertoire que vous souhaitez partager avec Nextcloud) et votre cible, ici nous utiliserons /mnt/MonPool/iocage/jails/Nextcloud/root/media comme cible. Cliquez sur « Envoyer » pour enregistrer vos modifications.

Vous voilà maintenant avec un point de montage créer, il va falloir maintenant ajouter ce répertoire sur Nextcloud.

Activer les stockages externes dans Nextcloud

Cette option n’est pas accessible par défaut sur Nextcloud, nous allons donc  activer ce module complémentaire. Depuis Nextcloud, en tant qu’admin, cliquer en haut à droite sur l’icône de l’utilisateur puis sélectionner « Applications ». 

D’ici, vous pouvez maintenant activer le support du stockage externe en cliquant sur « Activer ».

Une fois cette option activée, vous pourrez alors trouver dans les paramètres l’option « Stockages externes ». Ici, ajouter un stockage externe comme ci-dessous. Vous pouvez mettre le nom que vous voulez, par contre, ajouter le chemin choisi plus haut, dans notre cas « /media ». 

Voilà, vous devriez maintenant retrouver ce stockage sur votre interface Nextcloud mais également sur votre NAS si vous avez un partage monté.

Voilà ! Vous avez maintenant un serveur Nextcloud installé sur TrueNAS et complètement fonctionnel ! Cependant si vous souhaitez partager le contenu vers l’extérieur via internet, il sera nécessaire d’ouvrir les ports de votre routeur et sur rediriger les ports 80 et 443 vers votre instance Nextcloud. Vous pouvez aussi installer un certificat et passer en HTTPS.

Installation d’un certificat et passage en HTTPS

Maintenant que notre Nextcloud est fonctionnel, dans un environnement local on peut laisser cela comme ça. Mais si on veut aller plus loin et ouvrir notre nextcloud au monde extérieur, il y a encore quelques étapes qui peuvent être mise en place. Notamment l’installation d’un certificat (Self Signed, j’ai pas trouvé mieux) et la redirection HTTP vers HTTPS.

Ouvrez le shell de votre jails nextcloud et taper les commandes suivantes : 

mkdir -p /usr/local/etc/ssl/nginx
cd /usr/local/etc/ssl/nginx
openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout nextcloud.key -out nextcloud.crt

Ici, il sera nécessaire de rentrer quelques informations pour la génération du certificat.

Appliquer les droits suivants sur le certificat :

chmod 400 /usr/local/etc/ssl/nginx/nextcloud.key

Éditer le fichier de configuration nginx pour forcer le HTTPS 

vi /usr/local/etc/nginx/nginx.conf
Ensuite après ceci : 
# https {
#   #Basic settings
#   # -------------

Coller ceci :

server {
    listen      80 default_server;
    listen [::]:80 default_server;
    return      301 https://$host$request_uri;
}

Nous allons maintenant éditer la configuration nextcloud

nano /usr/local/etc/nginx/conf.d/nextcloud.conf

Et ici, remplacer ceci :

server {
  listen 80;
  server_name _;

par ceci :

server {
  listen              0.0.0.0:443 default_server ssl http2;
  listen              [::]:443 default_server ssl http2;
  ssl_certificate     "/usr/local/etc/ssl/nginx/nextcloud.crt";
  ssl_certificate_key "/usr/local/etc/ssl/nginx/nextcloud.key";
  
  ssl_session_timeout    120m;
  ssl_session_cache      shared:ssl:16m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Terminez en redémarrant votre instance Nexcloud et vous devriez maintenant être capable de vous connecter à Nextcloud en HTTPS. Cependant, vous aurez certainement un avertissement dû à notre certificat qui est self signed et qui ne provient pas d’une autorité de certification connue comme Let’s Encrypt. Dans mon cas, je passe par les DNS de cloudflare pour la gestion de mon nom de domaine, ce qui me permet d’avoir un certificat signé et reconnu par tous les navigateurs gratuitement.

C’est la petite astuce du chef 🙂

Voilà, j’espère que ce « petit » guide vous aura plu, n’hésitez pas si vous avez des questions, les commentaires sont là pour ça.

Mikaël GUILLERM

Administrateur Système et Autoentrepreneur depuis 2009 pour la société zerobug. Je partage mes connaissances, problèmes et solutions à travers articles ou tweets !

Articles similaires

3 commentaires

  1. Bonjour Mikaël, j’ai installer nextcloud sur mon truenas (et rien d’autre) j’ai 2 HDD de 8To chacun en raid 1, tout marche, l’accès externe marche etc… Mais, après 2-3 heures de démmarage de mon Truenas, (j’étais en ce moment en train de copier 3.8go de fichiers sur mon nextcloud) toute la ram est utilisé et ça beug très fort, (j’ai 8gb de ram avec un processeur N100 et j’ai que 0.2go de ram de libre).
    Pourrais tu m’aider sur ça? est ce que tu as déjà rencontrer ce problème?

    Cordialement!

  2. bonjour

    j ai supprimer une mauvaise partir du ficher /usr/local/etc/nginx/conf.d/nextcloud.conf
    est ce que tu aurai une copie.

    Cordialement

  3. super tuto.
    ceci dit je bloque à l’édition du fichier nextcloud.conf
    la commande nano n’existe pas.
    de plus j’ai 2 server {}
    le premier pour port 80 et l’autre 443.
    pourquoi il n’y en a qu’un ici ?

    une idée pour résoudre le soucis ?

    merci.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page