That's a good question because the real heart of the matter is what is MINIMAL?
What prevents us from building and deploying software and running it forever without ever touching it?
- OS patches. Modern OSs are continually patched to address security vulnerabilities. Running on a serverless cloud environment eliminates you having to manage those patches.
- System patches - database systems, web servers, those kinds of things. Just like OSs, these types of systems are also continually patched. Again, a serverless cloud environment eliminates your having to manage those patches.
- Library patches - these are the libraries your system is utilizing, for example, your web framework. You can push a lot of that onto your serverless cloud environment, but not all of it. You need a "push-button" deployment that will grab library patches, build, test, and deploy.
- Stable libraries/frameworks - to minimize your maintenance you need libraries/frameworks that aren't changing every other Tuesday. For a while there the JavaScript space was really bad about the constant changes. Even it has settled down over the past few years. A good rule-of-thumb is to not use a library/framework that hasn't been around and in widespread use for at least 3-5 years. You're balancing modern tooling and frameworks against stability.
Where does that leave us?
- Serverless cloud environment
- Fully-automated build, test, and deployment - you can even schedule to run on the first of the month
- Using libraries/frameworks that are at least 3-5 years old and have widespread use
- Expect every 2-3 years there being enough version drift that you may need to make minor modifications to your implementation
If you do these things, then you can expect to run with MINIMAL maintenance for 10-20 years.
The biggest threat to you is going to be the cloud environment. If you consider OS and System patching to be MINIMAL activities, then you can run your own server. All depends on how you define MINIMAL. Personally, I would use AWS since their serverless platform has been stable for several years now and I can automate running my build/test/deploy script to once a month and not even have to worry about it until the test fails - which I would expect it to every 2-3 years. In other words, it should be 2-3 years before you have to do ANYTHING. That's what I call MINIMAL!