[NEW] Coronium LS - The Hybrid Cloud

It’s my fine pleasure to announce  Coronium LS (Coronium Lua Server). A hybrid cloud solution for your CoronaSDK games.

You can follow this thread for release updates, videos, and other feature specifics. You can also follow @coroniumcloud on Twitter. The product site is at https://coronium.cloud (documentation is in its final edits).

More information with be forth-coming over the next week on how you can get started on the beta.

A lot of “love” went into this project, and I’m very excited to share it with you. Get your helmets on.

This project is made possible by CoronaLabs, Inc. and is freely given the community. The software is provided as-is, and support is only via forum, and not required directly by the CoronaLabs team.

Having just implemented a Coronium instance on Digital Ocean, I’m wondering what the difference is with this new version? Is there a migration path? Are they completely different?

Amazing!

I also have a modified version of Coronium (added multi app support for objects/users and a few functions to get app default configurations) running on Digital Ocean.

Looking forward for more informations on this Coronium LS.

@Dotnaught More info is coming via screencast. They are different, so it will depend on your use case.

@PXL artificer Thats sounds awesome! Are you able to share?

Cheers.

@develephant

It’s something very very simple I’ve kinda hacked together because I have a few apps that don’t have that much traffic to require a dedicated server… I’m not sure it’s really worth sharing tbh :wink:

I’m not in my office right now, but basically what I did was, in the client library, to conceptually change appId to serverId and add a new appId to select a specific app. 

Then I changed the endpoint function from handling requests like

http://serverId/request

to 

http://serverId/appId/request

In Coronium server I modified the lua files managing the incoming requests to use the appId like a “prefix” for queries…

I mean, if from client I’m querying a class called “testTable” with an appId “testAppId”, I’m actually referring to a “testAppId_testTable” class on the server… 

So, two apps using different appIds can use the same class names (client side) without causing conflicts, since on server they’re distinct classes.

I think the User table works a little different but I can’t remember exactly now (and I’m actually not using it for my apps).

The “getConfig” (inspired by parse.config) instead is a function querying a Configuration class (containing different objects with the configuration of the apps). It uses the appId & the time of the last request to return the newest config data (or blank if the user has already the most updated config). 

Can’t wait to be on the beta for this. Keep up the good work @devElephant.

PXL, I like what you did there. I set up for multi-tenant also but I like how you modified the routes to make the call more restful. I may have to steal this from you.

Looking forward to the beta Chris.

-Ed

Congratulations Chris, looking forward to seeing your progress!

As an aside I’m very much bought into Coronium Cloud and am just wondering if you think you’ll still have a chance to get a new image on AWS?

Thanks, and keep up the great work :slight_smile:

Hi folks,

Been a bit slow-going through pre-release-beta-beta testing, and general project organization (Lua+Mongo are not good cousins), but “hopefully” will be throwing together a quick screencast soon along with deployments, and source code (did you see the “hopefully” part?).

On first release you’ll be able to work locally, send ‘pristine’ images to your DigitalOcean account, or use a pre-baked Amazon AMI. Other deployment methods are possible, but more on that later.

This is a more serious affair (not that Coronium Cloud wasn’t), but as an open source project requires the use of more standardized tools and organization.

With that in mind, if you’re bored waiting around, you might want to set some of these tools up now. What you need depends on what you plan on doing with the software, for instance:

“I want to use Coronium LS locally as I develop my Corona SDK app.”

Install : VirtualBox, Vagrant

“I want to host my Coronium LS images on a DigitalOcean account.”

Install : Packer

“I want to run Coronium LS on an Amazon EC2 AMI.”

Install : AWS Account

“These docs would be better if…”

Install : MkDocs

“I would love to hack on some of that Coronium LS project code. It’s a good thing I understand Chef cookbooks, as well as, Lua.”

Install : SourceTree (or the like), VirtualBox, Vagrant. If you are going to be compiling to DigitialOcean, or would like to help integrate other “builders”, you will also need Packer. DigitalOcean is the only provided “builder” at this time.

All of these tools are very simple to install. You won’t actually have to learn how to use these tools (unless you’re hacking core), they just need to be available on your system.

Thank you everyone for all the encouragement, it’s like virtual coffee. :slight_smile:

And boy, do I need it…

@Chris,

I absolutely get that this kind of thing takes time and effort, as well it has hidden surprises and delays.  I am very much looking forward to this and am very much willing to wait. 

Having said that, thanks for the awesome start early list.  At the very least this gives me more interesting things to check out and for others I think this will give them a good leg up on an early setup.

Cheers,

Ed

@Chris, keep up the good work. I’ve been in this industry for so long that I know for a fact that nothing is going as fast as we would like and there is always those delays and/or problems that arise regardless of the plan.

We are with you :slight_smile:

regards,

Nick

Also, I wanted to point out that for general use, you don’t actually need to learn those tools listed. They just need to be on your system, as you’ll be working with the source code directly.

Cheers.

Oh snap!!! Definitely keeping my eyes on this!!

YESSS!!

-Mario

Chris,

Awesome!! Loving the use of Vagrant and Chef for development and deployment. Can’t wait to see the end result. Reach out if you need any testing or support.

Steve

hi i have some problem when installing coronium LS on my DigitalOcean droplet, here the error

  digitalocean: STDOUT:

    digitalocean: STDERR: fatal: could not read Username for ‘https://gitlab.com’: No such device or address

    digitalocean: ---- End output of git ls-remote “https://gitlab.com/coroniumcore/Coronium-LS-ProjectTpl.git” “master*” ----

    digitalocean: Ran git ls-remote “https://gitlab.com/coroniumcore/Coronium-LS-ProjectTpl.git” “master*” returned 128

    digitalocean: [2016-08-29T15:05:42+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)

==> digitalocean: Destroying droplet…

==> digitalocean: Deleting temporary ssh key…

Build ‘digitalocean’ errored: Error executing Chef: Non-zero exit status: 1

 

==> Some builds didn’t complete successfully and had errors:

–> digitalocean: Error executing Chef: Non-zero exit status: 1

Apologies if this is covered elsewhere, but all the documentation etc on installing on Amazon seems to have disappeared

Is there guidance on getting this working on AWS ? 

Really need to look at this as currently using the old Coronium Cloud ( which was brilliant) and need to migrate to LS

You can look here for the previous documentation on deploying LS to AWS https://gitlab.com/coroniumcloud/Coronium-LS-Docs/blob/master/docs/Deploy/Amazon_EC2.md. This has been removed from the latest documentation. We are focusing on Digital Ocean deploys at the moment as the project is rapidly changing. 

Steven, hi but im trying to install it on a droplet an little above i posted the error on my terminal, what can i do?

the new error installing coronim LS on my droplet is this

   digitalocean: [2016-08-30T15:06:57+00:00] INFO: Running report handlers

    digitalocean: [2016-08-30T15:06:57+00:00] INFO: Report handlers complete

==> digitalocean: Gracefully shutting down droplet…

==> digitalocean: Creating snapshot: CoroniumLS-1.3.3-1472569472

==> digitalocean: Waiting for snapshot to complete…

==> digitalocean: Error waiting for snapshot to complete: Timeout while waiting to for droplet to become 'active’

==> digitalocean: Destroying droplet…

==> digitalocean: Deleting temporary ssh key…

Build ‘digitalocean’ errored: Error waiting for snapshot to complete: Timeout while waiting to for droplet to become 'active’