Clarification on V5 Software Updates

Thanks very much @david , that helps a lot. A couple more clarification questions.

Snappdf should survive any updates as the system only overrwrites files, without deleting old ones.

Ah, so, my first step in my plan was to “Backup my current Invoice Ninja root path, and then delete all files in the root path except .env” which worked fine in v4, and then I’d copy in the new files/directories, leaving only .env from my previous set of files. This makes me think snappdf wouldn’t survive, because I’m copying down a brand new set of files every time, with the exception of keeping my old .env file. Should I be instead just leaving all the existing files in place and overwriting them, instead of deleting them all? My concern I had with not deleting them all and instead just overwriting was that if, say, files were removed from a future version release, they’d never be deleted from my installation, which would leave potentially outdated/insecure files in a web accessible directory.

If, after second thought, you think this would indeed be destructive to my installation for snappdf or other elements, should there be other files or directories I exclude from deletion (along with .env) before copying over the new files/upgrading? I’m thinking something similar to how in WordPress installations, you delete everything except wp-config.php and the wp-content directory, but copy over all the new files otherwise, and overwrite the wp-content directory so only changed files are updated but everything else stays in place. That leaves all your plugins and themes untouched, but upgraded/replaced if a newer version exists in the new version’s files.

The only other requirement would be once the file have been copied over is to run /update?secret=

Gotcha, that makes sense; I saw that in the documentation. Looking in the .env file, my update secret is just ‘secret’, but I don’t recall seeing anywhere in the setup that I should change this. In fact, the whole v5 self hosted installation page doesn’t mention the word ‘secret’ once. Should this be changed to a random string? I’m assuming now I’d just run /update?secret=secret.