PU

Puter

Web-based operating system designed to be feature-rich, exceptionally

File Sync & Storage ★ 43.6k stars Medium setup AGPL-3.0

Puter is a web-based operating system offering a desktop, file system and app platform entirely in the browser. It targets users who want a personal cloud desktop or a base for building web apps. It is deployed via Docker or npm.

Key features

  • Full desktop in the browser
  • Built-in file manager and apps
  • Developer SDK and API
  • Multi-user accounts

Pros & cons

Strengths

  • Full desktop in browser
  • Easy Docker deploy
  • Extensible app platform

Trade-offs

  • Young project
  • Self-hosting docs still maturing

Last reviewed Sep 13, 2026 · 804 words

Open Puter's URL and a browser tab turns into a desktop: window manager, file manager, text editor, terminal, an app store, all rendered by the page itself with one container behind it. That is the whole product, and it explains why picking it from the file-sync category leads to disappointment; it is a cloud desktop and an app platform, not a sync tool. Treated as what it is, a personal cloud desktop and a very good developer platform, it is fun and fast to stand up. Treated as a Nextcloud replacement, it is missing the sync client, the calendar, the office suite and most of a decade of integration work.

One container, one port, five minutes

The self-hosted deployment is the simplest in this batch. Docker image, port 4100, a volume for config and one for data:

services:
  puter:
    image: ghcr.io/heyputer/puter:latest
    ports:
      - 4100:4100
    volumes:
      - ./puter/config:/etc/puter
      - ./puter/data:/var/puter
    restart: unless-stopped

The first start creates an admin user and prints a temporary password in the container logs, so run docker compose logs puter before hunting for a default. Behind a reverse proxy you need to tell Puter its public domain in the config file, and subdomains matter more than usual: apps run in sandboxed iframes on their own subdomains for isolation, so a wildcard DNS record and a wildcard certificate make everything work while a single hostname leaves apps half-broken. That one detail accounts for most of the self-hosting confusion in the issue tracker, and the catalogue's note that the self-hosting documentation is still maturing is accurate.

What you get on the desktop

A working desktop with a file manager backed by the data volume, an editor, a terminal, a camera and recorder, a few games, and an app store of third-party web apps. Multi-user accounts with per-user home directories. Sharing links for files. Storage is plain files on the server side, which is a relief; nothing is locked in a database blob. Memory use for the server sits in the low hundreds of megabytes, in line with the 512 MB the catalogue lists, because the heavy lifting happens in each user's browser.

What you do not get: a desktop sync client for a laptop, WebDAV for mounting, mobile apps, or the office and groupware ecosystem. If those are the point, Nextcloud is the answer and this is not. If you only want a clean web file manager over an existing directory, FileBrowser is 30 MB and needs no desktop metaphor at all.

The developer platform is the real product

Puter's serious use is as a base for building web apps. The Puter.js SDK gives an app a file system, key-value storage, auth, and hosting with a <script> tag and no backend to write, and the hosted puter.com runs on the same code you self-host. A developer wanting a self-hosted backend for small browser apps, a classroom wanting a locked-down desktop that runs anywhere, or a homelab wanting a "desktop" reachable from any device without VPN clients are the people I have seen use it in earnest. The 43,376 stars come from that developer audience far more than from self-hosters.

Young project, AGPL, and a moving target

The AGPL-3.0 licence means if you modify Puter and offer it to users over the network, you publish the changes; for personal use it changes nothing. The project moves quickly, config formats have shifted between releases, and I would pin an image tag rather than track latest if the instance matters. Back up the two volumes together; the config directory holds the SQLite database that maps users to files, and restoring data without it leaves you with orphaned directories.

A Linux desktop in a browser is a different tool

People sometimes reach Puter wanting a remote Linux desktop with real applications, which is a job for Webtop, a containerised desktop streamed over the browser with actual Firefox, LibreOffice and a package manager behind it. Puter's apps are web apps; Webtop's are native. Decide which of those two sentences describes what you want before installing either.

What I'd do

Run Puter if you are building browser apps and want the backend to be a single container you own, or if you want a lightweight cloud desktop for a household and are happy with web-only apps. Give it a wildcard subdomain and certificate on day one, pin the version, back up both volumes together. For files that need to sync to laptops and phones, or for anything a team depends on, run Nextcloud and keep Puter as the toy it is proud to be.

Similar file sync & storage apps