Installer do•doc sur un NAS Synology

SOMMAIRE :
1. Introduction
2. Installation simplifiée
3. Installation complète
4. Accès à do•doc depuis l’extérieur

1 - INTRODUCTION

Ce tutoriel explique comment installer do•doc sur un NAS Synology.
On ne peut pas installer directement do•doc sur ce type de NAS. Il faudrait pour cela un paquet compatible Synology.
Par contre, comme do•doc est compatible Linux et notamment Ubuntu, on va utiliser un « intermédiaire » entre le NAS et Ubuntu : Docker.
Pour en savoir plus sur Docker sur Synology, vous pouvez consulter ce tuto.
Pour résumer, Docker est un système de virtualisation « léger ».

Il faut d’abord vous assurer que votre NAS Synology est compatible Docker, pour cela il suffit de consulter la liste des paquets disponibles dans le gestionnaire de paquets : si le paquet Docker est affiché, c’est OK (il faut un NAS avec processeur Intel : série + en général)
En fonction de l’usage de votre NAS, il sera peut être nécessaire d’installer de la RAM supplémentaire (4 Go devrait suffire) . Voir ce tuto.
.
On installe donc le paquet Docker.
Il y a ensuite 2 possibilités d’installation décrites ci-dessous.

Remarque importante :
Le démarrage automatique de do•doc au lancement du conteneur (pm2 startup , pm2 save, …) ne fonctionne pas pour l’instant avec cette configuration. Il faudrait investiguer sur ce sujet.
A chaque démarrage du NAS et/ou du conteneur, il faut lancer manuellement do•doc.

2 - INSTALLATION SIMPLIFIEE

Ce premier type d’installation prévoit de récupérer une image d’un conteneur nommé ubuntu-dodoc-hosts-22-02-2021 déjà paramétré et prêt à l’emploi.
(j’ai utilisé la version de développement dodoc2-dev-node)
On va télécharger ce conteneur (780 Mo) dans cet emplacement et on l’enregistre dans un dossier du NAS, par exemple le répertoire Docker.

Ouvrez Docker et dans la rubrique Conteneur, et choisir dans Paramètres : Importer.

Choisissez le fichier ubuntu-dodoc-hosts-22-02-2021.syno.txz préalablement téléchargé dans un des dossier du NAS.
Après quelques instants, le conteneur ubuntu-dodoc-hosts-22-02-2021 apparait dans la liste.
Faite 1 clic droit sur ce conteneur et sélectionner Modifier.
La fenêtre ci-dessous s’affiche :

Sélectionnez ensuite l’onglet Volume puis « Ajoutez un dossier » :

3-ajouter volume_NAS

Sélectionnez un dossier de votre NAS où seront stocker les données do•doc.

Puis dans la rubrique « Chemin d’accès », vous saisissez : « /root/Documents » et cliquez sur Appliquer.

Faites ensuite 1 clic droit sur le conteneur et sélectionner Action > Détails :

Lancez le conteneur en cliquant sur Démarrer Puis vous sélectionnez l’onglet Terminal :

Vous êtes connecté en root au serveur ubuntu et vous pouvez saisir les 2 commandes :
cd /home/dodoc
pm2 start npm --name « dodoc » – run start

Vous pouvez maintenant vous connecter à do•doc en saisissant dans votre navigateur : https://-IP du NAS-:8080

REMARQUE IMPORTANTE :

Si vous consultez le dossier Docker > dossiers_dodoc, vous verrez le répertoire « projets_dodoc2 » qui contiendra les données do•doc :

En effet, dans cette configuration, j’ai modifié un paramètre du fichier settings.json comme suit :

3 - INSTALLATION COMPLÈTE

Dans Docker, allez dans la rubrique Registre et tapez dans la barre de recherche en haut « ubuntu ».
Sélectionnez la première image « ubuntu » et « Télécharger »

Un fenêtre s’ouvre, sélectionnez « latest » (dernière version) puis cliquez sur « Sélectionnez »

12-choix-version-ubuntu

