DueproofGitHub

Your notices stay on your server

Notices carry tax positions, PAN and GSTIN numbers, and amounts in dispute. Dueproof is built so that none of it has to leave the building.

What is built in

Nothing leaves the machine

Translation runs locally with network access switched off. There is no telemetry, no licence server, no cloud call.

Sign-in

Built-in accounts with scrypt-hashed passwords and hashed session tokens, a brake on repeated attempts, or your own single sign-on through a proxy.

An audit trail

Sign-ins, uploads, views, proof-panel opens, searches, edits and exports are appended to a log that is never rewritten.

A hardened web layer

A strict Content-Security-Policy with no inline script and no third-party origins, CSRF protection, no framing, no referrer.

Careful with uploads

Files are accepted by their contents, not their names, with caps on size, pages and pixels. Page images are served without path tricks.

Safe exports

Document text is escaped wherever it is shown, and spreadsheet formula injection is defused in CSV.

What is up to you

  • Put HTTPS in front with a reverse proxy; an example Caddy configuration is included.
  • Keep the port off the open internet.
  • Schedule backups with dueproof backup, and test a restore.
  • Keep the operating system, Python and Tesseract patched.

What it does not do yet

  • Per-document access control: everyone signed in sees every document.
  • Malware scanning of uploads.
  • Encryption at rest beyond what your disk provides.
  • Two-factor sign-in of its own. Use your identity provider in proxy mode for that.

Found a vulnerability?

Please don't open a public issue. Report it privately through GitHub's vulnerability reporting on the repository, and we will reply there.