- 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
- Pour le développement local, on clone le dépôt puis on lance
npm installetnpm start- Après lancement, Puter s’ouvre sur
http://puter.localhost:4100
- Après lancement, Puter s’ouvre sur
- L’auto-hébergement sur Linux/macOS démarre avec la commande suivante
curl -fsSL https://puter.com/selfhost | sh
- L’auto-hébergement sur Windows utilise la commande suivante dans PowerShell
irm https://puter.com/selfhost?os=windows | iex
- Une documentation plus détaillée sur l’auto-hébergement est disponible dans Self-Hosting Puter
- Le service hébergé est proposé sur puter.com
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
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
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
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
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
La commodité est la force la plus puissante de l’humanité
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
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éesD’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 appelerputer.jscomme un « backend ».Il n’y a pas à se soucier de l’authentification utilisateur, car
puter.jsdemande 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/
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
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
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
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 ~/DesktopLe 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
catdans le terminal. Le prompt apparaît sur la même ligne que la sortie decatIl faut aussi pouvoir copier-coller depuis le presse-papiers vers l’instance Puter
Comment installe-t-on Python ici ?
S’il n’y a pas de nouvelle ligne à la fin du fichier,
catcommence à écrire le prompt juste après la dernière ligne, ce qui correspond au comportement attendu dansshoubashOn 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
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’ongletTous 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
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
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
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...
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
Et bien sûr, on peut aussi jouer à Doom
Ou bien d’ouvrir l’app PuterPuter, qui se contient elle-même : https://puter.com/app/puterputer
frame-src, on peut le simuler avec une iframeMais pour offrir une expérience de navigateur complète, il faut un backend et un navigateur distant