6 points par GN⁺ 2024-03-05 | 1 commentaires | Partager sur WhatsApp
  • Puter est un ordinateur Internet open source rendu public après avoir atteint 1 million d’utilisateurs, conçu pour être auto-hébergeable, riche en fonctionnalités, rapide et évolutif
  • Les utilisateurs peuvent utiliser en un seul endroit des applications comme Notepad, Voice Recorder, Spreadsheet et Camera, avec l’ambition d’un environnement numérique tout-en-un pour le travail, la création et le divertissement
  • Les développeurs peuvent créer des applications web et des jeux à l’aide de l’IA, du Cloud Storage, de la Database et des Serverless Workers, puis les publier sur l’App Store pour atteindre des utilisateurs et les monétiser
  • Les modes d’exécution se divisent entre le développement local, l’auto-hébergement pour Linux/macOS et Windows, et l’utilisation du service hébergé puter.com
  • Sauf indication contraire, l’ensemble du dépôt, ainsi que les sous-projets, modules et composants, sont sous licence AGPL-3.0 ; les bibliothèques tierces incluses peuvent être soumises à leurs propres licences

Ce que propose Puter

  • Puter est un ordinateur Internet open source avancé, conçu pour pouvoir être auto-hébergé
  • Son objectif est de fournir un environnement riche en fonctionnalités, rapide et hautement évolutif
  • Une démo en direct est disponible sur Puter.com

Environnement pour les utilisateurs

  • Puter vise à proposer sous un même toit les applications et fonctionnalités nécessaires pour travailler, créer et se divertir
  • Exemples d’applications :
  • Du point de vue de l’utilisateur, il se veut une solution tout-en-un pour la vie numérique

Plateforme pour les développeurs

  • Puter fournit les fonctionnalités nécessaires pour créer et déployer des applications web et des jeux
  • Les domaines proposés sont les suivants :
  • Après avoir créé une application, il est possible de la publier sur l’App Store pour atteindre des utilisateurs et la monétiser

Modes d’exécution et de déploiement

Canaux de support et licence

  • Les signalements de bugs et les demandes de fonctionnalités sont reçus via les issues GitHub
  • Les canaux communautaires et de contact incluent Discord, X, Reddit, Mastodon et l’e-mail
  • Les problèmes de sécurité ou signalements d’abus peuvent être envoyés à security@puter.com
  • Le dépôt, ainsi que ses sous-projets, modules et composants, sont sous licence AGPL-3.0 sauf indication contraire
  • Les bibliothèques tierces incluses dans le dépôt peuvent être soumises à leur propre licence

Documents traduits

  • Le README propose des traductions dans plusieurs langues
  • La liste des traductions comprend notamment l’arabe, le chinois, l’anglais, le français, l’allemand, l’hindi, le japonais, le coréen, le portugais, l’espagnol et le vietnamien
  • La traduction coréenne est disponible ici : Korean / coréen

