Openmediavault : Installation de Nextcloud

Étape importante pour mon nouveau NAS : installer Nextcloud avec un accès externe sécurisé afin de pouvoir y accéder hors de la maison. Pour info, il s’agit de la version 20 de Nextcloud.

Car en plus de fichiers classiques dont un Cloud offre la disponibilité, il y a une autre fonctionnalité que j’apprécie énormément : le téléchargement automatique des photos prises sur le smartphone, chose rendue possible par l’application cliente Nextcloud.

L’accès par internet était donc primordial. J’ai eu plus de mal que prévu, et pas forcément sur l’installation en elle-même (avec Docker et ses containers c’est plutôt bien fait), mais j’ai du faire face à des problèmes de réseau (NAT, DNS…) et le plus dur a été finalement de bien identifier les problèmes, puis de leur trouver une solution.

Mais bon, aujourd’hui tout fonctionne, et je vais pouvoir me débarrasser de mon NAS Synology, et ce sera sans aucun regret, je suis plutôt épaté par Openmediavault et par tout ce qu’il propose.

Je vais donc installer le triptyque Nextcloud-MariaDB-Swag. SWAG (Secure Web Application Gateway, qui s’appelait précédemment letsencrypt), inclut un webserver, un reverse-proxy, un client certbot pour la génération de certificats SSL, et enfin fail2ban pour prévenir les intrusions. Plutôt complet donc !

Pour cela, il faut définir un nom de domaine ; comme j’ai un domaine avec ce blog (pled.fr), et que mon hébergeur permet de se créer des enregistrements, j’ai procédé de cette manière.

Hélas, une fois l’installation terminée, il m’était impossible d’accéder à la page web de Nextcloud. D’où venait le problème : configuration ? NAT ? DNS ? J’ai pas mal galéré avant de trouver la solution.

Il s’agissait en fait d’un problème de NAT hairpinning : on ne peut pas communiquer entre deux machines sur le même réseau interne en utilisant les adresses externes. On verra comment régler ce problème.

Bref, voyons un peu tout cela de plus près, et comment tout a fini par tomber en marche… 😎

Préparation

Voilà ce que donne le schéma général : le reverse proxy et nextcloud tournent sur la même machine, mais cette vue permet de voir la redirection des ports 443 et 80 :

Première chose à faire : on passe l’interface d’administration d’OMV sur le port 8080 afin de libérer le port 80 :

Ensuite, une des premières questions à se poser est celle-ci : ma box dispose-t-elle d’une IP fixe ? Car les enregistrements DNS que l’on va créer vont pointer sur cette adresse, c’est donc très important.

Adresse IP

Orange à priori ne fournit pas d’adresse IP fixe aux particuliers ! Mais heureusement j’ai trouvé cette information :

Orange ne fournit pas d’adresse fixe pour ses contrats grand public. Mais :
  • Les liaisons Fibre et VDSL ont des adresses « presque fixe ». Elles ne changent que rarement.
  • Les liaisons ADSL (en voie de disparition) ont des adresses dynamiques.
  • L’utilisateur ne peut pas forcer une IP strictement fixe.
  • L’utilisateur peut forcer un changement d’IP depuis son espace client ou l’interface d’administration de sa box (forcer un redémarrage par logiciel)
De plus ce n’est pas nécessaire, même pour atteindre une machine ayant une fonction de « serveur » : disque NAS, caméra, imprimante, serveur web, etc… Il suffit de passer par l’utilisation d’un DNS dynamique.

Dans mon cas, étant en VDSL, je peux considérer que mon adresse IP ne changera que très rarement. Je peux donc me baser sur celle-ci pour définir mon domaine DNS.

Je ne souhaite pas utiliser de DNS dynamique : beaucoup de vidéos d’installation de Nextcloud sur OMV utilisent cette méthode (avec le service duckdns par exemple). Mais comme mon hébergeur me permet de créer mon propre sous-domaine, je voulais vraiment utiliser cette solution, c’est plus propre.

DNS

D’après ce que j’ai pu lire, il faut donc créer deux enregistrements: un enregistrement A qui pointe vers l’adresse IP de la box, puis un enregistrement CNAME qui pointe vers ce « A record » (qui est en fait un simple alias). Alors voilà ce que cela donne dans mon cas :

Type Nom Pointe vers
A xxx.pled.fr 1.2.3.4
Type Nom Alias de
CNAME nextcloud.xxx.pled.fr xxx.pled.fr

On peut vérifier facilement que la résolution du nom en adresse fonctionne avec la commande nslookup par exemple.

pascal$ nslookup nextcloud.xxx.pled.fr
Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
nextcloud.xxx.pled.fr	canonical name = xxx.pled.fr.
Name:	xxx.pled.fr
Address: 1.2.3.4

Box orange

