jonaswinkler / paperless-ng

A supercharged version of paperless: scan, index and archive all your physical documents
https://paperless-ng.readthedocs.io/en/latest/
GNU General Public License v3.0
5.37k stars 357 forks source link

Configure backend from frontend #781

Open jonaswinkler opened 3 years ago

jonaswinkler commented 3 years ago

It would be comfortable and better UX if I could configure the backend from the frontend (i.e. what I now can do with environment variables). For one thing, it's easier to change it via a browser than to restart the docker container with a different set of env vars. Additionally, it's much easier to discover possible settings.

Originally posted by @fdw in https://github.com/jonaswinkler/paperless-ng/discussions/779

jonaswinkler commented 3 years ago

Would something like this be useful?

image

shamoon commented 3 years ago

I’m not sure I would personally use it but seeing how incredibly specific peoples’ workflows are on here I’m sure others would!

C0nsultant commented 3 years ago

Generally, I support the idea to improve approachability of the project. One concern I have is the consistency between configuration on-disk (or in-environment) and the settings in the frontend. The most common (and reasonable) approach would probably be to have values which were manually set in the frontend take precedence over the other ones... but then again, the state would be considered inconsistent. Editing the configuration file would generally not be an option since permissions to modify the file should not be granted. Changing the environment variables suffers the problem that it will not be persistent.

fdw commented 3 years ago

I quite like it, I must say :)

Regarding consistency: I see setting environment variables as defining the default value that can be changed later. As a change in the environment variables does not propagate to the running system, consistency was never guaranteed. Now we would have just another way to set the values, and it would not require restarting the system (or even rebuilding the docker container).

jonaswinkler commented 3 years ago

Makes me wonder if this is worth the effort. Probably not. Most of these things don't get touched again after being set up initially.

fdw commented 3 years ago

I don't see it that way, that's why I raised this issue: While I did set some environment variables when I set it up, paperless-ng now has been updated several times, gained new features, but I have not changed the docker setup (partly because the update is automated with Watchtower), partly because I don't read the release notes every time a new version is released, so it's hard to know what's possible now. Similarly, the supported environment variables and their values are not easy to discover, and impossible without documentation.

For me, I'd like to setup paperless-ng with almost no configuration (or even absolutely none) and configure it via the frontend. That way, I can easily update the configuration when new features pop up, or when I want to test something out. Re-configuring docker is a lot more effort. Not to mention the bad UX of "oh, I made a typo in the variable. Now I have to start again" that could be avoided with a frontend.

kftb commented 3 years ago

I have just started on the paperless-ng journey this week. I haven't used docker-compose as much and the docker-compose.env did cause a few loops of figuring out how it works and when it pulls in updates (still hung up on a few things).

Long story short: I would have appreciated to set backend settings in the frontend, especially those that might change (e.g. PAPERLESS_FILENAME_DATE_ORDER) during the process of finding the optimal setup.