Papra is a free, open source document management & e-signatures project written in TypeScript and released under AGPL-3.0. It has 5,466 GitHub stars, 301 forks and 190 open issues, and was last pushed 9 hours ago. On this registry it ranks #7 of 18 tracked projects in Document Management & E-Signatures, with 5 head-to-head comparisons available. It gained 59 stars over the last 6 tracked days.

What is Papra?

Papra is a minimalistic, self-hostable, open-source document management and archiving platform, written in TypeScript under the AGPL-3.0 licence, for anyone who needs to store documents for the long term and find them again later.

What it is

Papra is a document management and archiving platform designed to be simple to use and accessible to everyone. It works as a digital archive for documents, a place to store and forget files and then retrieve them whenever they are needed again. The project is open source, written in TypeScript, licensed under AGPL-3.0, and carries the topics app, archive, document, documents, and self-hosted. It is distributed as a container image on the GitHub Container Registry, and a live demo runs at demo.papra.app with no backend and client-side local storage only.

The concrete problem it solves is retrieval after long periods of forgetting. A receipt for a gift bought last year or a warranty for a new phone tends to disappear into mailboxes and local folders, and the moment it is needed it cannot be found. Papra gives those documents one central hub where they can be uploaded, tagged, searched, and shared, and it lives in the self-hosted, container-based ecosystem common to open-source server applications rather than in a desktop filing tool.

Key capabilities

  • Document management: upload, store, and manage documents in one place.
  • Organizations: create organizations to manage documents with family, friends, or colleagues, with per-organization custom properties for extra metadata.
  • Search and content extraction: full-text search with advanced filters, backed by automatic extraction of text from images and scanned documents.
  • Automated ingestion: send or forward emails to a generated address, or import documents automatically from a folder.
  • Tagging rules: tags applied automatically based on custom rules, alongside manual tags.
  • CLI, API, SDK, and webhooks: manage documents from the command line or build custom applications on top of Papra.
  • Document sharing: share documents with external users with optional expiration dates and password protection.

Who uses it and how

  • Individuals keeping a long-term personal archive of receipts, warranties, and similar paperwork that has to survive years of not being opened.
  • Households, groups of friends, and colleagues who create an organization to hold shared documents instead of passing files back and forth.
  • Self-hosters running the container on port 1221 on a VPS or home server, keeping documents on infrastructure they control.
  • Teams and developers integrating through the API, SDK, and webhooks, or scripting bulk document operations with the CLI.
  • Users who bring documents in without manual upload, relying on email ingestion, folder ingestion, and content extraction so scanned files become searchable text.

Getting started

The quick start is a single Docker command: docker run -d --name papra -p 1221:1221 -e AUTH_SECRET=your-secret ghcr.io/papra-hq/papra:latest. The AUTH_SECRET in the README example is fine only for testing, so a real instance should generate its own with openssl rand -hex 48, and further configuration options are documented at docs.papra.app/self-hosting/using-docker.

How it compares

The facts provided name no similar or competing tools, so Papra stands alone in this registry. There is no list of paid products to contrast it against on licence, self-hosting, data ownership, or cost model.

When to use it — and when not to

A self-hoster has to run and maintain the container, generate and keep an AUTH_SECRET, and manage the deployment through the self-hosting documentation. It is a poor fit for anyone who needs a mobile app, a desktop app, or a browser extension today, since all three are listed as coming maybe one day, and document requests are still coming soon. Honest caveats remain: the repository carries 190 open issues, several advertised capabilities are roadmap items rather than shipped features, and the project is free to use but explicitly not free to run and develop, relying on GitHub Sponsors and other sponsorship to continue.

project readme (upstream, from github) — read inline

Papra - Document management platform

Minimalistic document management and archiving platform.

Demo   •   Docs   •   Self-hosting   •   Roadmap   •   Discord

Introduction

Papra is a minimalistic document management and archiving platform. It is designed to be simple to use and accessible to everyone. Papra is a platform for long-term document storage and management, like a digital archive for your documents.

Forget about that receipt of that gift you bought for your friend last year, or that warranty for your new phone. With Papra, you can easily store, forget, and retrieve your documents whenever you need them.

