Start to packaging dodoc

:fr:
Bonjour à tous et toutes,
Je suis un utilisateur de Yunohost depuis quelques années, et aujourd’hui j’ai décidé de faire en sorte d’intégrer aux outils de YNH un outil de documentation que j’affectionne énormément.

Conçu par l’Atelier des chercheurs pour documenter et créer des récits à partir d’activités pratiques, do•doc (prononcer doudoc) est un outil libre et modulaire, qui permet de capturer des médias (photos, vidéos, sons et stop-motion), de les éditer, de les mettre en page et de les publier. Son design composite permet de le reconfigurer de manière à ce qu’il soit le plus adapté possible à la situation dans laquelle il est déployé.
C’est un outil qui est particulièrement utile dans les écoles et dans l’éducation car il permet aux élèves de construire des récits et des documents facilement a partir d’objets physiques.
En france beaucoup d’enseignants aimeraient s’en servir.

Le soucis, est qu’il s’installe sur un serveur manuellement, et rend difficile sa prise en main par des personnes pas forcément à l’aise avec l’informatique.

L’enjeu de le rendre utilisable avec YNH est double.

  1. Faciliter son installation
  2. Pouvoir être installé sur un serveur qui peut aussi donner accés à d’autres outils comme nextcloud ou etherpad…

Je n’ai jamais construit de paquet installable pour Yunohost et bien que je commence à me débrouiller en informatique, j’ai encore beaucoup à apprendre.

Comment puis-je trouver de l’aide pour faire cela ? Si possible de préférence en français.

Comme indiqué dans votre documentation, j’ai créé un dépot github à partir de l’exemple que vous avez fourni. Celui ci est ici : GitHub - gheleguen/dodoc_ynh at testing

J’ai commencé à me pencher sur le “manifest” et je rencontre quelques interrogations. Seriez-vous disposés à m’aider à y voir plus clair ?

  1. Je ne comprend pas vraiement à quoi doit correspondre l’URL et le sha256 dans la section [resources.sources.main]
  2. Est’ce bien comme cela qu’il faut écrire la liste des packages à installer ?
packages = ["nginx", "nvm", "python2.7", "libx11-xcb1", "libxcomposite1", "libasound2", "libatk1.0-0", "libatk-bridge2.0-0", "libcairo2", "libcups2", "libdbus-1-3", "libexpat1", "libfontconfig1", "libgbm1", "libgcc1", "libglib2.0-0", "libgtk-3-0", "libnspr4", "libpango-1.0-0", "libpangocairo-1.0-0", "libstdc++6", "libx11-6", "libx11-xcb1", "libxcb1", "libxcomposite1", "libxcursor1", "libxdamage1", "libxext6", "libxfixes3", "libxi6", "libxrandr2", "libxrender1", "libxss1", "libxtst6"]

Merci pour votre aide, je vais y aller petit pas par petit pas.

Bonne journée

:uk: :us:
Hello everyone,
I have been a Yunohost user for several years, and today I decided to make sure to integrate a documentation tool that I really like into YNH’s tools.

Designed by the Researchers’ Workshop to document and create stories from practical activities, do•doc (pronounced doudoc) is a free and modular tool, which allows you to capture media (photos, videos, sounds and stop-motion ), edit, format and publish them. Its composite design allows it to be reconfigured so that it is best suited to the situation in which it is deployed.
It is a tool that is particularly useful in schools and education because it allows students to construct stories and documents easily from physical objects.
In France many teachers would like to use it.

The problem is that it is installed on a server manually, and makes it difficult to use for people who are not necessarily comfortable with computers.

The challenge of making it usable with YNH is twofold.

  1. Make it easier to install
  2. Can be installed on a server which can also give access to other tools like nextcloud or etherpad…

I’ve never built an installable package for Yunohost and although I’m starting to get my way with IT, I still have a lot to learn.

As noted in your documentation, I created a github repository from the example you provided. This one is here: GitHub - gheleguen/dodoc_ynh at testing

I started to look into the “manifest” and I encountered some questions. Would you be willing to help me see things more clearly?

  1. I don’t really understand what the URL and sha256 in the [resources.sources.main] section should correspond to.
  2. Is this how you should write the list of packages to install?
packages = ["nginx", "nvm", "python2.7", "libx11-xcb1", "libxcomposite1", "libasound2", "libatk1.0-0", "libatk-bridge2.0-0", "libcairo2", "libcups2", "libdbus-1-3", "libexpat1", "libfontconfig1", "libgbm1", "libgcc1", "libglib2.0-0", "libgtk-3-0", "libnspr4", "libpango-1.0-0", "libpangocairo-1.0-0", "libstdc++6", "libx11-6", "libx11-xcb1", "libxcb1", "libxcomposite1", "libxcursor1", "libxdamage1", "libxext6", "libxfixes3", "libxi6", "libxrandr2", "libxrender1", "libxss1", "libxtst6"]

Thank you for your help, I’m going to take it little step by little step.

Good day

How can I find help to do this? If possible, preferably in French.

Bonjour,
te voilà parti pour une difficile, mais belle aventure. En prenant ton temps, en cherchant et fouillant, tu devrais y arriver. J’ai rapidement parcouru les instructions d’installation et ce sera faisable avec yunohost (rien d’incompatible).
Pour commencer, il faut que tu t’appropries la doc de yunohost et dans un 1er temps celle-ci Writing the app manifest | Yunohost Documentation.
Pour répondre plus précisément à tes questions :

  1. URL correspondant l’adresse où récupérer le code à installer. Dans ton cas, il faut prendre la dernière release : https://github.com/l-atelier-des-chercheurs/dodoc/archive/refs/tags/v10.0.10.tar.gz. sha256 est la somme des contraôle de ce fichier pour être sûr que lorsque quelqu’un installera ton app, le téléchargement du code ne soit pas corrompu. Pour l’obtenir, il va falloir télécharger et lancer un sha256sum.
  2. oui

