I have a PHP app that I wrote myself and it’s currently hosted on my ODROID-C1 (basically a Raspberry Pi hardware wise). It’s working well…
I’d like to make it available to friends, so I am looking for free PHP hosting. But, I don’t want to violate any Terms of Service, specifically where the TOS says “Scripts that […] or perform processor intensive database processes are not allowed” see here.
What the app does: it’s for a video game, Destiny 2. It takes a players armor inventory (.CSV file that’s uploaded by the user) parses it, and looks for the most optimal set or armor.
On my ODROID-C1 (again, similar hardware to Raspberry Pi), this takes ~5 seconds to generate the webpage using my Destiny 2 csv file w/ ~280 viable armor items in it. The max anyone could possibly have is ~500 viable armor items.
The process effectively involves to a number of basic arithmetic operations. But, the number of operations scales non-linearly to the number of viable items in the players inventory.
Worst case: a player may have at most 500 items split evenly into 4 armor categories (i.e. abcd is maximal under the constraint a+b+c+d=500 when a=b=c=d=125). Each armor piece having 6 stats to be summed implies a theoretical max 6(125)^4=6(5^12) arithmetic operations on integers per webpage generation. This seems like a lot but it’s the theoretical worst case.
In practice, however, there are MANY factors (game details required to explain) that drastically reduce this number, hence I think it’s more meaningful to say that my own inventory takes ~5 seconds to generate the webpage on a Raspberry type device (my ODROID-C1). I play daily for many hours, so I consider my case to be on the long end of ‘average computation time.’
On the TOS, it states: “The primary purpose of any script must be to produce a web page.” So, I am conflicted. Do we consider a .csv w/ ~500 rows and ~40 columns a database? On the scale of most IT professionals, I don’t think this would be their meaning. Furthermore, I am only using this csv to generate a webpage. So, is my app allowed?
Advice prior to my uploading would be appreciated.
Well like the ToS says, is its primary purpose to produce a webpage?
If your all site is doing is hosting game data, then it is not allowed. You (may) be able to get away with it so long as you have functional website “masking” it, but you may encounter another problem: API Hosting is not allowed.
I wouldn’t be hosting game data by choice. On my ODROID-C1, I can place uploaded files in a directory not accessible by web users, but with www-data user permissions. Here, I may not have that option, but I can at least store uploaded csv files w/ a random file name known only to the server (cryptographically equivalent to not hosting), then delete all uploaded csv files after page generation. With this approach, user game data would only be hosted until the page is generated and in that form it would be cryptographically inaccessible, then deleted. i.e. the only ‘game data’ anyone would be able to fine on the site is that which they themselves uploaded for the purpose of generating the results. I believe this should be acceptable based on my reading on the TOS, no?
As for API, I think this stands for Application Programming Interface? This would not be an API … all configuration of parameters would be done by a user (human) and not by an application / script / process / program. It would no more be an API than an online calculator since any configuration is done by a human user solely for the purpose of generating an output. If this would fit into the definition of an API, I’d think virtually all websites featuring an HTTP/form block would not be allowed which seems unlikely to me, does it not to you?
Ok from what I understand, so long as you keep it on a smaller scale, you should be alright. You will have to be careful as you may get done for file hosting; but then they are being deleted so you should be alright.