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.

GitHub repo size GitHub Release GitHub License

« LIVE DEMO »

Puter.com · SDK · Discord · YouTube · 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. 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 ```bash git clone https://github.com/HeyPuter/puter cd puter npm install npm start ``` This will launch Puter at http://puter.localhost:4100 (or the next available port).
### 🐳 Docker ```bash 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 #### Linux/macOS ```bash 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 ```
#### Windows ```powershell 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 ```
### 🌎 Installation on public server Subdomain is puter. Replace "domain.com" with your domain name. #### -Create DNS entries for puter.domain.com and api.puter.domain.com, both pointing to the same IP. #### -Create apache domain configs for puter.domain.com and api.puter.domain.com and add reverse proxy entries for both subdomains ```$ a2enmod proxy``` ```$ a2enmod proxy_http``` ##### /etc/apache/sites-enabled/--configfile--- ``` ProxyPass / http://localhost:4100/ ProxyPassReverse / http://localhost:4100/ ``` #### -Edit ./src/backend/src/config.js Add after ```let config = {};``` ``` config.api_base_url = 'https://api.puter.domain.com'; config.origin='https://puter.domain.com'; config.http_port=443;´ config.pub_port=443; config.protocol='https'; ``` #### -Edit ./node_modules/@heyputer/backend/src/services/WebServerService.js and ./src/backend/src/services/WebServerService.js Search for ```if (allowedDomains.some(allowedDomain => hostName ===``` and change the line to ```if (allowedDomains.some(allowedDomain => hostName === "puter.domain.com" || hostName.endsWith('.' + allowedDomain))) {``` #### -Edit ./volatile/config/config.json Change ```"domain": "puter.localhost"``` to ```"domain": "puter.domain.com"``` #### -Run sed to replace the domain in all remaining files ``` grep -rl "puter.localhost:4100" . | xargs sed -i 's/puter.localhost:4001/puter.domain.com/g' ```

### ☁️ Puter.com Puter is available as a hosted service at [**puter.com**](https://puter.com).
## System Requirements - **Operating Systems:** Linux, macOS, Windows - **RAM:** 2GB minimum (4GB recommended) - **Disk Space:** 1GB free space - **Node.js:** Version 16+ (Version 22+ recommended) - **npm:** Latest stable version
## Support Connect with the maintainers and community through these channels: - Bug report or feature request? Please [open an issue](https://github.com/HeyPuter/puter/issues/new/choose). - Discord: [discord.com/invite/PQcx7Teh8u](https://discord.com/invite/PQcx7Teh8u) - X (Twitter): [x.com/HeyPuter](https://x.com/HeyPuter) - Reddit: [reddit.com/r/puter/](https://www.reddit.com/r/puter/) - Mastodon: [mastodon.social/@puter](https://mastodon.social/@puter) - Security issues? [security@puter.com](mailto:security@puter.com) - Email maintainers at [hi@puter.com](mailto:hi@puter.com) 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](https://github.com/HeyPuter/puter/blob/main/LICENSE.txt) unless explicitly stated otherwise. Third-party libraries included in this repository may be subject to their own licenses.
## Translations - [Bengali / বাংলা](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.bn.md) - [Chinese / 中文](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.zh.md) - [Danish / Dansk](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.da.md) - [English](https://github.com/HeyPuter/puter/blob/main/README.md) - [French / Français](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.da.md) - [Hindi / हिंदी](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.hi.md) - [Indonesian / Bahasa Indonesia](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.id.md) - [Italian / Italiano](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.it.md) - [Japanese / 日本語](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.jp.md) - [Portuguese / Português](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.pt.md) - [Romanian / Română](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ro.md) - [Russian / Русский](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ru.md) - [Spanish / Español](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.es.md) - [Tamil / தமிழ்](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.ta.md) - [Turkish / Türkçe](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.tr.md) - [Vietnamese / Tiếng Việt](https://github.com/HeyPuter/puter/blob/main/doc/i18n/README.vi.md)