ukraine

Open Source Node.js PaaS with automatic Proxy and CLI client

Usage no npm install needed!

<script type="module">
  import ukraine from 'https://cdn.skypack.dev/ukraine';
</script>

README

ukraine

ukraine glues haibu and node-http-proxy adding two little helpers, chernobyl and ducktape, that deploys into this cloud. It is probably as stable as you think it is.

.. image:: https://raw.github.com/radekstepan/ukraine/master/example.png

Quick start

Make sure you have node >= 0.8.0 installed <https://github.com/joyent/node/blob/master/README.md#to-build>_, 0.8.15 is recommended as current stable.

Install the package globally:

.. code-block:: bash

$ sudo npm install ukraine -g

As a server


Start it up:

.. code-block:: bash

    $ sudo ukraine

As a client

Move to a directory with the app to deploy. Deploy pointing to cloud instance:

.. code-block:: bash

$ chernobyl deploy <ukraine_ip>

Config

To set the ports the proxy and haibu are supposed to be listening on, edit the config.json file.

For setting environment variables exposed through process.env, set the key value pair env in your app's config.json file.

Architecture

ukraine Spawns a node-http-proxy server that dynamically watches for changes in a routing table. It also uses a custom loader over haibu injecting a plugin called kgb that wiretap listens if a new app has been spawned. If it was, it updates the routing table.

There is also a plugin called ``ducktape`` in use that will cleanup any local files before attempting to spawn a new app. Otherwise, we would constantly be spawning an older version of an app.

chernobyl #. checks that your app's package.json file is in order #. checks that ukraine instance is up #. checks and stops an existing app if need be #. packs the new app and sends it to the cloud to deploy