Repository navigation
Releases: DerKezorm/nexpaper
Release list
nexpaper 1.4.0
Deadlines on a page of their own, reminders for invoices, cancellations and warranties, and a keeping time for every kind.
New
- Deadlines in one place. The menu now has Deadlines, between Archive and Vaults, with the number for the next 14 days. The page lists what has to be paid, cancelled or claimed under a warranty, from every vault where you may edit: overdue, the next two weeks, later. Mark a deadline as done (paid, cancelled) and open it again, or put it off for yourself by a day, three days or a week.
- Contracts that renew. Besides "Contract until" a contract has a notice period (weeks or months) and a renewal (months). nexpaper works out the last day to cancel and shows it beside the field. Without a cancellation the end moves on by itself after it has passed, once per end, with a line in the history. When a notice has to arrive is written in the contract; nexpaper only does the sums.
- Reminders by push and mail (My account, Reminders). Everybody who may edit in a vault is reminded at 8 in the morning in their own time zone: an invoice 3 days ahead, the last day to cancel 14 days ahead, a warranty 30 days ahead, and once more on the day itself. Push, mail, or a weekly overview by mail on Mondays, only when something is coming up. Mute single vaults, send yourself a test message. A reminder names the kind, the day and the title of the document, never the amount, the text or the notes. From the start: push one by one, mail and the weekly overview off.
- Keeping times for kinds (Organise, Kinds, column "Keep"). A kind can say how many years its documents are kept, counted from the end of the year of the document date. No kind has one from the start. nexpaper asks whether the time also applies to the documents already there; a date set by hand stays. Documents whose time is over show up on the Deadlines page under May go, where you choose what goes to the trash. nexpaper never deletes anything by itself. The usual times shown beside the setting are a help without guarantee and no legal advice.
- Search and export. New search words
deadline:open,deadline:overdue,deadline:<30andkeep:expired, a "Deadline" filter in the archive, and the export for the tax adviser lists the deadlines and "Keep until". - For programs.
GET /api/v1/deadlines,/api/v1/kinds/{id}/keeping,/api/v1/me/reminders.PATCH /api/v1/documents/{id}takesset_datesandremove_datesfor single dates.GET /api/v1/dashboardalso names the last day to cancel asnoticeand leaves out what is done.
Update
docker compose pull && docker compose up -d.
Make a backup first (Settings, Backups). 1.4.0 changes the database (schema 10 to 13) and makes a backup of its own before it does. After that no older version opens the database, including 1.1.0 and 1.0.1, which was possible until 1.3.0: the only way back is to restore that backup with the older version.
Deadlines that are already entered cause no flood of reminders at the first start: what was inside its lead before is not reminded again, the day itself still is. A "Keep until" that exists already counts as set by hand.
nexpaper 1.3.0
Titles that say more, your own instructions for the AI, and an intake folder that may lie anywhere in the container.
New
- AI titles that tell a document apart. The AI now proposes titles that say what the document is and what is particular to it, such as "Invoice 110526 – Tyres" instead of just "Invoice": with the number of an invoice, a contract or a policy and what it is about, as far as the text names them. Nothing is made up. (#2)
- Your own instructions for the AI (Settings, AI). As the operator you can give the AI additional instructions, for example how your titles should look or in which language, at most 2000 characters. They are added to the fixed rules and change nothing in which fields the AI fills and what nexpaper checks. Left empty, everything stays as it was. (#2)
Fixed
- An intake folder wherever it is mounted. In the container nexpaper took only
/data/eingangas the intake folder; any other path was refused with "nexpaper must not take files from this folder", a mounted one like/scanstoo. Now any mounted folder will do that does not lie in the program, in the data or in a system folder. (#1)
Update
docker compose pull && docker compose up -d. No change to the database; the new setting starts empty.
nexpaper 1.2.1
A fix for the new archive.
Fixed
- Whole titles in the archive's table. On a laptop the table cut the titles short after a few words, because the other columns had fixed widths. Now title and sender share the room, the title gets twice as much.
Update
docker compose pull && docker compose up -d. No change to the database or the settings.
nexpaper 1.2.0
The archive stays easy to find your way in, with thousands of documents too.
New
- The archive starts with an overview. Without a search or a filter it shows the newest documents and how the archive spreads: by sender, by kind and by year, each with its number of documents, and the most frequent tags. A click on an entry shows exactly those documents; "All senders" opens the whole list with a search field.
- A table with pages instead of an endless list. A search, a filter or "Show all" opens a table with numbered pages (25, 50 or 100 a page), sorted by title, sender, date or amount with a click on the column. The page, the order and the filters stand in the address, so a bookmark leads back and the back button returns to the overview.
- The search of the API takes
pageandsort. Beside the cursor, which stays for apps. Documents without a sender or an amount come last either way.GET /api/v1/search/overviewgives the numbers of the overview, with the rights of the search.
Changed
- "Year" instead of "Time" in the archive's filter, with the years there are documents from.
Update
docker compose pull && docker compose up -d. No change to the database or the settings.
nexpaper 1.1.2
Two fixes: HDR photos from an iPhone and very large mailboxes.
Fixed
- An HDR photo from an iPhone is one page. Safari sends an HDR photo as a JPEG with its gain map as a second picture behind it (Multi-Picture Format). nexpaper made a page of each, so the document got a small grey second page. Now only the photo becomes the page. As a profile picture such a photo was refused; now it is taken.
- A mailbox of well over 100,000 mails works as the input. After the first pass, nexpaper asked the server for the list of all mails to find the newest one. The server answers that in one line, and from about 125,000 mails the line was longer than nexpaper would read: fetching stopped at the same place on every run. Now nexpaper asks for the newest mail alone, and long answers are read too.
Update
docker compose pull && docker compose up -d. No change to the database or the settings.
nexpaper 1.1.1
A small fix for running behind a reverse proxy and for the language of the browser.
Fixed
X-Forwarded-Protocounts only from a trusted proxy. The Secure flag of the cookies (NEXPAPER_COOKIE_SECURE=auto) and the check "Ready for the internet?" (Settings, Sign-in) read the header from any sender, and the check took its leftmost value, the one a sender may have written. Both now follow only a proxy listed inNEXPAPER_TRUSTED_PROXIES, taking its rightmost value, so the check never says what the cookie does not do. The https hint of the check names that setting.Accept-Languageis read the same way everywhere. The app symbol's shortcuts, the language of a new account and of pushes now share one reader: the weight counts in any case and wherever it stands among the parameters, and every entry counts, not just the first 20.
Update
If nexpaper runs behind a reverse proxy, list it in NEXPAPER_TRUSTED_PROXIES or set NEXPAPER_COOKIE_SECURE: "on". Without either, cookies in auto mode no longer get the Secure flag.
docker compose pull && docker compose up -d. No change to the database.
nexpaper 1.1.0
Sign in through several providers, as in every nex app: authentik, Microsoft Entra ID or any other that speaks OpenID Connect. And a dashboard card for nexdeck.
New
- Several sign-in providers. Settings, Sign-in holds a list. Each provider gets a button on the sign-in page, in the order of your list, and per provider you choose whether new people get an account and whether it checks the second factor itself. Microsoft Entra ID works with several tenants too.
- authentik in one step. With an API token nexpaper sets up provider and application in authentik itself and says for each step what worked and what did not. Who would rather not hand out a token downloads a blueprint instead.
- Linking in your account. Every account links itself to the providers under My account, Security, with the password as confirmation, and undoes the link there. A mail address from the provider no longer links anything by itself; an invitation works through the provider too.
- A dashboard card can read nexpaper through an API key of scope read: what waits in the inbox, what is filed, and what falls due in the next 14 days (
GET /api/v1/dashboard, described indocs/api.md). Only counts, titles and dates, never the contents. nexdeck 0.38.0 has the cards for it. - Forgot your password and no mail server:
python -m app.reset_linkin the container prints a link to set a new one, valid once and for 24 hours (see the README).
Changed
- Your provider so far becomes the first entry of the list; every link stays, its redirect address too.
- An address from the provider counts for documents by mail only once you confirmed it, also one 1.0.1 took over as confirmed: confirm it once under My account, Profile.
- Behind a proxy nexpaper trusts, the scheme it reports counts too.
- "Require a second factor" is for signing in with a password: an account without a password, and whoever comes in through a provider whose entry has "The provider checks the second factor itself" on, is not made to set one up; the hints say so.
- Texts corrected: what API keys may do, when a push comes, how long a sign-in lasts and how the files on the disk are named. The shortcuts on the app symbol speak the language of your browser.
Update
docker compose pull && docker compose up -d. nexpaper adds what the database lacks at the start and makes a backup first.
Going back to 1.0.1: there, the sign-in through the provider works only if its entry had "The provider checks the second factor itself" on; otherwise only the password does. Coming up to 1.1.0 again brings everything back.
nexpaper 1.0.1
Changed
- Best kept at home. nexpaper now says plainly that your papers are best kept in your own network, and that a VPN is the way in from on the way. The README section is now "Reaching nexpaper from outside"; the checklist for those who open it anyway stays.
- No promise of apps to come. The texts about the API (Settings, API and pairing a device) speak of programs and apps of your own.
Update: docker compose pull && docker compose up -d.
nexpaper 1.0.0
The first release of nexpaper: Paperless-ngx for the home, the simple version. One container, SQLite and plain files on the disk.
New
- Everything comes into the inbox first. From the phone, the mailbox, the intake folder, Paperless-ngx or the browser: new files wait in the inbox with the fields filled in. Filter by vault, search the text too, look at every page large, and file many at once.
- Vaults. Everybody has a vault of their own, and the operator makes shared ones like "Household". Sharing is read, edit or manage; single documents can also go to one person or out as a link that ends.
- Organise. Senders, kinds and tags in one place, with how many documents each has: rename, merge or delete them. Typing a sender or a tag proposes the ones you already have.
- Text recognition and search. Scans become searchable PDFs and the original stays as it came. The search understands parts of words and filters like
kind:,sender:andamount:>. - Photographing with edge detection. The camera finds the sheet, takes the picture by itself and straightens it; several pages become one document. From the iPhone with a shortcut, from Android through Share.
- Pages and versions. Turn, delete and order pages, join documents or split a stack at blank separator sheets. Every change is a version of its own; the original stays.
- Import from Paperless-ngx. Look first, then take over documents with their text, correspondents, document types, tags, notes and owners. As in Paperless or everything into the inbox, with a progress bar; a second run takes only what is new.
- For small firms. E-invoices (ZUGFeRD, Factur-X, XRechnung) read from their data, rules that help with filing, a history of who changed what, and an export for the tax adviser as a ZIP.
- Best kept at home. nexpaper is meant for your own network, and from on the way for a VPN. It still comes with a second factor from the start, passkeys, sign-in through your own OpenID Connect provider (with a button for authentik), and a checklist in the settings.
- Backup and checking the files. The backup holds the database, the settings and the server secrets; a trial run tells what a restore would bring back. Once a week nexpaper checks the checksums of all files and warns at the document when one is missing or has changed.
- An open API. Everything the web app does goes through
/api/v1, with read keys and upload keys for scanners and tools of your own.
Install
services:
nexpaper:
image: ghcr.io/derkezorm/nexpaper:1.0.0
ports:
- "127.0.0.1:8560:8000"
volumes:
- ./data:/dataThe full compose file with the hardening and every option is in the repository. The first account you create is the operator; it needs the setup code from docker logs nexpaper.
nexpaper is an independent project and not affiliated with Paperless-ngx.