Dans la rubrique « Images » de Docker, sélectionnez l’image « ubuntu:latest » et dans le menu en haut on sélectionne « Lancer »

Le menu suivant s’affiche :

On peut personnalisé le nom du conteneur avec par exemple « ubuntu-dodoc »
Sélectionnez « Activer la limitation des ressources » / priorité des processeurs « Moyen » / limite de mémoire « 1024 MB »
Cliquez ensuite sur paramètres avancés et le menu ci dessous s’affiche :

Sélectionnez « Activer le redémarrage automatique » puis cliquez sur l’onglet « Volume » puis « Ajouter un dossier » : le menu ci-dessous s’affiche et on sélectionne un dossier du NAS (existant ou à créer) :

15-ajouter volume_NAS

Sous l’intitulé « Chemin d’accès » saisissez : « /root/Documents »

Cette opération consiste à rendre persistantes, c’est-à-dire à stocker dans un dossier du NAS, les données générées par do•doc.

Allez ensuite sur l’onglet « Réseau » et sélectionnez « Utilisez le même réseau que Docker Host » et cliquez sur « Appliquer ».

Avec cette option cochée, le serveur Ubuntu aura la même adresse IP que le NAS et sera joignable par < IP_NAS > : 8080.

Si on ne coche cette case, le conteneur sera en mode bridge avec une IP interne du genre 172.17.xx.xx
Dans ce cas, do•doc fonctionnera normalement et sera toujours joignable par -IP_NAS- : 8080, mais quand on sélectionnera « Accès depuis d’autres appareils » c’est l’IP interne 172.17…. qui s’affichera dans le pop-up, et qui sera injoignable dans ce cas.

Cliquez ensuite sur « Appliquer », on revient dans le pop-up précédent et on clique sur « Suivant »
Un résumé s’affiche et on clique sur « Appliquer » :

Le container se crée, allez ensuite dans le menu « Conteneur » de Docker et faites un clic droit puis « Détails » sur le container « ubuntu-dodoc » qui a du normalement démarré.

La fenêtre suivante s’affiche :

Cliquez ensuite sur l’onglet « Terminal » :

On est maintenant en mode terminal avec le compte root sur notre serveur Ubuntu.
Revenez ensuite au tuto « Installer do•doc sur un serveur dédié » et suivez les différentes étapes que j’ai résumé ci-dessous.
Cette version Ubuntu est minimaliste et il faut donc installer en plus les paquets wget et nano.
Les 2 premières lignes ne sont pas nécessaires, normalement, quand on déclare les volumes pendant l’installation, le dossier « Documents » est automatiquement créé.

cd /root
mkdir Documents
apt-get update
apt-get upgrade
apt-get install git-core
apt-get install build-essential libssl-dev
apt-get install wget nano
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
source ~/.bashrc
nvm install 12.18.3
nvm use 12.18.3
nvm alias default 12.18.3
apt-get install python2.7
ln -s /usr/b8pm2 in/python2.7 /usr/bin/python
ln -s /usr/python2.7 /usr/bin/python
apt-get install libx11-xcb1 libxcomposite1 libxi6 libxext6 libxtst6 libnss3 libcups2 libxss1 libxrandr2 libasound2 libpangocairo-1.0-0 libatk1.0-0 libatk-bridge2.0-0 libgtk-3-0
cd /home
git clone https://github.com/l-atelier-des-chercheurs/dodoc.git
cd dodoc
git checkout dodoc2-dev-node
npm install
cd public
npm install
npm run build
cd …
npm run debug
npm install pm2 -g
cd /home/dodoc
pm2 start npm --name « dodoc » – run start

Après avoir saisi les 2 dernières commandes : cd /home/dodoc et pm2 start npm --name « dodoc » – run start l’écran ci-dessous doit s’afficher :

Vous pouvez maintenant vous connecter à do•doc en saisissant dans votre navigateur : https://-IP du NAS-:8080

4 - ACCES A DO•DOC DEPUIS L’EXTERIEUR

Plusieurs méthodes sont possibles pour accéder à un NAS Synology depuis l’extérieur.