some work as been done. it stills need work: GitHub - YunoHost-Apps/dodoc_ynh: dodoc package for YunoHost

Good morning,
So if I understand correctly @ericg , the project is already underway by the contributors of Yunohost?
I will avoid making a duplicate. Especially since I won’t do better than you.
If you need help and clarification, do not hesitate to ask your questions to the dodoc community: https://forum.latelier-des-chercheurs.fr/

Will you tell us if we need to do some testing?

@ewilly Merci pour ton aide, je sais pas trop si j’ai besoin de continuer, d’après le message d’ericcg ce serait déjà en court ! J’ai hâte de voir ce que ca donne.

Bonne journée

Guillaume

Bonjour @gheleguen, super projet de lancer le packaging d’une app. J’ai moi-même énormément appris en packagant une app dont j’avais besoin pour mon instance Yunohost (et packagé quelques autres apps depuis).

@ericg a lancé des milliers de packaging d’applications mais je pense que c’est toujours d’une grande aide si le travail peut être un peu réparti. Par ailleurs, il vaut forcément mieux un package maintenu par un packageur débutant mais utilisant l’app au quotidien que par un packageur chevronné mais qui ne verra pas s’il casse l’app alors qu’elle s’installe théoriquement bien. Et puis partir d’une base existante, c’est une chance !

Bonjour @gheleguen, je pense qu’il faut passer du temps pour améliorer ce dépôt, il ne fonctionne peut-être pas encore comme il faudrait, à tester dans un wm avec virtualbox par exemple…

Si tu veux vraiment qu’il soit suivi, c’est une bonne idée de contribuer https://yunohost.org/fr/packaging_apps
et de le maintenir et bien sûr ne pas hésiter à demander de l’aide.

Dodoc for YunoHost is now ready for testing:
sudo yunohost app install https://github.com/YunoHost-Apps/dodoc_ynh/tree/testing

1 Like

Hello,
un test aujourd’hui, sur une yunohost v12.
L’application est bien installée, par contre pour la première connexion est suggéré d’utiliser l’user Admin et le mot de passe dodoc, là ça n’a pas fonctionné…

Dans le dossier de lapplication je retrouve un fichier tokens.json qui semble correspondre aux échec de tentatives de connexions

cat /var/www/dodoc/tokens.json 
{
  "85142d3bb464dc8b82ca53ccd54aa373aaeec1aa26ebbaff08c87ba7dcde1bf6": {
    "token_path": "authors/admin",
    "issued": 1727617248246
  },
  "d19a5f901715373c010cdbb69de99105cbb70909fb883134559e1c56a34ec5cc": {
    "token_path": "authors/admin",
    "issued": 1727617290389
  },
  "ba87e53ae26eddc74f51bc4a590cc8990b1cb764b6192e0ad92c42346db3ae69": {
    "token_path": "authors/admin",
    "issued": 1727617308827
  },
  "7766a4decc587e94d0a68216fe4ae95b2a459f88e4fb7b68b0ce1f6ce60d34a3": {
    "token_path": "authors/admin",
    "issued": 1727617443080
  }
}

if it helps ?

cat /var/log/nginx/dodoc.yunotest.numc.eu-error.log 
2024/09/29 13:36:42 [error] 5930#5930: *129 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: xxx.xxx.xxx.xxx, server: dodoc.yunotest.domain.tld, request: "GET /favicon.ico HTTP/1.1", host: "dodoc.yunotest.domain.tld"
2024/09/29 13:39:35 [error] 10438#10438: *135 connect() failed (111: Connection refused) while connecting to upstream, client: XX.XX.XX.XXX, server: dodoc.yunotest.domain.tld, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:16987/", host: "dodoc.yunotest.domain.tld"

Bon, bizarrement en recommençant, une petite fenêtre popup apparaît avec l’user Admin et un bouton se déconnecter, en cliquant dessus avant qu’elle disparaisse, on arrive à se connecter avec Admin…

this should be fixed in testing . can you retry?

Yes it works nice, thanks !

Bonjour à toustes,
Pour information, le débug est en train de s’organiser avec la communauté dodoc sur leur forum. Rejoignez-vite la conversation pour y contribuer :wink:

Bonne journée

1 Like

Bonjour à toustes,
Le débug de dodoc avec YNH va bon train. On a juste un problème avec la fonction d’écriture de dodoc qui ne fonctionne pas et donne ce type d’erreur :
bundle.js:32 WebSocket connection to 'wss://mondomaine/isSharedb?path_to_meta=spaces%2Ftest2%2Fprojects%2Ftest2%2Fpublications%2Ftest2%2Ftext-1729082731610.txt.meta.txt' failed:

D’après Louis l’un des créateur de dodoc on aurait affaire à un problème de port :

Qu’il y a très probablement un soucis entre ton navigateur, et la partie serveur – quelque chose qui empêche la connection en websocket de se faire.

Je viens d’aller voir moi-même, je pense qu’un port n’est pas ouvert pour permettre l’accès en WSS au serveur mais que ça se passe côté Yunohost.

Qu’en dites-vous ? Comment résoudre ce problème ?

Bonne journée

Bug fixed in master.