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.
That is a lot of dependency. How stable is Paperless with all those applications making uncoordinated changes on their own schedules?