A live demo of the platform is available at demo.papra.app (no backend, client-side local storage only).

Papra

Features

  • Document management: Upload, store, and manage your documents in one place.
  • Organizations: Create organizations to manage documents with family, friends, or colleagues.
  • Search: Quickly search for documents with full-text search and advanced filters.
  • Authentication: User accounts and authentication.
  • Dark Mode: A dark theme for those late-night document management sessions.
  • Responsive Design: Works on all devices, from desktops to mobile phones.
  • Open Source: The project is open-source and free to use.
  • Self-hosting: Host your own instance of Papra using Docker or other methods.
  • Tags: Organize your documents with tags.
  • Email ingestion: Send/forward emails to a generated address to automatically import documents.
  • Content extraction: Automatically extract text from images or scanned documents for search.
  • Tagging Rules: Automatically tag documents based on custom rules.
  • Folder ingestion: Automatically import documents from a folder.
  • CLI: Manage your documents from the command line.
  • API, SDK and webhooks: Build your own applications on top of Papra.
  • i18n: Support for multiple languages.
  • Custom properties: Define per-organization custom properties to store additional information about documents.
  • Document sharing: Share documents with external users with optional expiration dates and password protection.
  • Coming soon: Document requests: Generate upload links for people to add documents.
  • Coming maybe one day: Mobile app: Access and upload documents on the go.
  • Coming maybe one day: Desktop app: Access and upload documents from your computer.
  • Coming maybe one day: Browser extension: Upload documents from your browser.
  • Coming maybe one day: AI: Use AI to help you manage or tag your documents.

Support

Papra is a free and open-source project, but it is not free to run and develop. If you want to support the project, you can become a sponsor on GitHub Sponsors or Buy me a coffee. If you are a company, you can also contact me to discuss a sponsorship.

Self-hosting

Papra is dedicated to providing a simple yet highly configurable self-hosting experience.

For a quick start, simply run the following command:

docker run -d --name papra -p 1221:1221 -e AUTH_SECRET=a-dummy-secret-for-testing-purposes-only ghcr.io/papra-hq/papra:latest

The AUTH_SECRET above is fine for kicking the tires, but for any real instance you should generate your own with openssl rand -hex 48 (or similar).

Please refer to the self-hosting documentation for more information and configuration options.

Contributing

Contributions are welcome! Please refer to the CONTRIBUTING.md file for guidelines on how to get started, report issues, and submit pull requests. You can find easy-to-pick-up tasks with the good first issue or PR welcome labels.

License

This project is licensed under the AGPL-3.0 License - see the LICENSE file for details.

Community

Join the community on Papra's Discord server to discuss the project, ask questions, or get help.

Credits

This project is crafted with ❤️ by Corentin Thomasset. If you find this project helpful, please consider supporting my work.

Acknowledgements

Stack

Papra would not have been possible without the following open-source projects:

  • Frontend
    • SolidJS: A declarative JavaScript library for building user interfaces.
    • Shadcn Solid: UI components library for SolidJS based on Shadcn designs.
    • UnoCSS: An instant on-demand atomic CSS engine.
    • Tabler Icons: A set of open-source icons.
    • And other dependencies listed in the client package.json
  • Backend
    • HonoJS: A small, fast, and lightweight web framework for building APIs.
    • Drizzle: A simple and lightweight ORM for Node.js.
    • Better Auth: A simple and lightweight authentication library for Node.js.
    • CadenceMQ: A self-hosted-friendly job queue for Node.js, made by Papra.
    • And other dependencies listed in the server package.json
  • Documentation
  • Project
  • Infrastructure

Inspiration

This project would not have been possible without the inspiration and work of others. Here are some projects that inspired me:

Sponsors

Shout-out to our current sponsors: GitHub Sponsors

Frequently asked questions

Is Papra free to use?

Papra is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Papra do?

Organize and secure your documents in one central hub

What is Papra written in?

Papra is primarily written in TypeScript. Its source is publicly available at https://github.com/papra-hq/papra, and it has 5,466 GitHub stars.