photoview / photoview

Photo gallery for self-hosted personal servers
https://photoview.github.io/
GNU Affero General Public License v3.0
5.01k stars 383 forks source link

Provide a remote worker for scan job #1017

Open kkovaletp opened 1 month ago

kkovaletp commented 1 month ago

Is your feature request related to a problem? Please describe. Photoview can be deployed on a low-performance server, as most of the time it doesn't need a lot of resources to run. However, scan job needs more CPU and preferable GPU acceleration to process source media. This job might run 'forever' on such low-performance servers.

Describe the solution you'd like I'd like to have a separate deployable part, which I can deploy on another system in the network that has more resources to run the scan job. Then Photoview server could use the results of the remote job run in the same way as if it is run locally. It should be possible to deploy as a Docker image or installable on the host.

Additional context This issue is to collect more opinions and ideas for this topic

googollee commented 1 month ago

The first thing in my mind is, how to transfer files between photoview and remote works. Here are some options:

Any other ideas?

kkovaletp commented 1 month ago

The other option for files handling is to integrate 3rd-party file storage services (could be self-hosted, like OwnCloud/NextCloud, or cloud - a lot of *drive, Dropbox,...), Cloud providers (AWS, Azure, GCP), etc. + is relatively easy to integrate, as there are libs and frameworks, as well as a lot of ready implementations in other open-source projects + in the case of Cloud providers integration, Photoview will be 1 step closer to being ready for hosting in the cloud (however, this is currently not in our roadmap: nice benefit, but not a goal or significant advantage to consider when making the decision) - is the file transfer speed limit:

kkovaletp commented 1 month ago

There is also the shared volume Docker compose architecture, which allows mapping the same physical folder to more than 1 compose services (containers). But it doesn't work for distributed over different hosts deployment: Docker Swarm or Kubernetes is needed. Also, it doesn't solve the case when either Photoview or a worker (or both) is deployed directly on the host