J’ai choisi la méthode « Reverse Proxy », relativement simple et sécurisée.
Cette méthode est décrite dans ce tuto.
Elle consiste à n’ouvrir que le port 443 (https) sur votre box/routeur et ensuite à rediriger les requêtes au niveau du NAS vers des applications du NAS ou des équipements du réseau local.
Pour le https, on utilise un certificat Let’s Encrypt qu’on peut maintenant installer sur un NAS Synology. Voir ce tuto.
Si vous ne l’avez pas encore, au moment de la création du certificat (ou de son renouvellement), il faudra ouvrir temporairement le port 80 en entrant sur votre box/routeur.

Ainsi, dans notre cas d’accès à do•doc, on aura par exemple :
https://dodoc.mondomaine.synology.me qui sera redirigé vers https://-IP du NAS-:8080

Dans ce cas, il est fortement conseillé de protégé l’accès à do•doc par un mot de passe comme expliqué dans le tuto https://forum.latelier-des-chercheurs.fr/t/installer-do-doc-sur-un-serveur-dedie/210.

1 « J'aime »

Wouah ! merci beaucoup pour ce tuto, ça a l’air idéal pour une petite structure type fablab ou hackerspace.

Es-tu d’accord pour que je fasse un lien vers ce sujet sur les réseaux sociaux ?

OK pas de pb pour 1 lien vers les réseaux sociaux.

Bonjour @JPA54

petite question en lien avec ton tuto : j’aimerai m’équiper d’un NAS (notamment pour faire tourner les applis en local), aurais-tu un article à me recommander pour bien choisir le modèle ?

Bonjour,

déjà merci pour ce tuto, ça va m’être très utile et nous épargner un investissement dans un VPS chez un hébergeur :slight_smile:

J’ai bien conscience que je déterre un vieux sujet … cependant je ne désespère pas que d’autres sont/seront intéressés pour héberger un DoDoc sur leur NAS.

Est-ce qu’une âme charitable aurait une image d’un conteneur déjà prêt ?
Sinon je devrais m’y intéressé (j’espère que ça ne sera pas trop compliqué / chronophage) et en cas de succès je ne manquerai pas de vous partager tout ça.

Merci ! :smiley:

2 « J'aime »

Bon… après quelques déboires (rien de bien méchant)
(coucou nvm 12.18.3 qui est à remplacer par nvm 16.13.0 :smiley: )

J’ai fini par arriver à l’étape :

npm run debug

sauf que… cela ne fonctionne pas :cry:

[EDIT] Solution dans le message suivant. Je laisse pour les prochains (si vous pensez qu’il vaut mieux laisser uniquement la marche à suivre sans les erreurs, dites moi et j’éditerai pour nettoyer tout ça).

Voici ce que j’ai en retour :

root@ubuntu-dodoc:~/Documents# npm run debug
dodoc@9.3.7-dev debug
node --inspect . --debug --debug --verbose --unhandled-rejections=warn
sh: 1: node: Permission denied

Si quelqu’un a une idée de quoi faire ? Mes petites connaissances me poussent à me dire « permission denied ? mais je suis root, comment ça denied ? » alors voyez… je vais pas aller bien loin ;p

Au passage, je ne sais pas si c’est que j’ai mal compris ou quoi, mais le tuto de ce thread a l’air d’avoir mis les fichiers dans /home, j’ai donc fait ça. Cependant les scripts vont chercher les fichiers dans /root/Documents, j’ai donc fini par les déplacer dans /root/Documents.
Est-ce que mon soucis vient de là ? mon container Docker n’est pas autorisé à utiliser les fichiers dans /root/Documents (sur le NAS) ? Il faut donc qu’ils soient dans /home ? si tel était le cas, cela voudrait dire qu’il faut que je modifie settings_base.json pour y mettre les chemins vers /home ?

A toute fin utile, voici le contenu de mon dossier /root/Documents :

root@ubuntu-dodoc:~/Documents# ls
ConteneursDoDocConfigures LICENSE.md build dist index.js meta.txt package-lock.json public settings.example.json user Infos&LiensUtiles.txt README.md core dodoc-linux-desktop-entry.desktop index.pug node_modules package.json router.js settings_base.json

