Go to file
2024-07-07 15:22:06 -07:00
.github Update build-and-test.yml 2024-06-14 22:42:19 -04:00
.vscode fix: typographical errors 🐛 2024-05-05 08:34:50 +00:00
doc Update readme and put self-hosting instructions in a separate document 2024-07-07 15:01:01 -07:00
incubator/x86emu Proper order for moving the compressed file into the static directory 2024-04-11 21:39:07 +03:00
mods test: add more test scenarios for sharing 2024-06-30 15:09:49 -04:00
src refactor: move puter gui to workspace 2024-07-07 17:12:55 -04:00
tools sync: update check-translations.js 2024-07-07 17:12:55 -04:00
volatile Release backend 2024-03-30 19:08:03 -04:00
.commit fix: use primary read in signup 2024-04-25 19:46:39 -04:00
.dockerignore Fix Dockerfile 2024-04-15 19:03:00 -04:00
.env.example chore: format content 📝 2024-05-06 01:14:36 +00:00
.gitattributes Initial commit 2024-03-02 18:39:14 -08:00
.gitignore chore: comment and fine tune .gitignore settings 🔨 2024-05-06 01:18:40 +00:00
.is_puter_repository Release backend 2024-03-30 19:08:03 -04:00
CHANGELOG.md chore(main): release 2.3.0 2024-05-24 16:22:55 -04:00
CONTRIBUTING.md Add April-1st-appropriate commit message guidelines 2024-04-01 19:33:11 -04:00
dev-server.js Migrate to JavaScript modules 2024-03-20 14:10:39 +00:00
docker-compose.yml Update instructions & docker-compose to reflect production paths 2024-04-02 07:45:14 +02:00
Dockerfile Set NO_VAR_RUNTIME in Dockerfile 2024-04-15 20:47:27 -04:00
eslint.config.js chore: add Buffer to eslint 2024-07-07 17:12:55 -04:00
exports.js Release backend 2024-03-30 19:08:03 -04:00
l_checker_config.json Release backend 2024-03-30 19:08:03 -04:00
LICENSE.txt Initial commit 2024-03-02 18:39:14 -08:00
package-lock.json refactor: move puter gui to workspace 2024-07-07 17:12:55 -04:00
package.json refactor: move puter gui to workspace 2024-07-07 17:12:55 -04:00
README.md Update README.md 2024-07-07 15:22:06 -07:00
run-selfhosted.js fix: Make polyfilled import.meta.filename getter a valid function 2024-06-18 13:17:04 +01:00
SECURITY-ACKNOWLEDGEMENTS.md Update SECURITY-ACKNOWLEDGEMENTS.md to add Tim's GitHub 2024-03-13 18:55:14 -07:00
SECURITY.md Create SECURITY.md 2024-03-13 16:33:03 -07:00
test.txt fix: test release-please action #4 2024-04-22 18:40:49 -04: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 · SDK · Discord · Reddit · X (Twitter) · Bug Bounty

screenshot


Puter

Puter is an advanced, open-source internet operating system designed to be feature-rich, exceptionally fast, and highly extensible. It can be used to build remote desktop environments or serve as an interface for cloud storage services, remote servers, web hosting platforms, and more.


Getting Started

💻 Local Development

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

This will launch Puter at http://localhost:4000 (or the next available port).


🐳 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

🐙 Docker Compose

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

☁️ Puter.com

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


🏠 Self-Hosting

Please refer to the Self-Hosting instructions.


License

This repository is licensed under AGPL-3.0; However, our SDK (puter.js) is also available under Apache 2.0, as indicated by the license file in that section (packages/puter-js) of this repository.


FAQ

What's the use case for Puter?

Puter can be used as:

  • An alternative to Dropbox, Google Drive, OneDrive, etc. with a fresh interface and powerful features.
  • Remote desktop environment for servers and workstations.
  • A platform for building and hosting websites, web apps, and games.
  • A friendly, open-source project and community to learn about web development, cloud computing, distributed systems, and much more!

Why isn't Puter built with React, Angular, Vue, etc.?

For performance reasons, Puter is built with vanilla JavaScript and jQuery. Additionally, we'd like to avoid complex abstractions and to remain in control of the entire stack, as much as possible.

Also partly inspired by some of our favorite projects that are not built with frameworks: VSCode, Photopea, and OnlyOffice.


Why jQuery?

Puter interacts directly with the DOM and jQuery provides an elegant yet powerful API to manipulate the DOM, handle events, and much more. It's also fast, mature, and battle-tested.


#DoesItRunPuter


Credits

The default wallpaper is created by Milad Fakurian and published on Unsplash.

Icons by Papirus under GPL-3.0 license.

Icons by Iconoir under MIT license.

Icons by Elementary Icons under GPL-3.0 license.

Icons by Tabler Icons under MIT license.

Icons by bootstrap-icons under MIT license.