KernelDeimos 01b50b66f2 test(data-access): regression test for es:app vs app
This test was very difficult to get working because of issues
initializing the context under vitest. After a lot of effort and trying
to narrow down the issue in many ways that didn't work, I eventually
found that manually setting the storage and calling run on the
AsyncLocalStorage object got it working. I'm currently unsure if this is
specific to vitest or not. We don't seem to do this in Puter's kernel
but everything works fine in the typical runtime. Maybe this is
side-effect of otel's own use of AsyncLocalStorage.
2026-01-20 16:28:22 -05:00
2026-01-09 15:41:37 -08:00
2026-01-16 16:16:47 -08:00
2025-06-10 15:10:47 -07:00
2024-03-02 18:39:14 -08:00
2025-12-18 17:22:49 -08:00
2025-07-24 13:09:46 -04:00
2025-09-08 18:38:40 -07:00
2025-02-03 14:22:01 -08:00

Puter.com, The Personal Cloud Computer: All your files, apps, and games in one place accessible from anywhere at any time.

The Internet OS! Free, Open-Source, and Self-Hostable.

« LIVE DEMO »

Puter.com · App Store · Developers · CLI · Discord · Reddit · X

screenshot


Puter

Puter is an advanced, open-source internet operating system designed to be feature-rich, fast, and highly extensible. Puter can be used as:

  • A privacy-first personal cloud to keep all your files, apps, and games in one secure place, accessible from anywhere at any time.
  • A platform for building and publishing websites, web apps, and games.
  • An alternative to Dropbox, Google Drive, OneDrive, etc. with a fresh interface and powerful features.
  • A remote desktop environment for servers and workstations.
  • A friendly, open-source project and community to learn about web development, cloud computing, distributed systems, and much more!

Getting Started

💻 Local Development

git clone https://github.com/HeyPuter/puter
cd puter
npm install
npm start

This should launch Puter at http://puter.localhost:4100 (or the next available port).

If this does not work, see First Run Issues for troubleshooting steps.


🐳 Docker

mkdir puter && cd puter && mkdir -p puter/config puter/data && sudo chown -R 1000:1000 puter && docker run --rm -p 4100:4100 -v `pwd`/puter/config:/etc/puter -v `pwd`/puter/data:/var/puter  ghcr.io/heyputer/puter

This should launch Puter at http://puter.localhost:4100 (or the next available port).


🐙 Docker Compose

Linux/macOS

mkdir -p puter/config puter/data
sudo chown -R 1000:1000 puter
wget https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml
docker compose up

This should be available at http://puter.localhost:4100 (or the next available port).


Windows

mkdir -p puter
cd puter
New-Item -Path "puter\config" -ItemType Directory -Force
New-Item -Path "puter\data" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/HeyPuter/puter/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up

This should launch Puter at http://puter.localhost:4100 (or the next available port).


🚀 Self-Hosting

For detailed guides on self-hosting Puter, including configuration options and best practices, see our Self-Hosting Documentation.


☁️ Puter.com

Puter is available as a hosted service at puter.com.


System Requirements

  • Operating Systems: Linux, macOS, Windows
  • RAM: 2GB minimum (4GB recommended)
  • Disk Space: 1GB free space
  • Node.js: Version 24+
  • npm: Latest stable version

Support

Connect with the maintainers and community through these channels:

We are always happy to help you with any questions you may have. Don't hesitate to ask!


License

This repository, including all its contents, sub-projects, modules, and components, is licensed under AGPL-3.0 unless explicitly stated otherwise. Third-party libraries included in this repository may be subject to their own licenses.


Translations

Languages
TypeScript 53.5%
JavaScript 41.7%
CSS 2.7%
HTML 1.9%