ConteneursDoDocConfigures est un dossier que j’ai créé pour y mettre mes images de conteneurs que je rendrai disponibles lorsque tout fonctionnera
Infos&LiensUtiles.txt est un fichier texte que j’ai créé pour garder les liens et traces de ce qui m’a débloqué (pour plus tard ou si un collègue doit s’y coller un jour)

j’ai testé de modifier settings_base.json ainsi :

« userDirPath »: « /home/dodoc »,

En fouillant mieux les posts et en cherchant sur internet, j’ai compris d’où venait le soucis. Merci :slight_smile:
Je laisse la suite si d’autres personnes ont le même soucis.

on avance un peu… car maintenant, voilà ce que j’obtiens :

root@ubuntu-dodoc:/home/dodoc# npm run debug

dodoc@9.3.7-dev debug /home/dodoc
node --inspect . --debug --debug --verbose --unhandled-rejections=warn

Debugger listening on ws://127.0.0.1:9229/d0c442f8-db29-414d-a2d2-9954e8a80781
For help, see: Debugging - Getting Started | Node.js
INDEX / didn’t find override settings
internal/modules/cjs/loader.js:1122
return process.dlopen(module, path.toNamespacedPath(filename));
^
Error: The module ‹ /home/dodoc/node_modules/canvas/build/Release/canvas.node ›
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 83. Please try re-compiling or re-installing
the module (for instance, using npm rebuild or npm install).
at Object.Module._extensions…node (internal/modules/cjs/loader.js:1122:18)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object. (/home/dodoc/node_modules/canvas/lib/bindings.js:3:18)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions…js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! dodoc@9.3.7-dev debug: node --inspect . --debug --debug --verbose --unhandled-rejections=warn
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the dodoc@9.3.7-dev debug script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2023-10-29T00_39_35_434Z-debug.log

Si je dis pas de bêtise il a l’air de dire que la version de node avec laquelle j’ai build est pas la bonne ?
Est-ce que cela vient du fait que j’ai dû utiliser nvm 14 pour le build dans /public ?

[EDIT] Problème résolu avec les deux commandes ci-dessous :

root@ubuntu-dodoc:/home/dodoc# rm -rf node_modules/ package-lock.json
root@ubuntu-dodoc:/home/dodoc# npm i

J’avais suivi le tuto, et donc installé nvm 12 puis m’étais rendu compte qu’il fallait maintenant utiliser nvm 16 sauf que… j’ai oublié de faire le nvm use 16 avant de lancer npm install… il avait donc créé les dossiers etc avec nvm 12. En revanche, il faut toujours que je j’utilise nvm 14 dans /public pour npm install… après tout… cela fonctionne alors pas de soucis.
[FIN EDIT]

En effet, voilà ce qu’il s’est passé :

root@ubuntu-dodoc:/home/dodoc/public# npm install
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‹ webrtc-adapter@1.4.0 ›,
npm WARN EBADENGINE required: { npm: ‹ ~3.0.0 › },
npm WARN EBADENGINE current: { node: ‹ v16.13.0 ›, npm: ‹ 8.1.0 › }
npm WARN EBADENGINE }

up to date, audited 1433 packages in 42s

28 packages are looking for funding
run npm fund for details

126 vulnerabilities (56 moderate, 57 high, 13 critical)

To address issues that do not require attention, run:
npm audit fix

To address all issues possible (including breaking changes), run:
npm audit fix --force

Some issues need review, and may require choosing
a different dependency.

Run npm audit for details.
root@ubuntu-dodoc:/home/dodoc/public# npm run build

dodoc2@0.1.0 build
cross-env NODE_ENV=production browserify -g envify -e src/main.js | uglifyjs -c warnings=false -m > dist/build.js

Error: Missing binding /home/dodoc/public/node_modules/node-sass/vendor/linux-x64-93/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 16.x

