Hi Daniel, if it's any use, I develop on Linux Mint, though I tend to host on Shared hosting which is Windows as far as I know. But, here on my Linux dev machine, using Rider (I guess VS or VS Code would be similar) I just publish to a folder. If I then open that folder (or the folder with the project in it) in Terminal and type "dotnet run" it all builds and runs. So, I guess that's all you need to do on a Linux server as well. You don't need the TEMP folder at all as it will re-generate cleanly on first start.
Having said that, I don't know how to actually set it up to serve out to the web (yet ;)). Maybe @AaronSadlerUK could give you some advice on that.
As for the DB. If you're using SQLite, then just make sure you copy it over. IIRC it's in the umbraco/Data/Umbraco.sqlite.db. I have mixed feelings on SQLServer for Linux because it was great when it first came out, but they didn't keep up to date with Ubuntu's LTS's and so it's now a pig to install due to them being stuck on OpenSSL V1 (IIRC). So locally, if I need SQLServer, I use a Docker image and manage it with Azure Data Studio (which is awful compared to MSSQLMS as it's all scripts), but it runs quite well. MS have Docker images for MSSQL 2019 & 2022.
And finally, just watch your capitalisations. I'm forever falling foul of other developer's typos. Lost count of the times I've had to report incorrect path strings preventing package installs. /umbraco isn't the same as /Umbraco, etc. Vendr Checkout was a recent one and I've just put another issue in on Umbraco Forms. One day it will all be truly cross platform. It mostly is now, but not quite 100% ๐