6P by GN⁺ | ★ favorite | 댓글 1개
  • Puter는 사용자 100만 명 달성 후 공개된 오픈소스 인터넷 컴퓨터로, 자체 호스팅 가능하고 기능이 풍부하며 빠르고 확장 가능하도록 설계됨
  • 사용자는 Notepad, Voice Recorder, Spreadsheet, Camera 같은 앱을 한곳에서 쓰며 업무·창작·놀이를 처리하는 올인원 디지털 환경을 지향함
  • 개발자는 AI, Cloud Storage, Database, Serverless Workers를 활용해 웹 앱과 게임을 만들고, App Store에 배포해 사용자에게 도달하고 수익화할 수 있음
  • 실행 방식은 로컬 개발, Linux/macOS·Windows용 셀프 호스팅, 호스팅 서비스인 puter.com 이용으로 나뉨
  • 저장소 전체와 하위 프로젝트, 모듈, 컴포넌트는 별도 명시가 없는 한 AGPL-3.0 라이선스를 따르며, 포함된 서드파티 라이브러리는 각자 라이선스가 적용될 수 있음

Puter가 제공하는 것

  • Puter는 고급 오픈소스 인터넷 컴퓨터이며, 자체 호스팅이 가능하도록 설계됨
  • 목표는 기능이 풍부하고 빠르며 높은 확장성을 갖춘 환경을 제공하는 것임
  • 라이브 데모는 Puter.com에서 제공됨

사용자용 환경

  • Puter는 작업, 창작, 놀이에 필요한 앱과 기능을 한 지붕 아래 제공하는 것을 목표로 함
  • 예시 앱은 다음과 같음
  • 사용자 관점에서는 디지털 생활을 위한 올인원 솔루션을 지향함

개발자용 플랫폼

  • Puter는 웹 앱과 게임을 만들고 배포하는 데 필요한 기능을 제공함
  • 제공 영역은 다음과 같음
  • 앱을 만든 뒤 App Store에 게시해 사용자에게 도달하고 수익화할 수 있음

실행과 배포 방식

지원 채널과 라이선스

  • 버그 리포트와 기능 요청은 GitHub 이슈로 받음
  • 커뮤니티와 연락 채널은 Discord, X, Reddit, Mastodon, 이메일을 포함함
  • 보안 이슈나 악용 신고는 security@puter.com으로 보낼 수 있음
  • 저장소와 그 하위 프로젝트, 모듈, 컴포넌트는 별도 명시가 없으면 AGPL-3.0 라이선스를 따름
  • 저장소에 포함된 서드파티 라이브러리는 각 라이브러리의 자체 라이선스를 따를 수 있음

번역 문서

  • README는 여러 언어 번역을 제공함
  • 번역 목록에는 Arabic, Chinese, English, French, German, Hindi, Japanese, Korean, Portuguese, Spanish, Vietnamese 등이 포함됨
  • 한국어 번역 문서는 Korean / 한국어로 제공됨

댓글과 토론