Found bindings for the following environments:

  • OS X 64-bit with Node.js 16.x
  • Linux 64-bit with Node.js 14.x
    This usually happens because your environment has changed since running npm install.
    Run npm rebuild node-sass to download the binding for your current environment. while parsing file: /home/dodoc/public/src/vue/components/subcomponents/DateField.vue
    at module.exports (/home/dodoc/public/node_modules/node-sass/lib/binding.js:15:13)
    at Object. (/home/dodoc/public/node_modules/node-sass/lib/index.js:13:35)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions…js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at module.exports (/home/dodoc/public/node_modules/vueify/lib/compilers/sass.js:7:14)
    at /home/dodoc/public/node_modules/vueify/lib/compiler.js:297:7

root@ubuntu-dodoc:/home/dodoc/public# nvm use 14

Now using node v14.15.0 (npm v6.14.8)
root@ubuntu-dodoc:/home/dodoc/public# npm run build

dodoc2@0.1.0 build /home/dodoc/public
cross-env NODE_ENV=production browserify -g envify -e src/main.js | uglifyjs -c warnings=false -m > dist/build.js

root@ubuntu-dodoc:/home/dodoc/public#

Hello !

merci pour les messages et le détail, je ne doute pas que ça sera utile à d’autres personnes qui rencontrent les même difficultés :slight_smile:
À vrai dire j’aurai tendance à recommander d’installer la version 10 même si elle n’est pas finalisée, parce qu’elle utilise des dépendances qui sont beaucoup plus à jour que la v9 – donc moins de soucis à l’installation et de risques de bug/failles car dépendances anciennes.

Ensuite, une autre info : tout ce qui se passe dans /public n’a aucun impact sur le dodoc partie « server ». Dodoc est vraiment pensé en deux entités : la partie serveur, qui synchronise les utilisateurs et stocke les contenus (dossier principal) et la partie client qui contient les fichiers envoyés lorsqu’on s’y connecte (dossier /public).
Si on lance dodoc depuis le dossier principale après un npm install sans avoir fabriqué les fichier « client », ça devrait bien démarrer – mais une page blanche s’affichera. En affichant le code source de la page tu devrais voir qu’elle n’est pas vide, c’est juste l’interface qui n’est pas chargée (vu que c’est dans /public que le code qui construit l’interface se trouve).

Sur les permissions, c’est tout à fait possible que le soucis vienne de la création du dossier de contenu, par défaut dans /Documents. Dans dodoc 9 il n’est pas possible de stocker les documents utilisateurs ailleurs que dans /Documents – il est juste possible de changer le nom du sous-dossier pour pouvoir faire tourner plusieurs instances en parallèle : /Documents/dodoc-fablab, /Documents/dodoc-perso, etc.

Dans dodoc 10, en modifiant la variable contentPath qui est dans settings_base.json (ou mieux, en créant une copie de settings.example.json et en renommant cette copie settings.json, histoire de pas toucher à un fichier source qui peut changer en cas de mise à jour), il est possible d’indiquer le chemin complet du dossier de contenu en démarrant par /
Exemple sur le serveur qui héberge https://test10.dodoc.fr/ , voici le contenu de settings.json :

{
  "contentPath": "/mnt/volume_fra1_01/dodoc_next",
}

Ici j’utilise un autre volume pour stocker les contenus – il s’agit de « block storage », qui est moins cher que du stockage sur le serveur en lui même.

Enfin, pour ce soucis :
The module ‹ /home/dodoc/node_modules/canvas/build/Release/canvas.node ›
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 83.

Si npm install a été fait avec les mauvaises versions de node, ne pas hésiter à rm -rf node_modules pour les réinstaller proprement.
Ce que tu fais dans /public n’importe pas, si ça compile avec la node 14 (ce qui m’étonne pas) tant mieux :slight_smile:

AAAH mais attends… utiliser la branche dev-node ne veut pas dire que j’ai pris DoDoc 10 ???

Ben mince alors ! :open_mouth:

C’est un autre lien git qu’il faut que j’utilise du coup ? (et que je recommence tout ? xD) Ou bien il suffit que j’utilise dodoc2-next-node via git ?