On va rediriger les ports 443 et 80 vers 444 et 81. Il suffit d’aller sur la box, « Configuration réseau », puis « Configuration avancée », et enfin choisir l’onglet NAT/PAT. Ensuite, sélectionner les deux services concernés, et les faire pointer sur le périphérique ou tourne Openmediavault :

Voilà, tout est prêt, on peut maintenant installer Nextcloud.

Nextcloud – Mariadb – Swag

La première méthode que j’ai essayé est normalement la plus simple, à savoir utiliser « Stacks », qui permet de tout installer en une seule fois.

Tout est expliqué sur cette vidéo de Techno Dad Life. Concernant la configuration et les paramètres, On trouve pas mal d’explications et d’exemples de configuration sur cette page, ou encore celle-ci.

Comme j’ai rencontré des problèmes de NAT, j’ai fini par tout installer container par container, mais la méthode « Stacks » est beaucoup plus simple et plus rapide ! C’est donc celle-là que je vais décrire.

Dans Portainer, le gestionnaire Docker d’Openmediavault (voir l’article sur Plex si nécessaire), on clique sur Stacks à gauche, puis sur le bouton « Add stack ». Il ne reste plus qu’à coller le contenu suivant qui définit les 3 containers que l’on souhaite installer.

---
version: "2"
services:
  nextcloud:
    image: linuxserver/nextcloud
    container_name: nextcloud
    environment:
      - PUID=997
      - PGID=100
      - TZ=Europe/Paris
    volumes:
      - /srv/dev-disk-by-label-DATA/AppData/Nextcloud/config:/config
      - /srv/dev-disk-by-label-DATA/Nextcloud/data:/data
    ports:
      - 443:443
    depends_on:
      - mariadb
    restart: unless-stopped
  mariadb:
    image: linuxserver/mariadb
    container_name: nextclouddb
    environment:
      - PUID=997
      - PGID=100
      - MYSQL_ROOT_PASSWORD=password
      - TZ=Europe/Paris
    volumes:
      - /srv/dev-disk-by-label-DATA/AppData/Nextclouddb:/config
    restart: unless-stopped
  swag:
    image: linuxserver/swag
    container_name: swag
    cap_add:
      - NET_ADMIN
    environment:
      - PUID=997
      - PGID=100
      - TZ=Europe/Paris
      - URL=xxx.pled.fr
      - SUBDOMAINS=nextcloud
      - VALIDATION=http
      - EMAIL=xxx@yyy.zz
    volumes:
      - /srv/dev-disk-by-label-DATA/AppData/swag:/config
    ports:
      - 444:443
      - 81:80
    restart: unless-stopped

Quelques remarques sur ce contenu :

  • Le PUID et le PGID du compte admin sont à identifier sur votre serveur, comme lors de l’installation de PLEX. Vous pouvez éventuellement créer un compte spécifique « nextcloud » pour cette installation, à vous de voir.
  • Pour le chemin d’accès aux volumes, j’ai d’abord créé via l’interface d’OMV les dossiers partagés AppData (utilisé pour la configuration des containers), et un répertoire Nextcloud qui sera utilisé par les utilisateurs de Nextcloud. Je peux ainsi accéder facilement à ce dernier avec un partage NFS (ou autre) si je le souhaite.
OMV-DATA est lui utilisé pour le partage NFS, les autres dossiers sont ceux utilisés par PLEX.

Ensuite, il faut se connecter en SSH pour créer les sous-dossiers « Nextcloud », « Nextclouddb » et « swag » qui sont utilisés pour les dossiers « config » des applis, et les faire appartenir au compte admin (le compte utilisé par OMV).

pascal@odroidhc2:~$ cd /srv/dev-disk-by-label-DATA/AppData
pascal@odroidhc2:/srv/dev-disk-by-label-DATA/AppData$ sudo mkdir Nextcloud Nextclouddb swag
pascal@odroidhc2:/srv/dev-disk-by-label-DATA/AppData$ sudo chown -R admin Nextcloud Nextclouddb swag
pascal@odroidhc2:/srv/dev-disk-by-label-DATA/AppData$ ls -l
total 12
drwxrwsrwx+  9 admin users 4096 Nov 22 18:23 Nextcloud
drwxrwsrwx+  4 admin users 4096 Nov 23 14:59 Nextclouddb
drwxrwsrwx+ 12 admin users 4096 Nov 23 19:00 swag
  • En ce qui concerne les noms de domaine, j’ai donc utilisé mon enregistrement de type A pour le paramètre URL, et le sous-domaine « nextcloud » du CNAME pour le paramètre SUBDOMAINS. La validation est elle de type http.
  • Concernant le port pour swag, j’ai bien mappé le port 444 (ce que je vais recevoir du router de la box) vers le port 443 (celui sur lequel écoute l’instance Nextcloud).

