Faciliter les contributions sur GitHub

Alors ça c’est un autre débat :stuck_out_tongue:

J’ai pas touché à ça, et c’est un chantier un peu plus solide.

On peut créer un topic spécifique pour en parler si tu veux, mais j’ai des idées un peu plus long terme pour Gladys v4 (release majeure breaking!).

Pour faire simple, je t’en avais déjà parlé mais j’aimerais virer Sails.js qui est un framework un peu lourd et un peu à l’abandon, pour du Express.js brut, tellement plus souple et plus performant. ( en terme de temps de boot vous allez halluciner ^^ )

C’est un beau chantier mais quand on y pense n’est pas si compliqué, vu que sails est basé sur express les controllers restent les même, le core reste le même, on a juste a remplacer les fonctions type sails.[…] et plugger l’ORM à côté (voir changer d’ORM si waterline nous gonfle :wink: )

Et niveau front transformer le front actuelle en une SPA avec preact!

BIG LOVE!

Heu… T’as déjà regardé du côté de koa côté serveur ?
C’est les gars d’express qui ont fait ça apparemment, mais le truc n’a pas trop pris, bien que [pincettesModeOn] stable / performant / promised based / approche middleware [/].
J’avais regardé vite fait, et je ne suis pas un spécialiste, clairement, mais ça avait l’air sweet :smiley: … worth a try amha :wink:

Pffoooouuuuuu j’suis carrément chaud !!! :grinning:

Le must du must ça serais aussi de virer complètement AdminLTE ! Soit on utilise le même template que la Gateway soit on se fait notre propre template made for Gladys :muscle:

Si on pouvait avoir notre propre template ça serais génialissime ! Donc tant qu’à refaire la structure du projet autant le faire aussi !
Il y aurait beaucoup d’avantages !

3 « J'aime »

Avec l’approche « composants » de react/preact, ça semble ok pour répliquer à moindre coût le design de la gateway

@Boimb : je connais Koa, mais ça n’a pas super pris, et au final:

  • Express nu est tout aussi performant
  • promised based => au final express aussi si tu rajoute un petit middleware maison qui fait 1 ligne.
  • express a 1000x plus d’intégrations et ça c’est pratique :slight_smile:

Regarde le travail que j’ai fais sur le gladys-gateway, c’est 100% à base de async/await, c’est super propre =>

https://github.com/GladysProject/gladys-gateway/blob/master/src/gladys-gateway-server/core/api/instance/instance.controller.js

ahaha nice!

Je serais plus chaud d’harmoniser avec le Gladys Gateway! :slight_smile: Pour être honnête, j’en ai pas parlé, mais j’ai conçu le Gladys Gateway Frontend pour qu’il puisse tourner aussi bien via le Gateway qu’en direct sur Gladys. Il y a un peu d’adaptation à faire mais pas énorme, en gros la partie E2E encrypted est faite dans un module séparé, le gladys-gateway-js qui abstrait tout, et donc on peut très bien utiliser le front sans ce module.

Notre propre template a moins que quelqu’un dans ce forum ait comme métier d’être designer front-end avec de belles années d’expérience et un portfolio qui claque, je suis pas chaud. C’est un vrai boulot à temps plein de concevoir un template CSS, il y a des tonnes de petits edge case de responsive à gérer, et croyez moi pour arriver au niveau de AdminLTE ou du template que j’ai utilisé pour le Gateway, il faut être une machine de guerre de frontend, et surtout il faut avoir la garantie que cette personne reste dans le projet sur les prochaines années pour aider à maintenir ^^ Je préfère les templates!

*Mon avis là dessus

Le projet est certes excitant, mais c’est quand un même un très très gros projet ^^

Surtout que si on refait le front/le back, c’est l’occasion de repenser pas mal de choses que je referais pas forcément pareil aujourd’hui, avec l’expérience des dernières années sur le projet, les nouveautés technologiques, toussa toussa, donc pour moi c’est pas qu’une réécriture de code.

A mon avis en 1 mois à plusieurs à fond la partie code est pliée. la partie la plus longue va être la conception :

  • Base de donnée : c’est l’occasion de construire nous même la DB et donc de repenser éventuellement certaines tables qu’avec l’expérience je referais pas forcément de la même façon.
  • Backend: Si on repense la stack, c’est le moment de changer pas mal de petits trucs pour que Gladys soit plus rapide, j’ai pas mal d’idées
  • Architecture des module interne: Comment faire pour que Gladys soit plus résiliente à l’installation d’un module foireux? Maintenant qu’on pourra gérer nous même le démarrage des modules (vu qu’on va pouvoir écrire le code nous même, on sera plus dépendant de sails), on va pouvoir détecter les modules foireux et donc éliminer à 100% les erreurs 502 liés aux installations pourries.
  • UX : Avec l’expérience des dernières années, se poser les bonnes questions sur l’interface: Qu’est ce que l’utilisateur essaie de faire dans Gladys? Quels screens sont importants/inutiles? Quels screens sont incompréhensibles ? Beaucoup de réflexions là dessus à avoir, de recherches utilisateurs, et de tests.

