I've built a proof of concept for a highly reliable minecraft server hosting service which allows individuals to immediately start a server (without prepaying) from a set of templates which are stored as Github gists. I'm thinking about starting out with two different sizes of servers, which I'll describe in a minute, along with the billing strategy. I've run the numbers, and it looks like it's possible to make some small margins, given some assumptions pan out.
Here's an overview of how the system would work:
- user comes to site and browses available configurations (minimal configs to start until others start contributing)
- user selects configuration and clicks start
- the system starts a 1GB server using the configuration (typically takes 30 seconds in testing)
- system shows a named host xxxx.yyyy.com:port to the user to connect
- after the user connects, the page updates and starts a 10 minute timer
- user is presented with options on the page to select from for the final server configuration
- if a user is skilled in creating configurations, building maps, etc., and is open to using Dockerfiles, they can add a config to the system for themselves or others to use by committing the code to Github and adding that URL to the site.
- some sort of profile is created for users by which they can share their creations
- auto backups and sub 2 minute auto restarts on server fail (this is core to the container system I'm using)
- more features after initial release
Here's the tentative pricing schedule based on my cost analysis:
- 1GB RAM/10GB of SSD storage in on-demand* mode: $5/month
- 1GB RAM/10GB of SSD storage using config in always on mode: $7.50/month
- 3GB RAM/20GB of SSD storage in on-demand* mode: $10/month
- 3GB RAM/20GB of SSD storage in always on mode: $15/month
*On-demand mode suspends the server's container when nobody is playing on the server. The cluster automatically starts container when a player attempts to connect or sends a request to the API (so you could automate a "warm up" request). Server restarts take <1 minute and in my testing the client simply waits until the server becomes available and then connects. i.e. it's not a horrible experience for the player.
Appreciate any feedback anyone has - negative or positive. Trying to figure out if I should take the POC to production!