Voilà, il ne reste plus qu’à cliquer sur « Deploy the stack » pour que tout s’exécute et s’installe. Cela prend un peu de temps, puisque les logiciels vont être téléchargés, puis installés et configurés.


Ce n’est pas complètement terminé, il reste à finaliser l’installation en modifiant quelques fichiers de configuration.

Swag : comme je souhaite utiliser un sous-domaine (nextcloud.xxx.pled.fr) et non pas un sous-dossier (xxx.pled.fr/nextcloud) pour accéder au serveur, il va falloir « activer » le fichier d’exemple :

cd /srv/dev-disk-by-label-DATA/AppData/swag/nginx/proxy-confs
cp nextcloud.subdomain.conf.sample nextcloud.subdomain.conf
sudo chown -R admin nextcloud.subdomain.conf
Avec une version plus récente de Nextcloud (v23 par exemple), modifier le fichier config.php comme indiqué ci-dessous est à faire APRÈS avoir passé la page d’installation dans le navigateur, ce qui permet de finir l’installation, et télécharger tous les fichiers nécessaires. Avant, le fichier n’est pas encore présent.

Nextcloud : il faut éditer et modifier/ajouter quelques paramètres dans le fichier /srv/dev-disk-by-label-DATA/AppData/Nextcloud/www/nextcloud/config/config.php : vérifiez que ceux listés ci-dessous existent et adaptez-les à votre configuration.

  'trusted_proxies' =>
  array (
    0 => 'swag',
  ),
  'trusted_domains' => 
  array (
    0 => '192.168.1.30:444',
    1 => 'nextcloud.xxx.pled.fr',
  ),
  'overwrite.cli.url' => 'https://nextcloud.xxx.pled.fr',
  'overwritehost' => 'nextcloud.xxx.pled.fr',
  'overwriteprotocol' => 'https',

il faut vérifier que tout démarre bien. Il faut se connecter en SSH sur la machine, et entre les commandes suivantes :

sudo docker restart swag
sudo docker restart nextcloud
sudo docker logs -f swag
sudo docker logs -f nextcloud

Pour swag, vérifier que vous voyez bien les messages suivants : « Congratulations! Your certificate and chain have been saved at…« . Pour swag et nextcloud, vous devez voir « [services.d] starting services » suivi de « [services.d] done » en fin de log. Si ces deux messages s’affichent, c’est plutôt bon signe.

Du côté de l’interface de Portainer, on doit voir les containers démarrés et actifs :

Voilà, on doit maintenant pouvoir afficher la page de première connexion de Nextcloud. C’est là que j’ai eu des problèmes avec mon histoire de NAT. J’y reviens tout de suite, mais terminons rapidement l’installation de Nextcloud :

Sur l’écran qui s’affiche ci-dessous, il suffit de remplir les champs correctement. J’ai également décoché l’installation des « applications recommandées », je n’installerai que ce dont j’ai besoin au fur et à mesure.

  • Créer un compte admin (choisissez le nom que vous voulez, c’est celui qui aura les droits d’administration) et lui donner un mot de passe.
  • Pour la base de données, laisser « /data » pour le dossier de la DB, choisir MySQL/MariaDB, le « Database user » est « root », le « Database password » est celui que l’on a mis dans le fichier de configuration « Stack » (MYSQL_ROOT_PASSWORD), idem pour le nom de la base de donnée (nextclouddb), et enfin on remplace localhost par « mariadb » (le nom du container en tant que nom DNS).
  • Comme indiqué juste en-dessous de « mariadb », on peut aussi préciser le numéro de port. Dans mon cas, comme j’ai fait l’installation container par container, j’avais défini un port pour mariadb (3306, le port par défaut), j’ai donc remplacé » « localhost » par mon adresse IP locale suivie du numéro de port (soit 192.168.1.30:3306). Ce n’était sans doute pas nécessaire, puisque ce sont finalement les valeurs par défaut, mais cela permet de comprendre ce que l’on fait !

Voilà, cliquer sur les quelques écrans de présentation qui suivent, et Nextcloud est installé et prêt à fonctionner !

L’écran d’accueil de Nextcloud ! 😎

NAT hairpinning

Revenons donc au problème qui m’a occupé bien des heures. Non pas qu’il soit compliqué à résoudre, mais j’ai mis un certain temps à comprendre ce qui se passait.

Donc lorsque je voulais afficher la page https://nextcloud.xxx.pled.fr pour finaliser l’installation de Nextcloud, je partais en timeout :

J’avais tout vérifié : les ports ouverts avec nmap, les noms de domaine avec nslookup, tout semblait correct. J’ai fini par réinstaller tous les containers un par un, pour chaque fois arriver au même résultat. Et puis j’ai eu l’idée de prendre mon smartphone, de couper le wifi, et de tester l’URL de Nextcloud en passant donc par le réseau GSM : et là, ça marchait !! 😛