Ben… c’est zuper ça ! :melting_face:
Remarque… je me serai entrainé comme ça, faut voir le positif ! :relieved:

Pour ce qui est des dossiers, au final cela me convient très bien d’avoir séparé.
En effet, les fichiers de config du server ubuntu sont dans le container Docker, tandis que les fichiers / projets du DoDoc sont sur un dossier du NAS. NAS qui a une sauvegarde automatique quotidienne sur un second NAS dans un autre bâtiment. Et cela me permettra de faire des images de container sans les projets de mon DoDoc pour les prochains aventuriers DoDoc Synology ;p

Haaaa zut désolé si c’était pas clair (y a pas vraiment de doc en même temps, c’est ma faute…).

dodoc 10 = les branches qui contiennent next dans leur nom.
Du coup si tu veux installer dodoc pour un NAS ou un server dédié en ligne → dodoc2-next-node.

Il n’y a plus de dossier /public mais un dossier /client, et plus besoin d’installer ses dépendances et de faire npm run build (j’embarque les fichiers buildés directement pour simplifier l’installation).

Du coup : git checkout dodoc2-next-node
nvm use
npm i
cp settings.example.json settings.json
nano settings.json
Modifier pour y mettre la ligne contentPath indiqué précédemment avec le chemin qui va bien.
Puis lancer avec npm run start (et si ça se lance pas bien, npm run debug pour avoir plus d’infos).

EDIT : donc tu peux repartir du même dossier ou tu as cloné dodoc. Possible que tu ne puisses pas checkout si tu as modifié certains fichiers, dans ce cas un git reset --hard permet de supprimer tes changements et de pouvoir checkout une autre branche :slight_smile:

Parfait merci bcp !

Et bien cela n’a pris que quelques minutes !
Je testerai tout ça demain une fois au boulot.

Et si tout va bien, j’uploaderai mon container dans la foulée.

Bonne fin de weekend ! :wink:

1 « J'aime »

Chose promise chose due :

Voici mon container Dodoc10 pour Docker sur NAS Synology ! :wink:

LIEN DE TELECHARGEMENT (1.8Go)

Je n’ai pas encore réussi la manip de reverse proxy malgré pas mal d’essais… va falloir que je creuse le sujet.
Mais déjà, en local ça fonctionne à merveille ! :smiley:

3 « J'aime »

Hello,

je passe juste pour dire qu’au final, j’ai trouvé comment rendre accessible en ligne le DoDoc.

Le soucis venait du fait que je pensais que le site était sur le port 80… cependant c’est le 8080.
une fois bien paramétré dans le NAT/PAT sur ma box… nickel.

Pour ce qui est du certificat SSL pour le HTTPS. J’ai suivi la procédure pour faire un certificat sur le NAS, cependant cela ne réglait pas le problème.
En effet, le certificat est créé sur le NAS et non pas dans le container Docker donc le site n’y a pas accès.
J’ai donc fait un export du certificat créé sur le NAS que j’ai placé dans le dossier sur le NAS auquel le container a accès.

Puis j’ai modifié mon settings.json pour y ajouter les lignes

"privateKeyPath": "/root/Documents/dodoc10/certificat_ssl/privkey.pem", 
"certificatePath": "/root/Documents/dodoc10/certificat_ssl/cert.pem",

Depuis, tout fonctionne nickel.

2 « J'aime »

Bonsoir @FabLabEcoCentre, merci pour toutes tes infos, c’est riche !

J’ai réussi à installer dodoc10 dev en mode serveur sur un Raspberry, mais je voudrais tenter ma chance sur le NAS my Cloud EX2 du FacLab numixs, déjà pour permettre plus de connexion simultanées en local, et pour éventuellement envisager une mise en ligne si la hiérarchie m’y autorise. Je ne sais pas si tu as suivi le tuto de 2021 pour V9 ou s’il y a des mises à jour. Je serais curieuse de trouver un tuto détaillé pour m’accompagner pas à pas sur le déploiement sur une version My Cloud. Déjà, est-ce que quelqu’un sait si le container Synology uploadé pourrait fonctionner tel sur notre NAS My Cloud? ou en adaptant des manips? Ou alors il faut que je refasse tout depuis le début parce que c’est très différent? Je me noie dans des tutos et je n’arrive même pas à accéder à l’installation d’app sur mon NAS ! Un tuto check rapide pas à pas de l’installation de Docker et de Dodoc 10 dev serait vraiment utile. Je pourrais contribuer à la mise en forme et l’enrichissement si une bonne âme me met le pied à l’étrier !

