# Project pack: Papra @ d0638d1 Facts about **Papra** for an AI following the [BespokeAI handover guide](https://handoff.bespokeai.software/guide/v4.md). Pinned to one version; never changes after publication. > Papra is a simple, self-hosted document archive. Drop in scans and PDFs, tag them, search their text, and let it read new files from an email or a watched folder. It is a lighter alternative to bigger document systems and is designed to be easy to run. ## Setup path (checked 2026-11-03) - **Needs Docker.** Tell the person before any setup work; no light non-Docker route is documented upstream. Docker Desktop on Windows may need a computer restart and an admin-only Windows feature (virtualisation); say so and let the person decide. - Verdict source: https://docs.papra.app - You may be unable to download source archives or run commands in this session. The person downloads and runs things; if you cannot fetch something, give any changed file in full in chat with its path. ## Version and source - Repository: https://github.com/papra-hq/papra - Pinned commit: `d0638d11e1ca3795600b7baa68afed1d5b1daabb`. Use exactly this version. - Zip the person can download in a browser: https://github.com/papra-hq/papra/archive/d0638d11e1ca3795600b7baa68afed1d5b1daabb.zip - Fresh checkout (only if you have a shell and git): use the commands below in an empty folder. If this exact source is already checked out, keep your branch and use the development command; do not clone again or reset local changes. - Official docs: https://docs.papra.app - Live demo: https://demo.papra.app/. The official demo. Don't upload real documents. - Licence: **AGPL-3.0-only**. Free to use and change. If other people use your changed version, including over a network (for example a website you host for them), you must offer them your source code under the same licence. Using it privately for yourself or your household has no extra obligations. ## Commands from the pinned source - Developer commands (they may use Docker): ```sh git clone https://github.com/papra-hq/papra bespoke-papra cd bespoke-papra git checkout --detach d0638d11e1ca3795600b7baa68afed1d5b1daabb # Prepare development requirements and local configuration first. corepack enable pnpm install pnpm dev ``` - Separate trial of the current upstream release (not your changes; sample data and a separate data directory only): ```sh docker run -d --name papra -p 1221:1221 -e AUTH_SECRET=replace-with-a-long-random-string -v papra-data:/app/app-data ghcr.io/papra-hq/papra:latest # then open http://localhost:1221 ``` - Tools these commands use: Docker for a trial, Node 22 and pnpm for development - Develop: `pnpm dev` - Test: `pnpm test` - Check/lint: `pnpm lint` - Stack: typescript (SolidJS, Hono, Drizzle ORM, pnpm). Difficulty for a non-developer with an AI: **moderate**. A modern TypeScript monorepo with a Solid front end, a Hono server and a SQLite database. Tags, rules and ingestion are configuration; new features touch both sides. Personal data: **yes**. Stored in: A SQLite database and your documents in /app/app-data (a Docker volume). Secrets are entered by the person, never in chat. --- Later, only when a step needs it: [reference.md](https://handoff.bespokeai.software/p/papra/d0638d1/r3/reference.md) (customisation points, must-keep-working, data and costs, coding conventions) · [hosting.md](https://handoff.bespokeai.software/p/papra/d0638d1/r3/hosting.md) (long-term hosting; hosts are paid third parties) · [bespoke.yaml](https://handoff.bespokeai.software/p/papra/d0638d1/r3/bespoke.yaml) · [SKILL.md](https://handoff.bespokeai.software/p/papra/d0638d1/r3/SKILL.md)