Adding ability to do a perpetual build and a subscription build automatically and also be able to debug either one
This commit is contained in:
@@ -32,6 +32,8 @@ UPLOAD releases to ayanova.com/download/next folder where it will be staged befo
|
||||
|
||||
### Test install to devops server
|
||||
|
||||
#### NEXT folder version
|
||||
|
||||
cd /var/ayanova && \
|
||||
sudo systemctl stop ayanova.service && \
|
||||
sudo curl -O https://www.ayanova.com/download/next/ayanova-linux-x64-server.zip && \
|
||||
@@ -51,7 +53,26 @@ sudo rm -r ./wwwroot && \
|
||||
sudo unzip -o ayanova-linux-x64-server.zip -x "config.json" && \
|
||||
sudo systemctl start ayanovaa261.service
|
||||
|
||||
#### MAIN RELEASE folder version
|
||||
|
||||
cd /var/ayanova && \
|
||||
sudo systemctl stop ayanova.service && \
|
||||
sudo curl -O https://www.ayanova.com/download/ayanova-linux-x64-server.zip && \
|
||||
sudo rm *.dll && \
|
||||
sudo rm -r ./resource && \
|
||||
sudo rm -r ./wwwroot && \
|
||||
sudo unzip -o ayanova-linux-x64-server.zip -x "config.json" && \
|
||||
sudo systemctl start ayanova.service
|
||||
|
||||
(a261 server)
|
||||
cd /var/ayanovaa261 && \
|
||||
sudo systemctl stop ayanovaa261.service && \
|
||||
sudo curl -O https://www.ayanova.com/download/ayanova-linux-x64-server.zip && \
|
||||
sudo rm *.dll && \
|
||||
sudo rm -r ./resource && \
|
||||
sudo rm -r ./wwwroot && \
|
||||
sudo unzip -o ayanova-linux-x64-server.zip -x "config.json" && \
|
||||
sudo systemctl start ayanovaa261.service
|
||||
|
||||
### Test install to windows server
|
||||
|
||||
|
||||
@@ -1,6 +1,65 @@
|
||||
# now
|
||||
|
||||
|
||||
THINGS HOLDING UP PERPETUAL RELEASE
|
||||
|
||||
- Code changes to prevent Subscription license from being used in a self installed scenario and vice versa
|
||||
see notes below about this in various todo items
|
||||
- Website
|
||||
Sales page
|
||||
Pricing page
|
||||
Marketing / features page
|
||||
Perpetual vs Subscription (perpetual first, subscirption "coming soon" ok)
|
||||
- License changes
|
||||
- Test and confirm Shareit sales links
|
||||
- Announcement email with migration plan and costs and offers etc
|
||||
|
||||
|
||||
|
||||
todo: implement and test new system to prevent download subscription instance database and just use locally, i.e. check for special file or whatever system we implement
|
||||
check for subscription key file presence and signature inside to be checked in case they parse the code and put teh file by that name needs to be not enough but signed inside too
|
||||
todo: ROCKFISH different license key signature if it's a SAAS license
|
||||
this solves a lot of problems, effectively it's unlicensed if they move their data to their own hardware without a key
|
||||
requires that AyaNova have different internal key to check, maybe it's actually a build switch for that since only we will be running our SAAS version.
|
||||
dual signatures doesnt' work becuase it would mean ayanova could just work anyway since it can check either, need something else.
|
||||
build switch would work but it means a whole separate build every tiem which is fucky, but maybe necessary.
|
||||
todo: LICENSE must prevent a user from moving their data from perpetual to sub and vice versa without the right key so we can control it
|
||||
otherwise they could just download the data and run it locally as it's got the license in it
|
||||
See immediately below potential solution
|
||||
CONSIDER: is this an issue? If so how to control it, maybe some kind of file flag or invisible config key or something??
|
||||
This has implications for competitors running subscription services
|
||||
i.e. havabyte says I'll host it for you just download your data and send to me and I'll do it for less
|
||||
The critical part is the update, if the license permits updates for subs it has to be only when we do it
|
||||
otherwise they self host and enjoy free updates unless we zap the license..hmm... needs something more here
|
||||
|
||||
Maybe they can't download the backup with the license intact??
|
||||
Maybe they can't intereact with the license page at all if it's subscription, just view it??
|
||||
todo: SAAS different license checking method to ensure only *we* are hosting it if it has a saas license
|
||||
something location dependant, a different license server address?
|
||||
We might host with other than digitalocean at some point so we can't look for that as a key
|
||||
I guess we have our own approved IP addresses maybe in rockfish, if the license request comes from anywhere else than set for that customer we go fuck no and shut it down??
|
||||
Does digitalocean ever change the ip address?
|
||||
** Actually a static file outside of the backup would be ideal as it is easily transferrable by us, doesn't rely on ip address fuckery and can contain a signature inside it just like the license does, same key so we know it's legit
|
||||
and if no file present then it's not hosted by us and as long as the license is perpetual then we're ok, but if the file not present and it's an SAAS license they fuck that shit stops working says not running from a licensed location.
|
||||
TODO: I think a different build is the most solid way to do it, it's a pain but it *does* solve a lot of problems in one swoop and I can do endless things in the code if I have a build flag around them that is cool
|
||||
implement build flag "SUBSCRIPTION_BUILD"
|
||||
Change rockfish license generator to make subscription type a first class element, not a feature in the feature collection
|
||||
change AyaNova build to only work as a subscription build with a subscription key adn vice versa so the key *must* be the correct one
|
||||
treat this like an out of maint newer build where it just won't boot up
|
||||
ensure migration path to this by erasing key and fetching a new one, same db id, just new key
|
||||
can just erase the key and put a purchased one is as a path
|
||||
Change rockfish so we know if they are a subscriber right on the main customer page somehow with an area to put their address and stuff
|
||||
we will be generating a *lot* of keys if they are month to month
|
||||
Do I need a separate subscription expiration date in the key?
|
||||
actually, I think the existing one is there for just this purpose after all a perpetual never expires so maybe no need to fuck with this aspect
|
||||
Test it out as if a real customer were doing this end to end on a hosted server
|
||||
|
||||
|
||||
|
||||
todo: ROCKFISH can't make a trial key for users in the UI, only when it's requested from ayanova.
|
||||
I'm really not sure if this is an issue or not but putting it on the list in case
|
||||
add as a feature just in case
|
||||
|
||||
SHAREIT pricing and subscription changes are all built into the system, I had no idea, also an api and bunch of other shit we've needed all along
|
||||
They have comprehensive help available here: https://account.mycommerce.com/Home/Wiki
|
||||
some things we will need to request be turned on to be able to do them like changing subscription quantities and upgrade paths for subscribers so they can just move to v8 sub
|
||||
@@ -13,8 +72,6 @@ https://linuxhandbook.com/set-up-discourse-digital-ocean/ has an example of disc
|
||||
TEST: cheapest storage for attachments possible, test out creating a new droplet with block storage to hold the attachment files to see if it's possible, how it's done and mapped etc
|
||||
|
||||
|
||||
todo: implement and test now system to prevent download subscription instance database and just use locally, i.e. check for special file or whatever system we implement
|
||||
check for subscription key file presence and signature inside to be checked in case they parse the code and put teh file by that name needs to be not enough but signed inside too
|
||||
|
||||
todo: can user use erase key flag to get trial and then use trial for 5 days and just keep on doing that or isn't there a check to erase db first??
|
||||
needs some way to ensure this doesn't happen, maybe a user check or something or some sign it's not eval??
|
||||
@@ -44,15 +101,7 @@ todo: License agreement changes for SAAS customers, this is huge and I hadn't th
|
||||
todo: SAAS gaming, once have idea of plans and add-ons, need to test it out on servers and see what's what and how it would work in practice
|
||||
i.e. storage on block storage, backup practical things etc
|
||||
|
||||
todo: ROCKFISH different license key signature if it's a SAAS license
|
||||
this solves a lot of problems, effectively it's unlicensed if they move their data to their own hardware without a key
|
||||
requires that AyaNova have different internal key to check, maybe it's actually a build switch for that since only we will be running our SAAS version.
|
||||
dual signatures doesnt' work becuase it would mean ayanova could just work anyway since it can check either, need something else.
|
||||
build switch would work but it means a whole separate build every tiem which is fucky, but maybe necessary.
|
||||
|
||||
todo: ROCKFISH can't make a trial key for users in the UI, only when it's requested from ayanova.
|
||||
I'm really not sure if this is an issue or not but putting it on the list in case
|
||||
add as a feature just in case
|
||||
|
||||
todo: DOCS - remove all mention of digitalocean from the install and other docs since we're going to be using them for SAAS we don't want to make it simple for people to host themselves, just say Linux and leave it at that.
|
||||
|
||||
@@ -102,29 +151,10 @@ todo: Change 45 day trial to 5 day trial but offer that they can email if they a
|
||||
If they need more time they can sign up for a month's use of the SAAS model
|
||||
is this in rockfish??
|
||||
also they can just request a new trial over and over if in eval mode if they erase the db each time
|
||||
also if I can override a trial period for an eval in the UI that would be great (I think I can but check)
|
||||
also if I can override a trial period for an eval in the rockfish UI that would be great (TO BE ADDED WITH CODE CHANGE)
|
||||
|
||||
todo: CLIENT UI license changes for subscribers around the LICENSE pages and route??
|
||||
|
||||
todo: LICENSE must prevent a user from moving their data from perpetual to sub and vice versa without the right key so we can control it
|
||||
otherwise they could just download the data and run it locally as it's got the license in it
|
||||
See immediately below potential solution
|
||||
CONSIDER: is this an issue? If so how to control it, maybe some kind of file flag or invisible config key or something??
|
||||
This has implications for competitors running subscription services
|
||||
i.e. havabyte says I'll host it for you just download your data and send to me and I'll do it for less
|
||||
The critical part is the update, if the license permits updates for subs it has to be only when we do it
|
||||
otherwise they self host and enjoy free updates unless we zap the license..hmm... needs something more here
|
||||
|
||||
Maybe they can't download the backup with the license intact??
|
||||
Maybe they can't intereact with the license page at all if it's subscription, just view it??
|
||||
todo: SAAS different license checking method to ensure only *we* are hosting it if it has a saas license
|
||||
something location dependant, a different license server address?
|
||||
We might host with other than digitalocean at some point so we can't look for that as a key
|
||||
I guess we have our own approved IP addresses maybe in rockfish, if the license request comes from anywhere else than set for that customer we go fuck no and shut it down??
|
||||
Does digitalocean ever change the ip address?
|
||||
** Actually a static file outside of the backup would be ideal as it is easily transferrable by us, doesn't rely on ip address fuckery and can contain a signature inside it just like the license does, same key so we know it's legit
|
||||
and if no file present then it's not hosted by us and as long as the license is perpetual then we're ok, but if the file not present and it's an SAAS license they fuck that shit stops working says not running from a licensed location.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -165,8 +195,7 @@ todo: test out automatic backups using digitalocean's built in system with their
|
||||
|
||||
- SHAREIT product codes once have pricing figured out fully and agreed on by joyce
|
||||
|
||||
Rockfish - change text "Rental key" in picklist to "Service hosted key"
|
||||
not critical just to avoid confusion down the road, even though it does nothing currently but it should be consistent
|
||||
|
||||
|
||||
|
||||
todo: BIG PICTURE - NEXT
|
||||
@@ -175,10 +204,10 @@ Overview:
|
||||
Focus on migrating existing users first before anything else
|
||||
Critical path items for onboarding existing v7 people:
|
||||
New pricing determined
|
||||
New purchase product codes in shareit
|
||||
License subscription process to move users
|
||||
New purchase product codes in shareit DONE BUT NOT TESTED YET
|
||||
License subscription process plan to migrate users
|
||||
coupon issued to equalize pricing but renewals will be higher
|
||||
might need to ask shareit how we do this because it's changing an existing subscription
|
||||
They must purchase the new v8 subscription and cancel the v7, no way around that I can see
|
||||
End result is want the user to pay nothing or very minimal now but renew higher later
|
||||
Rockfish is already ready for them
|
||||
Live eval system, probably manual for now spin up server keep several in rotation.
|
||||
|
||||
Reference in New Issue
Block a user