Hacker News 의견들
  • 누군가 Half-Life/Xash3D를 Puter 앱으로 올렸음: https://puter.com/app/half-life-c3j01ag3pyd
    GitHub.io에 호스팅된 아래 빌드를 쓰는 것처럼 보임: https://github.com/Pixelsuft/hl

    • 보안상 영향이 궁금함. 임의의 URL을 열었더니 인터넷 OS 데스크톱 안에서 임의의 애플리케이션이 실행됐음
      예를 들어 누군가 악성 비밀번호 탈취기 링크를 주면 어떻게 되는지 모르겠고, 권한 시스템이 있으면 좋겠음
    • 솔직히 정말 놀라움. 그래픽, 오디오까지 전부 그냥 잘 동작함
      수년간 브라우저 안 데스크톱류 데모를 많이 봤지만 이런 건 처음이고, 여러 면에서 인상적임
    • 메뉴를 못 넘어가겠는데, 나만 그런 건지 궁금함
  • 드디어 원이 완성됐음. 이제 당연히 Puter 안에서도 브라우저를 쓰고 싶어짐: 브라우저 안 브라우저 OS 안 OS 안 가상 머신
    사용자가 소프트웨어를 설치하지 않게 하려고 마크업 문서라는 개념을 이렇게까지 혹사해서 이런 결과에 도달했다는 게 정신이 아득함

    • The Birth & Death of JavaScript: https://www.destroyallsoftware.com/talks/the-birth-and-death...
    • 다른 사람들이 까슬까슬한 옷을 입지 않아도 되게 하려고 수백만 명이 죽었음
      편의성은 인류에서 가장 강력한 힘임
    • 웹의 본질을 생각하면, 페이지가 여러 사이트를 탐색하는 브라우저 역할을 더 자주 하지 않는다는 게 몹시 아쉬움
      페이지가 대부분 자기 서버에만 접속하는 건 웹 아키텍처가 가질 수 있었던 가능성에 비해 훨씬 작고, 과거를 다시 받아들인 것에 불과함
      Tim Berners-Lee의 Solid 같은 시도는 훌륭한 첫걸음처럼 보임. PWA로 실행할 수 있는 다양한 Mastodon 클라이언트도 예시이면서 반례이기도 한데, 페이지는 어디든 접속할 수 있지만 결국 Fediverse 서버가 중개해서 세상과 연결해 줌
      RSS 리더도 마찬가지로, 세상과 연결하려고 자기 집으로 접속함. 대신 클라이언트가 직접 바깥으로 뻗어나갈 수도 있을 것 같고, 그러면 읽기와 탐색, 즐겨찾기 추적 같은 활동은 다시 집으로 보내거나 다른 방식으로 저장해야 함
    • 그런데 Puter 위의 브라우저가 Puter를 실행할 수 있나?
  • 개인적으로 Puter 플랫폼은 잠재력이 엄청나고, 개발자로서 이미 큰 가치를 얻고 있음
    puter.js를 써서 디자인 에디터 https://studio.polotno.com/에 인증, 백엔드, 데이터베이스를 건드리지 않고도 완전한 클라우드 저장소를 붙일 수 있었음

    • 동의함. 이건 정말 흥미로운 가능성을 열어줌
      puter.js 문서 [1]를 바탕으로 이해한 방식은 이렇다: 클라우드 저장소가 있으면 좋은 프런트엔드 앱을 만들 때 puter.js를 “백엔드”처럼 불러오면 됨
      사용자 인증은 puter.js가 자동으로 계정 생성이나 로그인을 요청하므로 신경 쓰지 않아도 되고, 클라우드 저장소 관리와 비용도 사용자별로 처리해 줌. 무료 한도를 넘으면 사용자에게 결제도 요청함
      아직 실제로 puter.js를 써보진 않았지만, 이해가 맞다면 강력한 모델임. 수익 창출이 목적이 아닌 틈새 앱 개발자 입장에서는 클라우드 저장소 비용을 최종 사용자에게 넘기면서 개발 effort도 줄일 수 있는 꽤 합리적인 방식으로 보임
      [1] https://docs.puter.com/
    • Puter가 어떻게 도움이 됐는지 좀 더 자세히 설명해 줄 수 있나?
    • 이런 발상이 마음에 듦
      누군가 Supabase + Postgrest나 Hasura를 쉬운 시각적 관리자 대시보드와 함께 여기에 결합한다면, 접근과 배포가 쉬운 완성형 플랫폼이 될 수 있겠음
  • 말도 안 되게 멋짐. 모바일 화면에서도 꽤 매끈해 보임
    jQuery라니? 아주 작은 변경에도 망가지지 않게 유지하는 게 얼마나 어려울지 상상이 안 됨. 순수 JavaScript와 jQuery로 이걸 관리한 것에 박수 보냄
    개인적으로 React의 가장 좋은 점은, 어딘가 구석에 있는 jQuery 한 줄이 추적하기 어려운 이상한 짓을 해서 DOM이나 이벤트 핸들러를 망가뜨릴 걱정을 하지 않아도 된다는 점임

    • jQuery나 직접 DOM 조작으로 쉽게 발등을 찍을 수는 있지만, 안 그러는 것도 그리 어렵진 않음. 대부분의 일처럼 약간의 규율이 필요할 뿐임
      React도 결코 실수를 막아주는 도구는 아니고, 대부분의 경우 추가 복잡도를 감수할 만큼 가치가 있다고 보진 않음
    • 와, 예전에 올라왔을 때 DOM을 봤는지 모르겠음. 이런 건 Canvas에 픽셀을 그리는 방식으로 만들 거라고 당연히 생각했음
      실제로 HTML 요소들로 만들어져 있다면 인상적임
  • 한참 빠져서 가지고 놀았음. VSCode에서 확장을 설치하다가 저장소 링크가 작은 브라우저 인셉션으로 열리지 않아서 헷갈렸는데, 그때쯤엔 완전히 그럴 거라고 기대하고 있었음
    정말 잘 만들었음

    • VSCode 통합을 오픈소스로 공개할 예정임
      VSCode 통합을 만드는 데 꽤 많은 작업이 들어가므로 커뮤니티에 도움이 되면 좋겠음
  • 마음에 듦
    ~가 홈 디렉터리로 매핑되면 좋겠음. 예: cd ~/Desktop
    창 크기 조절이 어려움. 오른쪽 가장자리를 잡으려면 사실상 1픽셀밖에 없음
    터미널에서 cat으로 출력할 때 텍스트 끝에 새 줄이 있으면 좋겠음. 프롬프트가 cat 출력과 같은 줄에 나타남
    클립보드에서 Puter 인스턴스로 복사-붙여넣기도 필요함
    여기서 Python은 어떻게 설치하나?

    • 셸 관련 이슈를 올릴 수 있는 별도 저장소가 있음: https://github.com/HeyPuter/phoenix/issues
      파일 끝에 새 줄이 없으면 cat은 마지막 줄 뒤에 바로 프롬프트를 쓰기 시작하는데, 이는 shbash에서 기대하는 동작과 같음
      나중에 프롬프트 줄에 “새 줄 없음” 표시를 넣는 식으로 개선할 수도 있음
  • 가상 창을 닫으려고 반사적으로 ctrl-w를 눌렀다가, 그 창이 돌아가던 브라우저 탭을 닫아버리기 전까진 다 재미있음

    • 확실히 window.onbeforeunload = () => "Are you sure you want to close this browser tab"가 빠졌거나, 키보드 입력을 완전히 가로채서 탭을 닫으려 하지 않게 해야 함
      OS 안에서 쓰는 모든 브라우저 단축키에 같은 문제가 있음
  • 어릴 때는 아직 발명되지도 않았던 USB 스틱을 들고 여러 키오스크에 가서, 내 커스텀 키 덕분에 표준 OS가 내 특정 인스턴스를 불러오는 걸 꿈꿨음
    이건 그 기능에 가까워 보이고, 즐길 수 있을 만큼 철저한 데모를 포함한 점이 정말 훌륭함. 이렇게 많은 시간과 열정을 들여 만들고 공개한 것도 멋지고, 오픈소스로 만든 것도 누군가 기본으로 이 사이트를 띄우는 키오스크를 만들도록 영감을 줄 수 있을 듯함

    • 거의 20년 전 IT 일을 할 때 BartPE라는 도구로 비슷한 걸 썼음. USB 드라이브에서 부팅 가능한 커스텀 WinPE 환경을 만들 수 있었음
      나중에 이런 “웹 데스크톱” 중 하나를 만들게 된 사람으로서, BartPE 같은 것들이 어느 정도 영감이 됐을지도 모름
    • 정말 원하는 건 어떤 컴퓨터에서든 즉석으로 마운트할 수 있는 네트워크 부팅 이미지와 원격 저장소임
      필요한 건 YubiKey 같은 보안 식별자로 모든 조각을 연결하는 것과 충분한 인터넷뿐임
      Parsec 같은 VDI 도구로 어느 정도는 가능하지만, 로컬 하드웨어를 활용할 수 있으면 더 좋겠음
    • 왠지 원래 Mac Mini가 이런 종류로 발전할 거라고 생각했는데, 물론 틀렸음. “PC Stick”을 검색해 보니 흥미로운 선택지가 좀 나옴
      이걸 쓸 만한 용도를 정말 찾고 싶음[0]. USB-HDMI와 함께라면 거의 비슷하게 동작할 수도 있겠음
      0: https://store.planetcom.co.uk/collections/gemini-pda/product...
    • Samsung DeX
    • Tails는 써봤나? https://tails.net/
  • 문서에는 이걸 서버와 워크스테이션의 원격 접속에 쓸 수 있다고 되어 있음
    권한 상승과 샌드박싱 같은 건 어떻게 처리하나?
    서버 관리가 아니라 터미널 서버처럼 사용자 계정용 원격 접속을 뜻한다고 가정하고 있는데, 맞나?

  • 실행이 아름다움. 다만 Puter 안에서 Puter를 보는 인셉션용 브라우저 앱이 없어서 낙담했음

    • daedalOS에서는 이걸 할 수 있음: https://dustinbrett.com/
      물론 Doom도 플레이할 수 있음
    • 그냥 Puter 앱을 열면 됨: https://puter.com/app/puter
      아니면 자기 자신을 포함하는 PuterPuter 앱을 열어도 됨: https://puter.com/app/puterputer
    • 기술적으로는 Puter가 올바른 frame-src CSP 규칙으로 제공된다면 iframe으로 흉내 낼 수 있음
      하지만 완전한 브라우저 경험을 내려면 백엔드와 원격 브라우저가 필요함