1 commentaires

 
GN⁺ 2024-03-05
Avis sur Hacker News
  • Quelqu’un a publié Half-Life/Xash3D comme application Puter : https://puter.com/app/half-life-c3j01ag3pyd
    On dirait que ça utilise ce build hébergé sur GitHub.io : https://github.com/Pixelsuft/hl

    • Je me demande quelles sont les implications en matière de sécurité. J’ai ouvert une URL arbitraire et une application arbitraire s’est exécutée dans le bureau de l’OS Internet.
      Par exemple, je ne sais pas ce qui se passerait si quelqu’un donnait un lien vers un voleur de mots de passe malveillant ; ce serait bien qu’il y ait un système de permissions
    • Franchement, c’est vraiment bluffant. Même les graphismes et l’audio fonctionnent tout simplement très bien.
      J’ai vu beaucoup de démos de bureaux dans le navigateur au fil des années, mais jamais quelque chose comme ça ; c’est impressionnant à bien des égards
    • Je n’arrive pas à passer le menu, je me demande si je suis le seul
  • La boucle est enfin bouclée. Maintenant, évidemment, j’ai envie d’utiliser un navigateur aussi à l’intérieur de Puter : une machine virtuelle dans un OS dans un OS navigateur dans un navigateur
    C’est vertigineux de se dire qu’on a poussé aussi loin le concept de document de balisage pour en arriver là, juste pour éviter aux utilisateurs d’installer des logiciels

    • The Birth & Death of JavaScript : https://www.destroyallsoftware.com/talks/the-birth-and-death...
    • Des millions de personnes sont mortes pour que d’autres n’aient pas à porter des vêtements qui grattent.
      La commodité est la force la plus puissante de l’humanité
    • Quand on pense à la nature du Web, je trouve vraiment dommage que les pages ne jouent pas plus souvent le rôle de navigateur explorant plusieurs sites.
      Le fait que la plupart des pages ne se connectent qu’à leur propre serveur est bien moins ambitieux que ce que l’architecture du Web aurait pu permettre ; ce n’est qu’un retour à d’anciens schémas.
      Des initiatives comme Solid de Tim Berners-Lee semblent être un excellent premier pas. Les différents clients Mastodon utilisables en PWA sont à la fois des exemples et des contre-exemples : la page peut se connecter n’importe où, mais au final c’est le serveur Fediverse qui sert d’intermédiaire pour la relier au monde.
      Même chose pour les lecteurs RSS : ils se connectent à leur propre « maison » pour accéder au monde. À la place, le client pourrait peut-être tendre directement vers l’extérieur ; dans ce cas, des activités comme la lecture, la navigation et le suivi des favoris devraient être renvoyées à la maison, ou stockées autrement
    • Mais est-ce que le navigateur au-dessus de Puter peut exécuter Puter ?
  • Personnellement, je trouve que la plateforme Puter a un potentiel énorme, et en tant que développeur j’en tire déjà beaucoup de valeur.
    Avec puter.js, j’ai pu ajouter un stockage cloud complet à l’éditeur de design https://studio.polotno.com/, sans toucher à l’authentification, au backend ni à la base de données

    • Je suis d’accord. Ça ouvre des possibilités vraiment intéressantes.
      D’après ce que j’ai compris de la documentation de puter.js [1], le fonctionnement est le suivant : quand on veut créer une bonne application frontend qui bénéficierait d’un stockage cloud, on peut appeler puter.js comme un « backend ».
      Il n’y a pas à se soucier de l’authentification utilisateur, car puter.js demande automatiquement la création de compte ou la connexion, et il gère aussi le stockage cloud et les coûts par utilisateur. Si la limite gratuite est dépassée, il demande aussi à l’utilisateur de payer.
      Je n’ai pas encore réellement essayé puter.js, mais si ma compréhension est correcte, c’est un modèle puissant. Du point de vue d’un développeur d’apps de niche qui ne cherche pas à monétiser, ça semble être une approche assez raisonnable : transférer le coût du stockage cloud à l’utilisateur final tout en réduisant l’effort de développement.
      [1] https://docs.puter.com/
    • Peux-tu expliquer un peu plus en détail en quoi Puter t’a aidé ?
    • J’aime bien cette idée.
      Si quelqu’un combinait ici Supabase + Postgrest ou Hasura avec un tableau de bord d’administration visuel simple, ça pourrait devenir une plateforme complète, facile d’accès et de déploiement
  • Ridiculement cool. Même sur mobile, ça a l’air plutôt fluide.
    jQuery, vraiment ? Je n’imagine même pas à quel point il doit être difficile de maintenir ça sans tout casser au moindre petit changement. Chapeau pour avoir géré ça en JavaScript pur et jQuery.
    À titre personnel, ce que je préfère dans React, c’est de ne pas avoir à craindre qu’une ligne de jQuery planquée dans un coin fasse un truc bizarre impossible à tracer et casse le DOM ou les gestionnaires d’événements

    • On peut facilement se tirer une balle dans le pied avec jQuery ou la manipulation directe du DOM, mais ce n’est pas si difficile de l’éviter. Comme pour la plupart des choses, il suffit d’un peu de discipline.
      React n’est certainement pas un outil qui empêche de faire des erreurs, et dans la plupart des cas je ne trouve pas que ça vaille la complexité supplémentaire
    • Waouh, je ne sais pas si j’avais regardé le DOM quand c’était passé précédemment. Je supposais naturellement qu’un truc comme ça serait fait en dessinant des pixels sur un Canvas.
      Si c’est réellement construit avec des éléments HTML, c’est impressionnant
  • J’ai passé un bon moment à jouer avec. Dans VSCode, en installant une extension, j’ai été désorienté parce que le lien du dépôt ne s’ouvrait pas dans un petit navigateur en mode inception ; à ce stade, je m’attendais totalement à ce que ce soit le cas.
    C’est vraiment très bien fait

    • Nous allons bientôt publier en open source l’intégration VSCode.
      Créer l’intégration VSCode demande pas mal de travail, donc j’espère que ça sera utile à la communauté
  • J’aime bien
    Ce serait bien que ~ soit mappé sur le répertoire personnel. Ex. : cd ~/Desktop
    Le redimensionnement des fenêtres est difficile. Pour attraper le bord droit, il n’y a en pratique qu’un seul pixel
    Ce serait bien qu’il y ait une nouvelle ligne à la fin du texte quand on affiche avec cat dans le terminal. Le prompt apparaît sur la même ligne que la sortie de cat
    Il faut aussi pouvoir copier-coller depuis le presse-papiers vers l’instance Puter
    Comment installe-t-on Python ici ?

    • Il existe un dépôt séparé pour signaler les problèmes liés au shell : https://github.com/HeyPuter/phoenix/issues
      S’il n’y a pas de nouvelle ligne à la fin du fichier, cat commence à écrire le prompt juste après la dernière ligne, ce qui correspond au comportement attendu dans sh ou bash
      On pourrait éventuellement améliorer cela plus tard en ajoutant un indicateur « pas de nouvelle ligne » sur la ligne du prompt
  • Tout est amusant jusqu’au moment où, par réflexe, on appuie sur ctrl-w pour fermer une fenêtre virtuelle… et qu’on ferme l’onglet du navigateur dans lequel elle tournait

    • Il manque clairement un window.onbeforeunload = () => "Are you sure you want to close this browser tab", ou alors il faut intercepter complètement la saisie clavier pour éviter de tenter de fermer l’onglet
      Tous les raccourcis clavier du navigateur utilisés à l’intérieur de l’OS ont le même problème
  • Quand j’étais enfant, je rêvais d’aller sur différents kiosques avec une clé USB qui n’avait même pas encore été inventée, et que l’OS standard charge mon instance particulière grâce à ma clé personnalisée
    Cela semble proche de cette fonctionnalité, et le fait d’inclure une démo suffisamment complète pour s’amuser est vraiment excellent. C’est aussi impressionnant d’avoir consacré autant de temps et de passion à le construire et à le publier, et le fait de l’avoir rendu open source pourrait inspirer quelqu’un à créer des kiosques qui affichent ce site par défaut

    • Il y a presque 20 ans, quand je travaillais dans l’IT, j’utilisais quelque chose de similaire avec un outil appelé BartPE. Il permettait de créer un environnement WinPE personnalisé amorçable depuis une clé USB
      En tant que personne qui a fini par créer l’un de ces « bureaux web », des choses comme BartPE ont peut-être été une source d’inspiration dans une certaine mesure
    • Ce qu’on veut vraiment, c’est une image de démarrage réseau et un stockage distant que l’on peut monter à la volée sur n’importe quel ordinateur
      Il suffit d’un identifiant sécurisé comme une YubiKey pour relier toutes les pièces, et d’une connexion Internet suffisante
      C’est possible dans une certaine mesure avec des outils de VDI comme Parsec, mais ce serait mieux de pouvoir exploiter le matériel local
    • Pour une raison ou une autre, je pensais que le Mac Mini d’origine évoluerait vers ce genre de chose, mais je me trompais évidemment. En cherchant « PC Stick », on trouve quelques options intéressantes
      J’aimerais vraiment trouver un cas d’usage valable pour ça[0]. Avec de l’USB-HDMI, ça pourrait presque fonctionner de manière similaire
      0 : https://store.planetcom.co.uk/collections/gemini-pda/product...
    • Samsung DeX
    • Tu as essayé Tails ? https://tails.net/
  • La documentation indique qu’on peut l’utiliser pour de l’accès distant à des serveurs et des postes de travail
    Comment gérez-vous des aspects comme l’élévation de privilèges et le sandboxing ?
    Je suppose qu’il s’agit d’un accès distant pour des comptes utilisateurs, comme un serveur de terminaux, et non d’administration de serveurs ; c’est bien ça ?

  • L’exécution est superbe. Je suis toutefois déçu qu’il n’y ait pas d’application navigateur façon Inception pour voir Puter à l’intérieur de Puter

    • daedalOS permet de faire ça : https://dustinbrett.com/
      Et bien sûr, on peut aussi jouer à Doom
    • Il suffit d’ouvrir l’app Puter : https://puter.com/app/puter
      Ou bien d’ouvrir l’app PuterPuter, qui se contient elle-même : https://puter.com/app/puterputer
    • Techniquement, si Puter est servi avec la bonne règle CSP frame-src, on peut le simuler avec une iframe
      Mais pour offrir une expérience de navigateur complète, il faut un backend et un navigateur distant