Autre question: pour la mise en ligne, @FabLabEcoCentre, comment protèges-tu ton instance des piratages et malwares ? Y a t-il un risque pour le NAS.

Last but not least, tu as du acheter un nom de domaine et si oui comment l’as-tu rattacher à ton NAS? Merci d’être un précurseur et de nous aider à déployer dodoc 10 sans être ingénieur Réseau :slight_smile:

Big up pour tout ce travail à l’Atelier des Chercheurs et à la Communauté ! Merci !!!

1 « J'aime »

Hello !

content de voir que cela peut servir à d’autres :slight_smile:
Je ne connais pas ton système NAS (en cherchant sur internet cela a l’air d’être un NAS WD ?). Sur le mien, un NAS Synology, c’est très simple, il suffit d’aller dans le gestionnaire de paquets et d’installer le paquet « Docker ».
Pour schématiser, c’est un peu comme une machine virtuelle. Ce que tu fais dans un containeur Docker ne peut pas contaminer outre mesure ta machine hôte (en théorie).
Je doute que le container Synology soit plug and play sur ton NAS, mais peut-être que si ?

Je pense qu’il faudra tout refaire.
Deux options :

  1. Il y a également un gestionnaire de paquets ou moyen d’installer un fichier binaire pour profiter d’une « app » Docker avec une interface graphique
  2. Tu as un accès au terminal Linux de ton NAS sur lequel tu vas pouvoir soit installer directement dodoc (ce que je déconseille pour des raisons de sécurité et… en cas de mise à jour ou de boulette de ta part… ça risquerait de ne plus marcher (dodoc… voire pire : ton NAS)) soit plutôt d’installer docker en ligne de commande.

Ensuite, ce n’est pas très compliquer, le tuto « installation complète » est encore d’actualité à quelques exception prêt.

nvm install 12.18.3  ==>  nvm install 16.14
git checkout dodoc2-dev-node  ==>  git checkout dodoc2-next-node

et les commandes suivantes ne sont plus à faire :

cd public
npm install
npm run build

tout le reste est inchangé.

La protection contre les piratages (corrigez moi si je me trompe) :

  1. Utiliser Docker c’est limiter l’impact sur le NAS en cas de faille de sécurité du site/serveur Dodoc.
  2. Avec la mise en ligne de DoDoc, seul 1 port a été ouvert sur ma BOX et redirigé vers mon NAS : le 443 (celui du https) et mon NAS le redirige automatiquement vers le site DoDoc. Donc à priori je dirais qu’à part trouver une faille sur le site qui du coup n’affecterait que mon container, je vois pas ce qu’ils pourraient faire…
  3. Si malgré tout il y avait une faille, cela n’affecterait qu’un seul dossier de mon NAS, car mon container n’a accès qu’à un seul dossier, bien séparé du reste du NAS et j’ai une sauvegarde quotidienne de son contenu sur un autre NAS.
  4. Pour réellement que ce soit dangereux il faudrait qu’un accès au cœur du système (par exemple un accès vers le terminal, en SSH) soit ouvert, or ce n’est pas le cas, car je passe par le portail Synology pour cela. Synology qui je l’espère est suffisamment sécurisé… puisque c’est eux qui gère l’accès par internet à notre NAS, avec ou sans DoDoc.