Restait à comprendre le problème, et là c’est un type sur Discord (en bas de la page de Swag setup, il y a une invitation pour rejoindre le groupe) avec qui j’avais vérifié ma config swag quand je pensais que c’était peut-être la cause du problème, qui m’a parlé de ce désormais fameux « NAT hairpinning » !

Alors qu’est-ce qui se passe ? quand on envoie un message TCP sur le réseau, il y a une adresse destination et une adresse source : quand je suis sur mon PC, l’adresse source est donc mon adresse locale (192.168.x.y). Le message par vers la destination (le nom DNS du serveur Nextcloud), soit une fois le nom DNS résolu en adresse IP, l’adresse de ma box. Et la box, voyant un message TCP arriver de l’extérieur avec une adresse source ET destination locale… eh bien bloque tout simplement ce message le message : c’est apparemment une limitation du protocole NAT. Voilà ce qu’explique la page wikipedia sur le sujet :

le hairpinning décrit une communication entre deux machines placées derrière le même routeur NAT qui utilisent l’adresse IP de leurs points de sorties pour communiquer. Tous les mécanismes de NAT ne supportent pas cette configuration de communication.

Et donc soit vous avez un router évolué qui permet de définir une règle pour éviter ce problème (ce qui n’est pas le cas du router de box Orange), soit le plus simple est d’utiliser un serveur DNS local.

Or il se trouve que j’ai installé il y a peu un serveur Pihole sur mon Raspberry. J’avais fait ça pour le fun (ou presque), mais finalement cela va m’être très utile, puisque Pihole fait office de serveur DNS. Il me suffit alors de définir deux entrées pour mes deux enregistrements DNS :

Et voilà ! Après un rechargement de la page, Nextcloud s’affiche enfin correctement dans le PC et je peux finaliser l’installation ! 😎

Pour être complet, j’ai bien entendu eu le même problème avec le smartphone et l’application android Nextcloud. Sauf que là, quand j’ai voulu passer ma connexion wifi en mode « statique » (au lieu de DHCP) afin de définir mon propre DNS, cela ne fonctionnait toujours pas. Je n’ai pas creusé plus que ça, j’ai installé Blokada, ajouté mon propre DNS avec mon serveur Pihole en primaire, et celui de Google en secondaire, pour quand je suis en extérieur. Ça a l’air de bien fonctionner comme ça.

Conclusion

Cette installation n’aura pas été facile. Elle aurait pu l’être sans ce problème de NAT, qui m’a bien pris la tête. Comme toujours, à force de réinstaller, de tester, regarder les logs de docker, j’ai appris plein de choses (comme des commandes ‘docker’). C’est donc bénéfique globalement.

Et maintenant, j’ai un Nextcloud dernière version qui tourne sur une machine suffisamment puissante. Contrairement à ma baie Synology qui manque singulièrement de puissance CPU, et sur laquelle installer Nextcloud est une plaie.

C’est d’ailleurs la raison principale de ce changement de NAS : passer sur un système open-source, afin d’avoir un choix plus vaste de logiciels.

Il me reste maintenant à penser à la sauvegarde de tout ça (car je n’ai plus de RAID sur mon Odroid-HC2 !). Et puis ce sera le tour d’un client Open VPN, chose que je ne pouvais tout simplement pas installer sur la baie Synology.

