HN Presenta: Desarrollador que hizo open source su “Internet OS” tras alcanzar 1 millón de usuarios en 3 años
(github.com/HeyPuter)- Puter es una computadora de internet open source lanzada tras alcanzar 1 millón de usuarios; puede alojarse por cuenta propia y está diseñada para ser rica en funciones, rápida y escalable
- Los usuarios pueden usar apps como Notepad, Voice Recorder, Spreadsheet y Camera en un solo lugar, con el objetivo de ofrecer un entorno digital todo en uno para trabajar, crear y jugar
- Los desarrolladores pueden crear apps web y juegos usando AI, Cloud Storage, Database y Serverless Workers, publicarlos en la App Store para llegar a usuarios y monetizarlos
- Las formas de ejecución se dividen en desarrollo local, self-hosting para Linux/macOS y Windows, y uso del servicio alojado puter.com
- Todo el repositorio y sus subproyectos, módulos y componentes siguen la licencia AGPL-3.0, salvo que se indique lo contrario; las bibliotecas de terceros incluidas pueden estar sujetas a sus propias licencias
Qué ofrece Puter
- Puter es una computadora de internet open source avanzada, diseñada para poder alojarse por cuenta propia
- Su objetivo es ofrecer un entorno rico en funciones, rápido y con alta escalabilidad
- La demo en vivo está disponible en Puter.com
Entorno para usuarios
- Puter busca ofrecer, bajo un mismo techo, las apps y funciones necesarias para trabajar, crear y jugar
- Algunas apps de ejemplo son:
- Desde la perspectiva del usuario, apunta a ser una solución todo en uno para la vida digital
Plataforma para desarrolladores
- Puter ofrece las funciones necesarias para crear y desplegar apps web y juegos
- Las áreas que ofrece son:
- Después de crear una app, se puede publicar en la App Store para llegar a usuarios y monetizarla
Formas de ejecución y despliegue
- Para desarrollo local, se clona el repositorio y se ejecuta con
npm installynpm start- Tras ejecutarlo, Puter se abre en
http://puter.localhost:4100
- Tras ejecutarlo, Puter se abre en
- El self-hosting en Linux/macOS se inicia con el siguiente comando:
curl -fsSL https://puter.com/selfhost | sh
- Para self-hosting en Windows, se usa el siguiente comando en PowerShell:
irm https://puter.com/selfhost?os=windows | iex
- La documentación más detallada de self-hosting está en Self-Hosting Puter
- El servicio alojado se ofrece en puter.com
Canales de soporte y licencia
- Los reportes de bugs y las solicitudes de funcionalidades se reciben mediante issues de GitHub
- Los canales de comunidad y contacto incluyen Discord, X, Reddit, Mastodon y correo electrónico
- Los problemas de seguridad o reportes de abuso pueden enviarse a
security@puter.com - El repositorio y sus subproyectos, módulos y componentes siguen la licencia AGPL-3.0, salvo que se indique lo contrario
- Las bibliotecas de terceros incluidas en el repositorio pueden estar sujetas a las licencias propias de cada biblioteca
Documentos traducidos
- El README ofrece traducciones a varios idiomas
- La lista de traducciones incluye Arabic, Chinese, English, French, German, Hindi, Japanese, Korean, Portuguese, Spanish, Vietnamese, entre otros
- El documento traducido al coreano está disponible como Korean / coreano
1 comentarios
Comentarios de Hacker News
Alguien subió Half-Life/Xash3D como app de Puter: https://puter.com/app/half-life-c3j01ag3pyd
Parece que usa el build de abajo alojado en GitHub.io: https://github.com/Pixelsuft/hl
Por ejemplo, no sé qué pasaría si alguien te da un enlace a un roba-contraseñas malicioso, y estaría bien que hubiera un sistema de permisos
He visto muchos demos de escritorios dentro del navegador a lo largo de los años, pero esto es la primera vez, y me impresiona en varios sentidos
Por fin se cerró el círculo. Ahora obviamente quiero usar un navegador dentro de Puter: navegador dentro de navegador dentro de OS dentro de OS dentro de máquina virtual…
Me deja aturdido que, por evitar que el usuario instale software, se haya llevado el concepto de documento de marcado hasta este extremo para llegar a este resultado
La conveniencia es la fuerza más poderosa de la humanidad
Que las páginas en su mayoría solo se conecten a su propio servidor es muchísimo menos de lo que la arquitectura web podría haber sido, y no es más que volver a aceptar el pasado
Intentos como Solid de Tim Berners-Lee parecen un excelente primer paso. Los distintos clientes de Mastodon que pueden ejecutarse como PWA son a la vez ejemplo y contraejemplo: la página puede conectarse a cualquier parte, pero al final un servidor del Fediverso es quien la intermedia y la conecta con el mundo
Con los lectores de RSS pasa lo mismo: se conectan a su casa para conectarse con el mundo. En cambio, parecería posible que el cliente saliera directamente hacia afuera, y entonces actividades como leer, explorar y rastrear marcadores podrían volver a enviarse a casa o almacenarse de otra manera
Personalmente, la plataforma Puter tiene muchísimo potencial y como desarrollador ya me está dando un gran valor
Con
puter.jspude agregar almacenamiento en la nube completo al editor de diseño https://studio.polotno.com/ sin tocar autenticación, backend ni base de datosSegún lo que entendí a partir de la documentación de
puter.js[1], la idea funciona así: si estás haciendo una app de frontend a la que le vendría bien tener almacenamiento en la nube, puedes invocarputer.jscomo si fuera el “backend”No tienes que preocuparte por la autenticación de usuarios, porque
puter.jsautomáticamente pide crear una cuenta o iniciar sesión, y también gestiona la administración y el costo del almacenamiento en la nube por usuario. Si se supera el límite gratuito, también le pide al usuario que pagueTodavía no he usado
puter.jsen la práctica, pero si lo entendí bien, es un modelo potente. Para un desarrollador de apps de nicho cuyo objetivo no es monetizar, parece una forma bastante razonable de pasar el costo del almacenamiento en la nube al usuario final mientras también reduce el esfuerzo de desarrollo[1] https://docs.puter.com/
Si alguien combinara aquí Supabase + Postgrest o Hasura con un panel de administración visual sencillo, podría convertirse en una plataforma integral fácil de acceder y desplegar
Ridículamente genial. Incluso en pantalla móvil se ve bastante fluido
¿jQuery? No puedo imaginar lo difícil que debe ser mantener esto sin que se rompa con cambios mínimos. Mis respetos por haber gestionado esto con JavaScript puro y jQuery
Personalmente, lo mejor de React es que no tienes que preocuparte de que una línea de jQuery escondida en algún rincón haga algo raro difícil de rastrear y termine rompiendo el DOM o los event handlers
React tampoco es una herramienta que impida errores, y en la mayoría de los casos no me parece que valga la pena asumir la complejidad extra
Si de verdad está hecho con elementos HTML, es impresionante
Me piqué un buen rato jugando con esto. Me confundí cuando, al instalar una extensión en VSCode, el enlace del repositorio no se abrió como una pequeña browser inception, pero para ese momento ya esperaba totalmente que pasara
Está muy bien hecho
Hacer la integración con VSCode requiere bastante trabajo, así que ojalá le sirva a la comunidad
Me gusta
Estaría bien que
~se mapeara al directorio home. Por ejemplo:cd ~/DesktopEs difícil cambiar el tamaño de las ventanas. En la práctica solo hay 1 píxel para agarrar el borde derecho
Estaría bien que al imprimir con
caten la terminal hubiera una nueva línea al final del texto. El prompt aparece en la misma línea que la salida decatTambién hace falta copiar y pegar desde el portapapeles a la instancia de Puter
¿Cómo se instala Python aquí?
Si no hay una nueva línea al final del archivo,
catempieza a escribir el prompt justo después de la última línea, que es el comportamiento esperado enshobashMás adelante se podría mejorar poniendo una indicación de “sin nueva línea” en la línea del prompt
Todo es divertido hasta que intentas cerrar una ventana virtual, presionas por reflejo ctrl-w y terminas cerrando la pestaña del navegador donde estaba corriendo esa ventana
window.onbeforeunload = () => "Are you sure you want to close this browser tab", o habría que interceptar por completo la entrada del teclado para que no intente cerrar la pestañaEl mismo problema existe con todos los atajos del navegador que se usan dentro del OS
De niño soñaba con ir de un kiosco a otro llevando una memoria USB, que todavía ni siquiera se había inventado, y que gracias a mi llave personalizada un OS estándar cargara mi instancia específica
Esto se ve bastante cerca de esa idea, y es realmente genial que incluya una demo lo suficientemente completa como para disfrutarla. También está muy bueno que lo hayan construido y publicado dedicándole tanto tiempo y pasión, y que sea open source, porque podría inspirar a alguien a hacer un kiosco que cargue este sitio por defecto
Como alguien que después terminó haciendo uno de estos “escritorios web”, puede que cosas como BartPE hayan sido una fuente de inspiración hasta cierto punto
Lo único que hace falta es un identificador de seguridad como una YubiKey para unir todas las piezas y suficiente internet
Se puede lograr en cierta medida con herramientas VDI como Parsec, pero sería mejor si se pudiera aprovechar el hardware local
De verdad quisiera encontrarle un caso de uso decente a esto[0]. Con USB-HDMI podría funcionar casi de la misma forma
0: https://store.planetcom.co.uk/collections/gemini-pda/product...
En la documentación dice que esto puede usarse para acceso remoto a servidores y estaciones de trabajo
¿Cómo manejan cosas como la elevación de privilegios y el sandboxing?
Asumo que no se refieren a administración de servidores sino a acceso remoto para cuentas de usuario, como un servidor de terminales. ¿Es así?
La ejecución es hermosa. Pero me decepcionó que no hubiera una app de navegador para Inception que permitiera ver Puter dentro de Puter
Y claro, también puedes jugar Doom
O abre la app PuterPuter, que se incluye a sí misma: https://puter.com/app/puterputer
frame-srccorrectaPero para ofrecer una experiencia de navegador completa harían falta un backend y un navegador remoto