La next step

Si vous voulez on peut commencer un groupe de réflexion là dessus (j’ai l’impression d’être un cadre de 40 ans qui parle, désolé :stuck_out_tongue: ), mais pour l’instant moi je suis à 100% sur le Gladys Gateway qui est ma priorité tant qu’il n’est pas sorti! A part des petits merge de PR à droite à gauche, je suis uniquement focus sur le Gladys Gateway, sinon il sortira jamais :smiley:

Deuxième chose à prendre en compte, je vais sûrement commencer le temps partiel dans la semaine qui arrive, genre semaine là ou semaine d’après, pour la simple et bonne raison qu’il faut que j’ai des sous pour manger :stuck_out_tongue: Donc mes disponibilités vont se réduire à nouveau. Malheureusement tant que le Gateway n’est pas sorti pour que les revenus sur le projet augmente, je dois travailler à côté.

Mais je suis super chaud pour ce projet, je rêve de virer sails, grunt et AngularJS croyez moi :heart_eyes:

1 « J'aime »

:pray: amen :pray:

:smiley:

1 « J'aime »

C’est quand même mieux que les Promesses :stuck_out_tongue:

Et bien qu’est-ce qu’on attend ? ^^

Aller c’est parti !

2 « J'aime »

Aha allez go! @MathieuA tu créé un topic sur le forum pour en parler ? :slight_smile: Mets un lien vers mon message sur ce post, et on en parle!

Je te laisse leader l’initiative, comme je dis pour l’instant je veux finir le Gateway qui est en très bonne voie!! :smiley:

Merci @Bob pour ton message :slight_smile: C’est exactement ce que j’ai en tête, le marché domotique est un super beau marché en pleine croissance, et je pense qu’on peut clairement très vite se démarquer si on mise sur un produit simple, sexy, et facile à mettre en place. Surtout en France grâce à l’atout de se projet: être francophone!

Les compatibilités comme tu dis grâce au MQTT, Zwave, ou carrément via Node-red (pas con faudrait qu’on se renseigne!) on peut facilement tout ajouter.

4 « J'aime »

:+1:
C’est vrai que ça manque…
Des tutos existent mais assez compliqué pour le commun des mortels… Il faudrait le standardiser et non que ce soit à l’initiative de l’utilisateur.
Eh oui, un dev le fera régulièrement car il connais les risques s’il plante son installation lors de tests… Mais un user lambda ne pensera pas à le faire

Il y a une card sur trello a propos de ça

En soit il ne faut faire un backup que de la base.
Comme cela l’utilisateur install Gladys, puis restore son backup qui va allez faire le traitement d’aller réinstaller les modules qui était présent en base.

2 « J'aime »

Ce point serait ainsi traité par la card trello que @pierre-gilles avait instancié dans trello :wink:

C’est effectivement quelque chose que j’ai en tête :slight_smile: C’est dans le Trello!

Je pense que c’est quelque chose qui va arriver dès qu’on aura le Gateway, car le Gateway est parfait pour ce genre d’usage: chiffré de bout en bout (utile pour les sauvegardes), et online. Je vois très bien la sauvegarde automatique et la restauration en un clic :slight_smile:

Hello à tous, Ce qui serait bien ce mettre à dispo une doc même minimale sur Gladys, son architecture, les fichiers qui le compose ce qui permettrait de mieux comprendre son fonctionnement. Je pense qu’une idée plus claire de tout cela permettra d’avoir plus de contributeurs prompts à apporter des idées, participer aux développement de modules, aux tests sur différents matériels, à des tutoriels, contribuer via Patreon bref in fine de faire avancer plus vite le projet. Ce qui serait bien aussi serait d’adopter un langage moins abscons avec moins d’acronymes, d’abréviations ou d’anglicismes à tout va dans les forums pour une compréhension minimale pour tous, nous avons une belle et riche langue, je n’ai rien contre les anglicismes quand il n’y a pas d’équivalents en français mais des fois il y en a pléthore je trouve…y compris par le géniteur et exégète de ce projet ! :wink:

D’accord avec toi sur l’ensemble de ton post.
Voici quelques docs (je pense que tu as déjà dû les lire, mais ça répond à certains points que tu soulèves) :

Pour ce qui est de l’anglais, c’est vrai que @pierre-gilles aime bien caler quelques mots par ci par là mais malheureuseument, c’est une déformation professionnelle je pense.
En effet, le code (au sens large, pas seulement Gladys) est international et basé sur l’anglais, on a beau avoir une belle langue, c’est comme ça…
Donc quand ils (les devs) donnent des explications, c’est souvent basé sur des fonctionnalités en langue anglaise et dont le sens pourrait être mal compris en traduisant à tout va.