31 réflexions sur « Openmediavault : Installation de Nextcloud »

  1. Merci j’ai finalement réussi à faire fonctionner Nextcloud et l’accès à distance avec ton tutoriel.

    J’essaie d’ajouter un stockage externe, mais je n’ai pas l’autorisation de les configurer. Est-ce que tu as une solution? J’ai du utiliser le compte admin pour Nextcloud, c’était la seul façon pour que ça fonctionne. Est-ce que le fait que mon installation soit fait avec un compte utilisateur y est pour quelque chose? Je sais que c’est un histoire de droit, mais j’ai atteint la limite de mes compétences!

    Si tu as une idée, je suis preneur!

    Merci encore pour le tutorial.

    1. Bonjour Rémi,
      À priori, il faut :
      – que ton disque soit vu et monté dans Openmediavault (menu Disques puis Système de fichiers).
      – ensuite dans Nextcloud, tu cliques sur ton icône en haut à droite, tu choisis Applications, et tu installes « External Storage Support ». Là tu dois voir ce menu disponible dans Nextcloud, mais pas de disques dispo.
      – Reste à te logguer en ssh sur la machine, et faire un « sudo chown -R user:group /chemin/nouveau/disque ». Le chemin du disque, tu le trouves dans OMV, Système de fichiers, Point de montage (il faut afficher la colonne). Le « user:group », à priori, c’est celui que tu as utilisé pendant l’installation de Nextcloud. Le mieux est de regarder le dossier data que tu as déclaré pendant l’installation, et d’appliquer les mêmes droits (propriétaire/groupe/permissions). Ensuite faire un « sudo chmod -R 0750 /chemin/nouveau/disque » pour les permissions.
      – Retour dans Nextcloud, External Disk, et ajout d’un stockage externe, où tu choisis un nom de dossier, etc… (en mettant le chemin de ton disque comme précédemment).
      – Enfin, tu peux ensuite dans OMV – Dossiers partagés, ajouter un dossier qui pointe sur ce disque, puis le partager sur le réseau (SMB, NFS…), pour faciliter la copie de fichiers via le réseau.
      Voilà… Je n’ai pas eu à le faire pour l’instant, mais j’ai trouvé les explications ici (anglais) :
      https://www.youtube.com/watch?v=zZ_j2C16aKM

      1. Bonjour Pascal,

        Merci pour la réponse… Je vais regarder aussi les explications. Je sais que j’ai un enjeu de droits. C’est là que je me dis que j’aurais dû apprendre l’information plus jeune!

        Merci encore pour le tuto, c’est avec tes explications que je suis arrivé à avoir mon accès à distance sécurisé!

          1. C’est exactement ce que j’ai fait et j’ai réglé mon problème de droits…
            Pour monter un disque externe, c’est que je voulais rendre disponible un disque déjà monter… (avec déjà des droits existants, ça là que tout est allé de travers). J’ai réussi à rétablir mes droits pour que mes accès SAMBA et NFS refonctionne bien. Je vais ralentir un peu et prendre le temps de bien apprendre. Merci.

        1. Bonjour Rémi,
          As-tu réussi à installer ton disque dur externe dans Nextcloud ?
          Pour ma part je n’y arrive pas, il n’y a aucun message d’erreur, juste un point d’exclamation rouge.

  2. Bonjour,
    Merci pour votre tuto.
    Je suis coincé.
    J’ai réussi à atterrir sur la page de configuration nextcloud. Par contre après je pars en time out….

    Est ce que vous pouvez m’aider SVP.

    Cordialement.

    1. Là comme ça, c’est compliqué. As-tu bien rempli la page correctement ? Recharge bien la page et/ou vide le cache du navigateur… Relance le container nextcloud, regarde ses logs. Sinon, il aller regarder les logs de nextcloud.

  3. Bonjour,

    J’ai bricolé une bécane sur une planche avec 8 DD. Pour faire tourner tout ça j’ai installé la dernière version OMV, seulement voilà, Docker a disparu de cette version, ne connaissant pas grand choses sur le monde Linux et Co, comment faut-il procéder pour installer la baleine bleue et le petit nuage ?

    Merci de votre retour,

    Cordialement

    1. Cet article est consacré à l’installation de Nextcloud, ta question serait mieux placée dans l’article concernant l’installation de OMV.
      Ceci dit, Docker n’a pas « disparu » d’OMV, je te conseille donc de lire la documentation correspondant à l’architecture de ta machine, ou d’aller voir cette page : https://wiki.omv-extras.org/, puisque docker fait partie d’omv-extras dans sa version 5. Je suppose que c’est cette partie que tu n’as pas installée…

      1. Bonsoir,

        D’accord je comprends mieux, je n’ai pas installé la bonne version en fait. Pourtant c’est la dernière fournit sur leur site.

        Je vais suivre les infos du wiki, merci pour t’a réponse.

        Cordialement

  4. Bonjour !
    Tout d’abord merci bcp et bravo pour le tuto très clair !
    Je suis totalement néophyte et découvre depuis peu le monde de Linux et d’OMV. J’apprends donc totalement sur le tas et de manière aléatoire.. J’ai pas forcément toutes les bases.

    J’ai moi aussi installé une première fois Nextcloud sur OMV. Tout fonctionnait parfaitement mais j’ai du tout recommencer – j’ai eu quelques petits soucis de stockage, réglés depuis, mais il a fallu recommencer toute l’installation d’OMV et de mes containers Docker.

    Bref, je recommence l’installation de Nextcloud en suivant le tuto de Technodad Life et là, impossible d’accéder à Nextcloud. Je tombe à chaque fois sur une page « Echec de la connexion sécurisée, une erreur est survenue pendant une connexion à nextcloud.****.duckdns.org.

    Côté Swag les logs m’indiquent : ‘server ready’

    Côté Nextcloud j’ai :

    ‘PHP Fatal error: Uncaught Error: Call to a member function getLogger() on null in /config/www/nextcloud/cron.php:162
    Stack trace:’

    Une petite idée sur le sujet peut-être ?
    Merci d’avance =)

    1. Bonjour Martin,
      Le message nextcloud, je ne pense pas qu’il y ait grand chose à en tirer. Ça « crashe », à part ça… Dans les logs swag, remonte un peu depuis le début et vérifie que tu obtiens bien ton certificat.
      Sinon, puisque tu l’as déjà installé et que tout fonctionnait, tu devrais repartir de zéro (c’est l’avantage avec docker). Efface les containers, ainsi que les répertoires (le volume config) genre Appdata/Nextcloud, afin de bien repartir de zéro. Vérifies toutes tes variables, une erreur est vite arrivée (puid, guid, etc..). Concernant duckdns.org, vrifies bien que tout est OK de ce côté. Ensuite relance la création des containers, le soft devrait être retéléchargé, c’est toujours mieux. Vérifie aussi ce que tu modifies dans le fichier config.php de nextcloud, c’est primordial pour pouvoir accéder à ton serveur.
      Voilà, sinon regarde bien les logs, ceux de docker (voir commandes dans l’article : sudo docker logs -f swag, sudo docker logs -f nextcloud), mais aussi ceux de nextcloud : si tu vas dans AppData/Nextcloud ou l’emplacement que tu as choisi pour le volume ‘config’), tu trouveras les logs suivants :
      ./config/log/nginx/access.log
      ./config/log/nginx/error.log
      ./config/log/php/error.log
      ./log/nginx/access.log
      ./log/nginx/error.log
      ./log/php/error.log
      ./data/nextcloud.log
      Voilà, j’espère que cela va t’aider.

      1. Bon finalement j’ai (enfin) réussi à installer Nextcloud. Après moult vérifications, tentatives d’installation, re-tentatives, re-re-tentatives, j’ai finalement laissé tomber l’installation Nextcloud suivant ton schéma et celui de TechnoDadLife et j’ai opté pour celui proposé par DB Tech en passant par le Docker compose.

        Pour ceux que ça intéressent, le lien de la vidéo YT (eng) –> https://www.youtube.com/watch?v=4GQ0alIdm7I

        Je pense que le problème devait venir soit d’un hairpinning soit du DNS, soit du subdomain car dans cette méthode pas besoin du sous-domaine nextcloud.*

        En tout cas merci de ton aide qui m’a tout de même bien orientée dans mes recherches ! Thanks !

  5. Hello Pascal,

    Merci pour ce tuto très bien fait.
    J’ai suivi scrupuleusement toute les étapes et ne parvient pas à accéder à nextcloud. Lorsque je tape mon ip où mon l’url de mon domain je tombe sur le message de bienvenue de swag « Welcome to your SWAG instance ».

    Les logs de nextcloud et swag sont ok. Evidemment j’ai testé de mon mobile en 4G et j’ai le même message.

    Aurais-tu une idée ?

    Merci

  6. Finalement, je suis allé questionner sur discord et en fait le problème venait de mon sous domaine qui était « next » et pas « nextcloud ». il y a donc deux possibilités pour le résoudre :
    1- Changer le sous domaine en nextcloud
    2- Editer le fichier nextcloud.subdomain.conf et changer le paramètre « server_name ».
    Si ça peut servir à quelqu’un…

    encore merci pour ce super tuto.

  7. Bonsoir Pascal,
    Tuto très intéressant que je viens de lire en cherchant des idées, des infos etc…!!!

    Pour ma part je me permet simplement de te poser une question simple à laquelle je n’ai pour l’instant pas trouvé de réponse, alors je me dis que peut-être toi tu peux y répondre.
    La voici: est-il possible d’installer OMV sur raspberry Pi 4 (version 8go RAM) avec un Nextcloud et un Plex.

    Mon projet est de faire de mon Pi4 (qui boot en SSD M.2 Sata) un serveur Cloud et un serveur Plex en même temps.
    Nextcloud afin de m’affranchir des solutions GAFA pour synchroniser principalement photos et vidéos prises depuis les smartphones familiaux.
    Plex pour avoir une plateforme multimédia perso en ligne avec des vidéos lisibles de n’importe où.
    Et si possible savoir si il est possible que Plex puisse accéder au dossier des vidéos synchronisées avec Nexcloud pour que n’importe quel appareil (via application client Plex) puisse lire ces vidéos.

    Si tu peux m’éclairer un peu, ça serait gentil de ta part.

  8. Bonjour Fabrice,
    Rien ne t’empêche de faire ce que tu souhaites. Techniquement, tu peux installe OMV sur un Rasp4, et y faire tourner Plex et Nextcloud. Après, le Raspberry a un principal inconvénient : il n’a pas de contrôleur disque a proprement parler, juste des ports USB. Tu peux lire mon article sur l’installation d’OMV sur mon Odroid-hc2 : j’y explique que j’avais d’abord pensé à un Raspberry 4, mais que j’ai finalement choisi l’odroid principalement pour cette raison. Et tu y trouveras les liens pour installer OMV sur le RAspberry, puisque c’est une architecture armv7l.
    – Alors tu peux mettre des disques USB sans problème, et même utiliser une baie disques (voir cette vidéo en anglais) si tu comptes utiliser plusieurs disques. L’avantage ici est que la baie (le dock) a sa propre alimentation pour les disques ; c’est un point important à considérer pour le Raspberry : choisit bien l’alimentation recommandée en ampérage pour être capable d’alimenter un disque USB en direct si c’est ta config. Dans la vidéo, le type mentionne d’ailleurs qu’il a testé un adaptateur USB/SATA pour pouvoir connecter un HD classique, et qu’il a eu des problèmes sans doute liés à l’alimentation.
    – Enfin, il y a une limitation dans le décodage vidéo qu’il faut connaître avant de se lancer, si tu souhaites regarder des vidéos 4K ou UltraHD. Théoriquement c’est possible, mais cela reste à prouver, voir cet article. Pour le FullHD ou 1080p, aucun problème par contre. Et au pire, pour le 4K, il te reste la solution DLNA/Upnp, voir cet article.
    Voilà ce que je peux te dire, creuse ces points là si tu veux… Sinon, fonce, ces petites bêtes sont vraiment géniales, on peut faire plein de choses avec ! 😉

    1. Bonjour Pascal et merci pour ta réponse rapide.
      J’utilise un boitier Argon One M.2 qui inclus un contrôleur sata au format M.2.
      Je viens de recevoir tout alors je vais rester sur le Pi4 en version 8go RAM et si la 4K passe mal au pire c’est pas très grave, l’utilisation se fera principalement sur smartphone.
      Je suis curieux de ce que je peux faire avec DLNA/Upnp, et de comment le mettre en place.

      1. Pour DLNA/uPnP, c’est très facile à mettre en place, tu vas trouver plein de tutos sur le net, avec des solutions plus ou moins lourdes… C’est juste moins sophistiqué que Plex (notamment la reprise sur arrêt bien pratique), mais disons que c’est fonctionnel ! ;). et la TV détectera automatiquement la nouvelle source disponible (à côté de HDMIx, HDMIy, etc…).

        1. J’avais pensé à Plex car les applications client sont dispo sur ma TV, ma Playstation et sur smartphone.
          De cette manière j’aurais pu accéder au serveur depuis toutes ces plateformes.
          Merci pour ces précisions 😉

          J’ai commencé installer RPi OS Lite sur une carte pour pouvoir accéder au Pi4 en réseau et lui mettre à jour l’eeprom afin de pouvoir l’autoriser à booter sur USB.
          Je vais pouvoir me lancer à installer RPi OS Lite sur le SSD M.2 sata du boitier Argon.
          Ensuite installer OMV, puis Nextcloud et Plex.
          J’espère que tout va bien se passer, je croise les doigts mais je risque d’avoir des difficultés au moment de créer les dossiers, les autorisations etc…
          On verra bien

  9. Bonjour Pascal,

    Très bon tuto, il m’a permis éclaircir pas mal de chose sur le fonctionnement de docker, mais… j’ai un soucis, je suis chez OVH, j’ai donc un domaine http://www.yyy.fr, dessus j’y ai créé un dynhost omv.yyy.fr , mais en suivant ton tuto je me suis aperçu que je faisais surement une boulette concernant swag, sur le proxy_conf.. en faite ai-je vraiment besoin d’utiliser un CNAME ?

    Bon je doute que mon problème vienne de la, j’ai la page de config de swag qui s’affiche en tapant nextcloud.omv.yyy.fr
    et je n’arrive pas à le résoudre, je sèche vraiment, aurais-tu une solution ?

    Merci a toi et encore bravo pour ce tuto, quand ça sera fonctionnel chez moi, je pourrais continuer mon projet 😉

    Merci et bonne soirée

    1. Bonjour Chris,
      Je ne maîtrise pas cette partie DNS dont le principe est simple mais qui peut se révéler complexe, alors je me suis fié à la documentation de swag : il te faut un A record qui pointe sur l’adresse IP. Et ensuite autant de CNAME que tu veux, qui pointeront sur la A record défini précédemment. C’est typiquement dans le cas où tu veux faire pointer plusieurs noms (yyy.fr + www.yyyy.fr par exemple) sur le même A record. Cela permet aussi de s’affranchir de l’adresse IP, si elle change, tu n’as qu’à changer le A record, le reste suivra.
      Dans mon cas, j’ai utilisé un sous-domaine pour nextcloud. Cela semble bien être ce que tu fais. Donc tu dois bien créer un CNAME nextcloud.omv.yyy.fr qui va pointer vers le A record que tu as créé (omv.yyy.fr). Sinon comment veux-tu que nextcloud.omv.yyy.fr soit résolu ?
      Vérifies bien avec une commande nslookup que tu pointes bien sur la bonne IP. Ensuite que le port 443 (ou celui que tu as choisi) est bien ouvert. À partir de là, ça doit fonctionner.
      Reste effectivement les fichiers de config : pour swag, c’est simple, il suffit d’activer le ‘sample’ pour nextcloud fourni. Après le fichier config.php de Nextcloud est de loin le plus complexe. La moindre erreur à ce niveau et tu n’accèderas pas à la page de Nextcloud. Regardes bien la page de swag et tous les explications/exemples fournis… Et au pire, vas faire un tour sur leur forum Discord, quelqu’un t’aidera à finaliser l’installation, comme j’ai du le faire !
      Courage, c’est la dernière étape !

      1. Salut pascal,

        En faite (étant une personne qui ne lâche rien), j’ai résolu mon problème, ça venait du proxy.conf… mon adresse ne commence pas par nextcloud… server_name à resolu mon soucis… mai j’en ai un nouveau… une erreur interne… il ne peut executer ma requette… une idée ? voici le message :

        « Le serveur est incapable d’exécuter votre requête.

        Si cela se reproduit, veuillez envoyer les détails techniques ci-dessous à l’administrateur du serveur.

        Le fichier journal du serveur peut fournir plus de renseignements.
        Renseignements techniques

        Adresse distante : xxxxxxxxxxxxxxx
        ID de la demande : fc4EbLum2TpUoioR3n0k »

        Merci à toi

  10. Bonjour Pascal,

    Donc je reviens vers toi pour te dire que depuis notre dernière conversation, tout fonctionne (c’était une erreur de ma part sur le server_name), enfin c’est réglé et opérationnel grâce à ton tuto super bien fait, concernant ta livebox et ton soucis de NAT hairpinning, quelle version de livebox as-tu ? car il y a une chose à savoir, la livebox play ne gère pas le loopback, j’ai connu ce soucis il y a longtment et l’ai résolu en passant à la livebox 4 qui est beaucoup mieux. Car je n’ai pas eu besoin de pihole pour que cela fonction.
    Cependant, as-tu essayé d’installer un serveur collabora ? j’ai fais plein d’essai mais aucun ne fonctionne naturellement 🙂 … si tu as des pistes je suis preneur, en docker évidemment avec un sous domaine de type https://collabora.mon-sous-domaine.mon-domaine.com.

    Merci encore pour ton tuto, vraiment super

    Christian

    1. Christian,
      Merci pour les infos Livebox, c’est toujours bon à savoir. Effectivement, j’ai encore la Livebox Play, mais si je veux la 4, je paie 20€ de plus mon forfait mobile+internet ! Donc je reste comme ça pour l’instant ! 😉
      Concernant Collabora, non je ne l’ai pas installé, j’ai vu cette page, ça n’a pas l’air simple, tu trouveras sans doute de l’aide sur les forums Nextcloud comme indiqué en bas de la page.
      Bon courage !

  11. Salut Pascal,

    Effectivement c’est pas simple, j’ai testé plusieurs solutions mais je dois encore merder quelque part 🙂 , je vais me renseigner sur le forum Nextcloud pour pouvoir mettre en place un stacks pour faciliter l’installation car ça a l’air sympas comme truc… bon mon prolian G3 ml110 va vite être limite en ressource, va falloir que j’innove…

    Je reviens vers toi si cela t’intéresse,

    Bonne journée,

    Christian

  12. Bonjour, je ne comprend pas l’étape pour résoudre le souci de la box Orange.
    J’utilise aussi pihole sur un raspberrypi en temps que dns et dhcp, mais je ne comprend pas ce que vous declarer comme DNS ni où vous le faites.

    Pour mon nom de domaine j’utilise Cloudflare, j’y ai un enregistrement A qui redirige mon nom de domaine ainsi que mon sous domaine Nextcloud vers mon adresse IP.

    Que dois-je faire ensuite ?
    Faut-il changer le nom d’hote sur notre machine ? car je peux acceder à Nextcloud depuis mon réseau local avec le nom de la machine.

    1. Bonjour,
      Une fois le serveur accessible par l’extérieur (on peut le vérifier facilement avec le smartphone wifi coupé), il ne reste plus qu’à définir dans Pihole les enregistrements DNS pour éviter le problème du hairpinning. Comme Pihole est le DNS, on va lui dire que pour les noms de domaine qui nous intéressent, l’adresse IP est l’adresse du réseau local. De cette manière, on reste du « bon côté de la box ».

      J’ai modifié les screenshots dans la partie NAT Hairpinning pour mieux montrer où et comment on rentre ces informations dans Pihole.

Répondre à pascal Annuler la réponse

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