I have a website that was writing using .net stack technologies. It is accessible via the internet. Some of my potential (Enterprise) customers want me to install the whole website on their own VM and we dealt with them that the website will live on their VM the only one month (it is enough time to test its functionality). They want to install the website locally because it is working with processing specific files that customers don't want to upload via the internet. My worries are to protect a few years of development from steal and reproducing. If the potential customers become to be Enterprise then we'll sign a EULA license and I'll remove licensing from the website at all on their server.
The first thing I decided to do is to protect the source code by applying obfuscation. The second thing is to modify the website to work somehow with a license file (probably customer VM will be offline without access to the internet). The main restrictions of license are: It is not allowed to move the website to the other VMs (need somehow to bind it to machine ID). It should stop responding to all incoming requests after the trial period (it could be any period), maybe just respond with a specific HttpStatusCode, like Service Unavailable.
I'm a skilled programmer but I didn't do such things before and I can implement my own license option. But I want to be sure about security and performance.
Could anyone provide the best practices they faced to implement what I need? Thanks.