Show HN: desenvolvedor que, após atingir 1 milhão de usuários em 3 anos, abriu o código do “Internet OS”
(github.com/HeyPuter)- O Puter é um computador de internet open source lançado após atingir 1 milhão de usuários; pode ser auto-hospedado e foi projetado para ser rico em recursos, rápido e escalável
- O objetivo é oferecer um ambiente digital all-in-one em que usuários possam realizar trabalho, criação e diversão usando apps como Notepad, Voice Recorder, Spreadsheet e Camera em um só lugar
- Desenvolvedores podem criar apps web e jogos usando AI, Cloud Storage, Database e Serverless Workers, publicá-los na App Store para alcançar usuários e monetizá-los
- As formas de execução se dividem em desenvolvimento local, auto-hospedagem para Linux/macOS e Windows, e uso do serviço hospedado puter.com
- Todo o repositório, subprojetos, módulos e componentes seguem a licença AGPL-3.0, salvo indicação em contrário; bibliotecas de terceiros incluídas podem estar sujeitas às suas próprias licenças
O que o Puter oferece
- O Puter é um computador de internet open source avançado, projetado para permitir auto-hospedagem
- O objetivo é oferecer um ambiente rico em recursos, rápido e com alta escalabilidade
- A demonstração ao vivo está disponível em Puter.com
Ambiente para usuários
- O Puter busca oferecer, sob o mesmo teto, apps e recursos necessários para trabalhar, criar e se divertir
- Exemplos de apps incluem:
- Do ponto de vista do usuário, ele busca ser uma solução all-in-one para a vida digital
Plataforma para desenvolvedores
- O Puter oferece os recursos necessários para criar e distribuir apps web e jogos
- As áreas oferecidas incluem:
- Depois de criar um app, é possível publicá-lo na App Store para alcançar usuários e monetizar
Formas de execução e distribuição
- Para desenvolvimento local, clone o repositório e execute com
npm installenpm start- Após a execução, o Puter abre em
http://puter.localhost:4100
- Após a execução, o Puter abre em
- A auto-hospedagem em Linux/macOS começa com o seguinte comando:
curl -fsSL https://puter.com/selfhost | sh
- Para auto-hospedagem no Windows, use o seguinte comando no PowerShell:
irm https://puter.com/selfhost?os=windows | iex
- A documentação mais detalhada sobre auto-hospedagem está em Self-Hosting Puter
- O serviço hospedado é oferecido em puter.com
Canais de suporte e licença
- Relatos de bugs e solicitações de recursos são recebidos via issues no GitHub
- A comunidade e os canais de contato incluem Discord, X, Reddit, Mastodon e e-mail
- Questões de segurança ou denúncias de abuso podem ser enviadas para
security@puter.com - O repositório e seus subprojetos, módulos e componentes seguem a licença AGPL-3.0, salvo indicação em contrário
- Bibliotecas de terceiros incluídas no repositório podem seguir as próprias licenças de cada biblioteca
Documentos traduzidos
- O README oferece traduções em vários idiomas
- A lista de traduções inclui árabe, chinês, inglês, francês, alemão, hindi, japonês, coreano, português, espanhol, vietnamita, entre outros
- O documento traduzido para coreano é oferecido como coreano
1 comentários
Comentários no Hacker News
Alguém colocou Half-Life/Xash3D como app no Puter: https://puter.com/app/half-life-c3j01ag3pyd
Parece usar o build abaixo hospedado no GitHub.io: https://github.com/Pixelsuft/hl
Por exemplo, não sei o que aconteceria se alguém enviasse um link de um ladrão de senhas malicioso, e seria bom ter um sistema de permissões
Já vi muitos demos de desktops dentro do navegador ao longo dos anos, mas isso é a primeira vez, e é impressionante em vários aspectos
Finalmente o círculo se completou. Agora naturalmente dá vontade de usar um navegador dentro do Puter: navegador dentro do navegador, SO dentro do SO, dentro de máquina virtual…
É de deixar a mente zonza que, para evitar que o usuário instale software, o conceito de documento de marcação tenha sido levado tão ao extremo que chegamos a isso
Conveniência é a força mais poderosa da humanidade
O fato de as páginas, em sua maioria, só acessarem o próprio servidor é algo muito menor do que o potencial que a arquitetura da web poderia ter tido; é apenas aceitar de novo o passado
Tentativas como o Solid de Tim Berners-Lee parecem um excelente primeiro passo. Os vários clientes de Mastodon que podem rodar como PWA também são exemplo e contraexemplo ao mesmo tempo: a página pode se conectar a qualquer lugar, mas no fim é o servidor do Fediverse que faz a mediação e a conecta ao mundo
Leitores de RSS também são assim: conectam-se à própria casa para se ligar ao mundo. Em vez disso, parece que o cliente poderia sair diretamente para fora, e então atividades como leitura, navegação e rastreamento de favoritos teriam de ser enviadas de volta para casa ou armazenadas de outra forma
Pessoalmente, a plataforma Puter tem um potencial enorme, e como desenvolvedor eu já estou tirando bastante valor dela
Com
puter.js, consegui adicionar armazenamento em nuvem completo ao editor de design https://studio.polotno.com/ sem mexer em autenticação, backend nem banco de dadosPelo que entendi com base na documentação do
puter.js[1], a ideia funciona assim: se armazenamento em nuvem seria útil, ao criar um bom app frontend você pode chamar oputer.jscomo se fosse o “backend”Você nem precisa se preocupar com autenticação de usuário, porque o
puter.jsautomaticamente pede para criar conta ou fazer login, e também gerencia o armazenamento em nuvem e os custos por usuário. Se passar do limite gratuito, ele também pede pagamento ao usuárioAinda não usei o
puter.jsna prática, mas, se entendi certo, é um modelo poderoso. Para desenvolvedores de apps de nicho cujo objetivo não é monetização, parece uma forma bastante razoável de repassar o custo do armazenamento em nuvem ao usuário final e ao mesmo tempo reduzir o effort de desenvolvimento[1] https://docs.puter.com/
Se alguém combinasse isso com Supabase + Postgrest ou Hasura, junto com um painel administrativo visual fácil de usar, poderia virar uma plataforma completa com acesso e implantação fáceis
Incrivelmente legal. Até na tela do celular parece bem fluido
jQuery? Nem consigo imaginar como deve ser difícil manter isso sem quebrar com a menor mudança. Aplausos por gerenciar isso com JavaScript puro e jQuery
Para mim, a melhor coisa do React é que você não precisa se preocupar com uma linha de jQuery escondida em algum canto fazendo alguma bizarrice difícil de rastrear e quebrando o DOM ou os manipuladores de eventos
React também não é de forma alguma uma ferramenta que impede erros, e na maioria dos casos não acho que valha a complexidade extra
Se for realmente feito com elementos HTML, é impressionante
Fiquei um bom tempo brincando com isso. Instalei extensões no VSCode, e fiquei confuso quando o link do repositório não abriu como uma pequena inception de navegador, mas a essa altura eu já esperava totalmente que isso acontecesse
Ficou muito bem-feito
Dá bastante trabalho criar a integração com VSCode, então espero que isso possa ajudar a comunidade
Gostei
Seria bom se
~fosse mapeado para o diretório home. Ex.:cd ~/DesktopÉ difícil redimensionar a janela. Na prática, há só 1 pixel para pegar a borda direita
Seria bom se, ao usar
catno terminal, houvesse uma nova linha no fim do texto. O prompt aparece na mesma linha da saída docatTambém é preciso copiar e colar da área de transferência para a instância do Puter
Como se instala Python aqui?
Se não houver uma nova linha no fim do arquivo, o
catcomeça a escrever o prompt logo após a última linha, que é o comportamento esperado emshoubashMais tarde, isso poderia ser melhorado com algo como um indicador de “sem nova linha” na linha do prompt
Tudo é divertido até você, por reflexo, apertar ctrl-w para tentar fechar uma janela virtual e acabar fechando a aba do navegador em que ela estava rodando
window.onbeforeunload = () => "Are you sure you want to close this browser tab", ou então é preciso interceptar completamente a entrada do teclado para evitar que tente fechar a abaO mesmo problema existe com todos os atalhos do navegador usados dentro do OS
Quando eu era criança, sonhava em ir a vários quiosques com um pendrive USB, que ainda nem tinha sido inventado, e fazer com que um OS padrão carregasse minha instância específica graças à minha chave personalizada
Isto parece próximo dessa funcionalidade, e é excelente que inclua uma demo tão completa a ponto de dar para curtir. Também é incrível ter sido feito e lançado com tanto tempo e paixão investidos, e o fato de ser open source pode inspirar alguém a criar um quiosque que abra este site por padrão
Como alguém que depois acabou criando um desses “desktops web”, talvez coisas como o BartPE tenham servido de inspiração em algum grau
Tudo de que você precisa é de um identificador de segurança como uma YubiKey para conectar todas as peças, além de internet suficiente
Dá para fazer isso até certo ponto com ferramentas VDI como o Parsec, mas seria melhor se pudesse aproveitar o hardware local
Eu realmente queria encontrar um uso prático para isso[0]. Com USB-HDMI, talvez pudesse funcionar quase do mesmo jeito
0: https://store.planetcom.co.uk/collections/gemini-pda/product...
A documentação diz que isso pode ser usado para acesso remoto a servidores e workstations
Como ficam coisas como elevação de privilégios e sandboxing?
Estou supondo que isso signifique acesso remoto para contas de usuário, como um terminal server, e não administração de servidor. É isso mesmo?
A execução é linda. Só fiquei decepcionado por não haver um app de navegador para inception que mostrasse o Puter dentro do Puter
E, claro, também dá para jogar Doom
Ou abrir o app PuterPuter, que inclui a si mesmo: https://puter.com/app/puterputer
frame-srcMas, para oferecer uma experiência completa de navegador, seria preciso um backend e um navegador remoto