Update plugins without downtime
Describe the problem to be solved When updating a plugin the plugin will be unavailable during the installation. We're storing all our plugins at s3fs, which means it takes 15-60 minutes to update.
Describe the solution you would like: Let the plugin be available during the whole installation.
Describe alternatives you have considered Install in the new version in tmp folder and just do a quick switch when it's done.
An easy solution could be to have the following file structure:
storage/plugins/latest (symlink) storage/plugin/[checksum of package.json]
So the latest folder is always stable, and the symlink will change after update. Any opinions, @Chocobozzz ?
I'm sorry but I'm not sure I want to maintain this particular use case. Plugin installation/updates should be quite fast (a few seconds). If it takes 15-60 minutes on your system, I don't think s3fs is the appropriate tool to store PeerTube server files (including plugins).
I know s3fs is a bad solution for such case, and we will switch do a disk. But even a few seconds is bad for us, especially if something goes wrong with the update and the plugin will be unavailable for a longer time.
The use case is that we've a plugin that exposes an API that is critical in some apps that we're developing.