Skip to main content
Version: 2.3

Install CODE & DRAW locally to run with the Community

The steps in this tutorial will allow you to:

  • code and run your own bricks locally
  • run Service Apps as back-ends

Prerequisites for installing Olympe

You will need to have the following installed:

  • Node.js 14.13.1 or greater
  • Note: while npm is also needed, it comes directly whenever Node.js is installed
  • Your favorite IDE e.g. Visual Studio Code

Install Olympe

Open a Terminal window and run the following command in a folder of your choice. It will create an "olympe" folder there and install Olympe inside it

/bin/bash -c "$(curl -fsSl"

Then navigate to the newly created "olympe" folder

cd olympe

Finally launch DRAW

npm run serve

To stop the server, press Ctrl-C. Closing the terminal window, will also stop the process.
Restart it with the "npm run serve" command.

Start composing with DRAW

  • In your browser, open this url http://localhost:8888/
  • Authenticate with your Community credentials
  • See that your Community projects are present

That's all!
You can now take a look at our guides and tutorials, and start building a first app and add a first coded function.

Also, take a look at the file for more details on the local commands.

Launch a Service App as a back-end service

If you have a Service App and want to run it as an actual node.js back-end process, these are the steps to follow:

Short version

Get the tag (the Olympe unique identifier) of the Service App from the context menu of the Service App:

Get the tag of the service app

Then use it as a parameter in the following command:

npm run serve:node -- bus.allowGuest=true<tag of the Service App>

For example:

npm run serve:node -- bus.allowGuest=true

Using configuration files

The, and bus.allowGuest parameters above can also be specified within a configuration file. You can have multiple configuration files to define the configuration of multiple back-end services using different API keys, etc. When doing so, it is advisable to have two different configuration files: one for DRAW and front-end apps, and another one for each back-end app. The steps are as follows:

Make a copy of the res/oConfig.json, for example in res/oConfigNode.json

cp res/oConfig.json res/oConfigNode.json

Edit res/oConfigNode.json and set the, and bus.allowGuest parameters:

"bus": {
"host": "",
"path": "/mqtt",
"ssl": true,
"port": 443,
"vhost": "community",
"allowGuest": true
"": "0186e4bc463ef958ff46"

Olympe uses webpack to build apps. The provided configuration (webpack.config.js) builds packages into a dist folder. The targets are already preconfigured, but we need to tell it which configuration file to use in which context:

  • When building DRAW using npm run serve, copy oConfig.json into dist/draw/oConfig.json
  • When building the node app using npm run serve:node, copy oConfigNode.json into dist/node/oConfig.json

To do so, edit the webpack.config.js as follows:

Comment or remove the copy of the res directory:

//{from: 'res'}, // Comment or remove this line

Then add the following rules at the end of the webpack.config.js:

const drawConfig = {
name: 'draw',
plugins: [
new Copy({
patterns: [
{from: 'res/oConfig.json', to:'oConfig.json'},

const nodeConfig = {
name: 'node',
plugins: [
new Copy({
patterns: [
{from: 'res/oConfigNode.json', to:'oConfig.json'},

// Add drawConfig and nodeConfig to the module.exports
module.exports = [merge(common, server, draw, drawConfig), merge(common, server, web), merge(common, node, nodeConfig)];

How it works

A full Olympe runtime has multiple components. The installation above only sets up the minimal set of components locally. When building and running coded bricks or a Service App locally, the Olympe runtime is are started locally, and it then connects to an event bus and to the Olympe Orchestrator running in the Olympe Cloud. The runtime then retrieves the app composition from the Community environment and then starts running the application.

You can therefore collaborate freely with other Community DRAW users. Updates done in DRAW will be distributed in realtime to all users just like if you were logged into the DRAW Community cloud instance, and vice versa. Your coded bricks though, will remain local.

This is a summary of what runs where:

When running locallyWhen connected to
Web serverRuns locally (webpack server)Runs in the cloud
DRAWRuns locallyRuns in the cloud
CODERuns locallyNew code cannot be deployed on the community. Get in touch to get a dedicated instance.
Olympe OrchestratorRuns in the cloudRuns in the cloud
RabbitMQRuns in the cloudRuns in the cloud
DatabaseRuns in the cloudRuns in the cloud

Local Install

Updating your setup after a new Olympe release

When a new release occurs, your package.json file also needs to be updated. The goal is to have you local setup properly in synch with the online Community.

For instance, when release 2.3.2 was out, the following changes had to be made to update the olympe dependencies in the setup's package.json file:

@olympeio/draw: 2.3.2,
@olympeio/runtime-web: 9.3.1,
@olympeio/runtime-node: 9.3.1,
@olympeio/core: 2.3.7

Fetch these package.json dependencies info automatically

  • Simply generate a new project from scratch inside a different folder using this same tutorial mentioned above
  • Copy-paste the package.json to get the lastest versions of the dependencies.
  • Then, don't forget to run npm install in your project.