If you are looking to quickly setup Paperless-NGX check out my little side project https://github.com/jdoss/ppngx. It will setup everything you need to run Paperless-NGX (PostgreSQL, Redis, Tika, Gotenberg, PaperlessNGX, and SFTPGo) inside a Podman Pod on a Linux based system. You can optionally set it up to start on boot via systemd.
I run this locally on my workstation and send PDFs many times a week from Brother ADS2800w scanner via SFTP. Paperless NGX has reduced my home office paper piles to almost zero. It is a fantastic open source project and I am very thankful it exists.
They will also automatically launch if you have docker running at boot. Is it just because you prefer redhat/IBM's docker equivalent stack to the much more common and cross platform docker install?
I would want this over docker and docker-compose any day.
I've been using docker compose in production for a couple of years now and it adds another layer on top of systemd that is a continuous source of headache, especially during updates.
Podman gets it right: no central daemon, can automatically generate systemd services for a whole pod. Updates are seamless.
Seconded on the things Podman gets right. Also the isolation of all of the containers in their own network name space makes port management on my workstation super easy. I run many things like Paperless NGX using the same pattern in the start.sh file of my little project. I then use Traefik to route traffic to the right pod. It works great.
Alright, but you've sort of re-invented docker compose there, but as a shell script. These days docker compose even work with podman if you really prefer IBM's docker implementation to the original.
I am well aware that docker compose works mostly with Podman. I prefer to use Podamn with systemd over it. I have you even tried giving this a shot? Maybe give using Podman + systemd following my example in Bash instead of Docker + Docker Compose and you will see why?
The only hard dependencies are Redis and Postgres. The official stance is to run them from the provided docket compose and the container for paperless-ngx itself is kept updated and working for the stable containers of redis and postgres.
Tika and Gotenburg are additional features for scanning and converting MS Office documents to PDF. Not necessary and I don't use them in my setup at all. Same with sftpgo. I'm not sure for its usecase. But paperless doesn't directly depend on it in anyway.
It's in this script so I can SFTP PDFs from my scanner over the network. Push button, scan paper and then it is SFTP'ed to a shared volume between SFTPGo and Paperless so it is detected and ingested into Paperless NGX automatically.
Why does this need so many services? Is it meant to scale to enough users where you'd want postgres and Redis? Seems like everything but the machine learning on this could be pure Python if they wanted.
I'd probably still use it since there's awesome tools like this to set it all up, but it seems like a confusing architecture.
I run this locally on my workstation and send PDFs many times a week from Brother ADS2800w scanner via SFTP. Paperless NGX has reduced my home office paper piles to almost zero. It is a fantastic open source project and I am very thankful it exists.