Before installing and getting started, it is worth going over what NodeCode is, what it does and how it achieves that.
NodeCode is a distributed computing platform that aims to allow you to take all of the computing power around you and fully harness the abilities of each system individually, but more importantly, to compose the abilities of each system together as if it was one large, homogeneous system.
NodeCode aims to ease the burden of learning the particularities of each device that you want to attach to your system as well as the burden of dealing with network programming, complex APIs and dealing with command line interfaces on multiple machines for installation and debugging.
There are four components of the NodeCode platform that enable the easy deployment and management of NodeCode to your various devices. Each of these components are small and efficient so that they can be used on devices large and small. As such, each of the components are custom built for the platform on which they are installed.
The four components that make this all possible are:
Services are small programs and/or plugins that allow you to extend NodeCode to all of your devices and use capabilities that they offer.
Each service is made specifically for each platform and operating system, and each has some specialized bit of functionality that they can add to your overall system.
There are Services for sending messages to Twitter, for turning on and off lights using the Insteon modem, for interacting with the GPIO pins on a Raspberry Pi and many, many more being released continually.
Agents run on each device that you want to function with NodeCode. They do all sorts of things on each device including the installation and maintenance of the Services. If the Agent is configured to start on reboot of the device, it will ensure that the Services that you have marked to start do start after the reboot.
Agents are tiny and use almost zero CPU. They just sit there and make sure all is well and report when they aren't as you left them.
The Hub is the center of everything in NodeCode. You can have multiple Hubs on the same network as well as on other networks, however, you must only have one Hub running at any given time on the same network.
The Hub is where the Agents receive their commands to install Servces, start/stop Services, where all the device and Service coordination happens as well as the component that the User Interface (NodeCode Studio) connects to. The Hub also has a small database that remembers the current state of all the running components so that even right after a power outage, everything will come back just as it was.
The Hub can be run on any one of the devices on your network but you should choose the machine that is always on during the hours in which you would use NodeCode. Keep in mind that a slow machine running the Hub will be a bottleneck if you are looking for the fastest input/output performance possible.
NodeCode Studio is the main user interface for the NodeCode system.
NodeCode Studio connects to the Hub and allows you to control the Agents that are on the network, install Services remotely and compose the interaction between the Services on all your devices and then build programs and dashboard (call Views) that allows you to consume and send data.
There is also an Android app called Nodify Me that is available in the Play Store that allows you to connect remotely and monitor everything.