Stop chasing clients for documents
DocRequest is a client portal you run on your own server. Send a secure link with a checklist, your client uploads from their phone, and you review, accept and download. Every file is scanned, encrypted and deleted on schedule.
Follow one request from start to finish
Click any step. Your view on the left, your client's phone on the right.
Pick a checklist and send one secure link
Choose a template, add the client's name and email, and send. DocRequest emails them a unique link that only opens this one request.
Why not just use email?
Because passports end up sitting in inboxes, files arrive as IMG_4021.jpg, and someone on your team spends their week writing “just following up”. Paid portals fix that, but your clients' documents then live on someone else's servers.
| Feature | Email and WhatsApp | Hosted portals | DocRequest |
|---|---|---|---|
| Documents kept out of inboxes and chats | |||
| A checklist that shows what is missing | |||
| Reminders sent for you | |||
| Files stay on your own server | |||
| Photo location data removed | Varies | ||
| Source code you can check | |||
| Cost | Free | Monthly, per user | Free |
Follow one file through DocRequest
Security you can see, not a badge in the footer. Step through what happens to a photo of a passport from the moment it is uploaded.
Links stored only as hashes
Even with the database, nobody can rebuild a client link.
Codes are rate-limited
6-digit codes expire in 10 minutes and lock after 5 wrong tries.
Workspaces never mix
Every query is scoped to one business, with Owner, Admin and Staff roles.
Append-only audit log
Views, downloads, decisions and deletions are recorded and cannot be edited.
No client details in logs
The audit log records actions, never names, emails or file names.
Checklists written for your clients
Five ready-made templates, each with plain help text and the file types it accepts. Copy one, change it, or build your own.
New tenant
5 documents, edit any of them per clientRunning in minutes, on your own server
One command starts everything. A small VPS is enough, and there is a Terraform guide if you would rather use AWS.
- Web app
- Next.js, port 8020
- API and worker
- NestJS with BullMQ queues
- Database
- PostgreSQL 18
- Queue and cache
- Redis
- Virus scanner
- ClamAV, optional
- File storage
- Local disk or S3-compatible
$ git clone https://github.com/toukirofficial/docrequest.git$ cd docrequest && ./scripts/init-env.sh$ docker compose up -d✔ docrequest-postgres Started✔ docrequest-redis Started✔ docrequest-clamav Started✔ docrequest-api Started✔ docrequest-worker Started✔ docrequest-web Started✔ Ready on http://localhost:8020
Questions
Something else? Ask on GitHub.
Is it really free?
Yes. DocRequest is open source under the AGPL-3.0 licence. You only pay for the server you run it on.
Do my clients need an account?
No. They get a link that only works for their request, and confirm it is them with a 6-digit code sent to their email.
Where are the files stored?
On your own server's disk, or in any S3-compatible storage you choose. Every file is encrypted before it is saved, whichever you pick.
What if someone uploads a virus?
ClamAV scans every upload. An infected file is deleted before anyone can open it, and the client is asked to upload it again.
How long are files kept?
You decide, per workspace. By default files are deleted 30 days after a request is complete or expires, and client details are anonymised.
Can my whole team use it?
Yes. Invite colleagues as Admins or Staff. Admins manage the team, templates and settings. Staff create and review requests.
What do I need to run it?
Docker on a small Linux server. Or run it directly with Node.js 24, PostgreSQL 18 and Redis.
Your next client request could be the last one you chase
Try the demo with made-up clients, or install it on your own server today.