(Mais ça n’enlève en rien le fait que le papa de Gladys aime bien placer des mots en anglais… :p)

Bonjour Hamtaro, Certes je l’ai lu la doc mais je parlais d’une doc qui permettrait de faire une install de Gladys sur n’importe quel config en partant de 0 (et surtout pouvoir ainsi faire une install sur d’autres matos), là dans la doc on reste sur cantonné sur du Raspi à cause de l’image et c’est bien dommage. Il serait déjà plus simple bien de faire un package de déploiement genre sudo apt-get install gladys . Pour l’anglais, j’ai commencé à coder pro en vb3 (et même le VbDos avant) en 95, lisp(Autocad), et je parles pas du GFA Basic sur Atari 520 ni du Qbasic sur Sinclair QL en 85…Snif la belle époque ! Non je déconnes, on rêvait des machines et leurs possibilités d’aujourd’hui avec les frustrations qui découlaient de leurs limitations d’alors ! Donc, la langue anglaise on en bouffait des km via les bouquins d’infos ou docs rarement traduit (la prog des API, DLL de Windows fut un délice intellectuel dont j’ai étonnement évité la calvitie ! :wink: ), la langue de Shakespeare ne me déranges pas outre mesure mais elle, je pense, quand elle est mélangée donne une impression plus floue de l’ensemble…Donc, je reste preneur d’une doc qui me permettrait de faire une install sur une VM (que ce soit sur une VM Linux, Mac, Windows, ReactOS ! J’ai acheté le Starter Pack, contribue sur Patreon (également pour ReactOs, Openmediavault ) mais cela me frustres de ne pas pouvoir déployer Gladys sur d’autre matos surtout sur une VM (je suis en train de regarder pour le déployer sur Qemu). Bref, pour résumer ce qu’il manque à ce jour c’est une solution d’install simple voire triviale…et donc d’une doc ad hoc !!! Une bonne âme pour s’y coller ? :weary:

Je ne sais plus trop où , mais tu trouveras sur le forum des membres qui n’utilisent pas de RPi, mais des VM ou des NAS Syno pour faire tourner Gladys :wink:

Edit : Lien pour un exemple sur NAS Synology :wink:

Edit 2 ; Lien pour un exemple sur VM :wink:

1 « J'aime »

Je suis d’accord sur l’idée d’une doc d’install multi platforme.

Pour te rassurer, Gladys tourne sur une VM ubuntu chez moi, d’ailleurs VM ou pas, c’est sur une distri linux.
Ce qui compte c’est la distri (ubuntu, centos…) et la techno (docker, iso…)

Je comprends le besoin de doc, mais il ne faut pas oublier que celà impose de la maintenir / test etc…

De plus l’installation est spécifique à chaque plateforme et au besoin de chacun ( L’installation sur Ubuntu/Debian ne sera pas la même que sur RedHat / Mac / Windows / WSL ) et ma conf docker n’est valable que pour mon installation.

De plus le README du projet contient déjà les infos nécessaires ( N’est pas détaillé l’installation sur VM )


Vous voulez une page comme celle ci ?

Et le gagnant du jour est…Andro ! :clap:Chouette tu vas donc pouvoir nous faire un tuto :writing_hand: sur ton installl :laughing: !! Plus sérieusement, j’ai galéré par exemple sur l’install et le paramétrage d’Openmediavault sur mes HP N40L et notamment sur le rsync entre les deux machines, j’ai fini par trouver après moult essais et partagé mes infos ensuite mais cela m’as pris du temps que l’on a pas toujours (en ce moment je refais toute l’éléctricité de la maison pour la domotisation, 100 câbles tirés depuis le tableau ! :tired_face: ), idem pour mon firewall IpFire. Donc une chtite doc sur le fonctionnement et sur l’install générique pas à pas serait pas du luxe… Merci VonOx pour les liens, j’essaierais ce WE sur VM car cela permet ensuite de faire des test sans casser sa config tous les 4 matins !

Je pensais à une page de ce type Install Cozy on a Debian server

Mais c’est clair que ca demande un peu de boulot pour faire une doc propre et fiable :wink:

Gladys tourne chez moi depuis un bail donc je t’avouerais que j’ai plus trop les commandes en tête.
Après c’est pas compliqué en soit.

En synthèse, et sans aucune vocation à être une doc, tu dois:

  1. installer une bdd
  2. installer node.js
  3. cloner le repo gladys
  4. installer les dependances (npm / yarn)
  5. builder les assets et initialiser la base
  6. installer pm2 et le configurer
  7. installer nginx et le configurer en reverse proxy https

Edit:

ben en fait @C4rlit0 à déjà + ou - tout écrit içi
https://community.gladysassistant.com/t/tutoriel-installation-gladys-from-scratch-sur-raspbian-lite/1811

Les commandes valent (à peu de chose près) pour toutes les distri à base de debian

3 « J'aime »