Acheter un nom de domaine (NDD) est super simple. Nous, on l’a fait chez notre hébergeur de site internet et mail : OVH, mais tu peux trouver pléthore de sites qui le permettent.
Ensuite, sur ce site, il te faudra configurer une entrée AAA qui permettra de rediriger une requete sur ton NDD vers la bonne ip.
En gros… ta box internet a une adresse ip publique (par exemple 89.143.25.68) que tu peux trouver soit dans le panneau de config de ladite box, soit en demandant à google. Il faudra la rentrer chez ton fournisseur de NDD pour qu’il expliquer aux serveurs du monde entier que quand on va sur ton NDD faut rediriger vers ta BOX.
Rien de méchant.
Ensuite, faut configurer ta box. Là encore, rien de bien méchant.

Pour le certificat… tout dépend de ton NAS. Sur Synology, je ne pouvais pas utiliser le programme certbot car ce dernier utilise des gestionnaire de paquet que Docker pour Synology n’autorise pas. J’ai donc du bidouiller. Faudra voir en fonction de ton NAS.

ps : si j’ai mis le DoDoc sur notre NAS, c’est juste pour ne pas avoir à laisser un appareil de plus tourner non stop et ne pas avoir à me soucier du stockage. Car niveau performance je suis certain qu’un RPi 4 (et maintenant 5) ferait bien mieux. Et en plus je trouvais ça cool de faire tourner ça sur le NAS :stuck_out_tongue:
Mais… exit l’édition de vidéo :grimacing:

1 « J'aime »

Encore une fois merci beaucoup pour ces explications, et ravi de voir que tout ça tourne au petit oignon. De ce que je lis c’est bien sécurisé, en tout cas tu suis les bonnes pratiques :slight_smile:

Et la génération de PDF ? Et lorsque tu importes un STL, ça prends bcp de temps à faire un petit aperçu du fichier ? Tu connais les specs de ton NAS ?
Plus le temps passe et plus je me questionne sur l’utilisation des terminaux eux-même pour générer ces contenus (un smartphone moderne est 10 fois plus puissant qu’un raspberry…). On pourrait imaginer un mode « low power » ou le serveur dodoc fait le minimum : le stockage des contenus, la gestion de la collaboration temps réel, et pas plus.

Ah… la génération de PDF, j’ai relancé un ticket sur Github (et pas mal d’autres d’ailleurs xD). Moi ça ne fonctionne pas.
Cela met Failed dès 0% et la barre grimpe à 100%, toujours en « failed »

Importer des fichiers met un peu de temps (quelques secondes) mais rien de méchant, cela ne m’a pas gêné, pour la visualisation ça fonctionne bien aussi.

Caractéristiques de mon NAS (il est « vieux » hein… 2018) :
image

Oui c’est clair que l’on pourrait laisser les navigateurs gérer les rendus ;p
Mais je ne me rends pas compte si c’est complexe à coder ?

J’ai une petite question…
Après avoir fait pas mal d’essais pour essayer de faire en sorte que DoDoc se lance automatiquement au démarrage de mon container (spoiler alert : pour l’instant ça ne fonctionne pas :cry: ), je me suis rendu compte que mon container « production » n’a pas la même version de Dodoc que mon dernier container de test…

j’en déduis donc qu’une mise à jour a été faite entre les deux installations. Super !
Problème… j’ai beau chercher, je crois que je ne comprends pas comment mettre à jour mes fichiers Git ?
Quelles sont les commandes à utiliser pour mettre à jour mon DoDoc ?

Je pensais tout bêtement faire un git checkout puis npm install
Mais Git me dit que je suis déjà sur la dernière version… pourtant si je fais un récit, mon dodoc de production a un sommaire de chapitre alors que le dernier, les chapitres sont tous visible sur une même ligne les uns à coté des autres …
Bizarre !

Les branches dodoc-next et dodoc-next-node n’avancent pas toujours au même moment.

@louis travaille sur la dodoc-next et pousse souvent sur la banche dodoc-next-node
Ça vient peut être du NAS qui est sur node et une version prod sur next ?

Exact ! Et comme on est en phase de développement assez intense, ça bouge pas mal d’une semaine sur l’autre :slight_smile:

dodoc2-next est toujours à jour, dodoc2-next-node a 2 ou 3 jours de retard en fonction de ma motivation à rappatrier les modifs :slight_smile: