NoUploads

Self-Host NoUploads

NoUploads is a fully static web application. There is no backend server, no database, no API that touches your files. The build output is a folder of HTML, CSS, JavaScript, and WebAssembly files that can be served by any web server. This makes self-hosting simple: put the files behind a web server and you’re done.

Why self-host?

  • Air-gapped networks — Facilities without internet access can run NoUploads on an internal server. All processing is client-side, so no external requests are needed after the initial page load.
  • Compliance requirements — Organizations subject to HIPAA, GDPR, or internal data policies can host NoUploads on their own infrastructure, ensuring files never transit through third-party servers.
  • Internal tooling — Give your team a private instance for converting medical images, legal documents, or other sensitive files without relying on external services.
  • Full control — Pin a specific version, customize the tool set, or integrate with your existing intranet.

Docker

The fastest way to get started. The Dockerfile builds the application and serves it with a lightweight web server.

Using docker-compose (recommended)

git clone https://github.com/nouploads/nouploads.git
cd nouploads
docker compose up -d

Serves on http://localhost:3000

Using Docker directly

docker build -t nouploads .
docker run -d -p 3000:3000 nouploads

Build from source

If you prefer to build and serve the static files yourself:

git clone https://github.com/nouploads/nouploads.git
cd nouploads
npm install
npm run build

The build output is in apps/web/build/client/. Serve this directory with any static file server — Nginx, Apache, Caddy, or even npx serve apps/web/build/client.

Static hosting

Because NoUploads is entirely static, you can deploy the build output to any static hosting platform:

  • AWS S3 + CloudFront
  • Cloudflare Pages
  • Netlify or Vercel
  • GitHub Pages
  • Any internal file server

All routes are pre-rendered as static HTML files with client-side hydration. No server-side rendering is needed at runtime.

How NoUploads differs from other self-hosted tools

Most self-hosted file conversion tools (like ConvertX or HRConvert2) process files on the server. This means the server needs sufficient CPU and memory to handle conversions, and files must be uploaded to the server for processing.

NoUploads is different: even when self-hosted, all file processing happens in the user’s browser. The server only serves static files. This means:

  • Minimal server resources (any web server works)
  • No file size limits imposed by the server
  • No temporary files stored on disk
  • Zero server-side attack surface for file processing vulnerabilities

License

NoUploads is licensed under AGPL-3.0. You can self-host it freely for personal or organizational use. If you modify the source code and make the modified version available over a network, you must release your changes under the same license.