Skip to content

Quick Start

Get a working Brane instance and run your first workflow.

You need a Linux or macOS machine with:

  • Docker (20.10+) with BuildKit
  • 4 GB RAM minimum (8 GB recommended)
  • Internet access for downloading images

If Docker is not installed, follow the official guides:

On Linux, enable rootless Docker access:

Terminal window
sudo usermod -aG docker "$USER"
# Log out and back in for changes to take effect

Verify Docker is working:

Terminal window
docker run hello-world
Terminal window
sudo wget -O /usr/local/bin/brane \
https://github.com/BraneFramework/brane/releases/latest/download/brane-linux-x86_64
sudo chmod +x /usr/local/bin/brane

Verify: brane version

Terminal window
sudo wget -O /usr/local/bin/branectl \
https://github.com/BraneFramework/brane/releases/latest/download/branectl-linux-x86_64
sudo chmod +x /usr/local/bin/branectl
Terminal window
# Download service images
branectl download services central -f
branectl download services auxillary -f
# Generate configuration
branectl generate infra -f -p ./config/infra.yml localhost:localhost
branectl generate proxy -f -p ./config/proxy.yml
branectl generate node -f central localhost
# Start the central node
branectl start central

Wait until all containers show healthy status:

Terminal window
watch docker ps

Create a new directory and add two files:

Terminal window
mkdir hello-world && cd hello-world

hello_world.sh:

#!/bin/bash
echo 'output: "Hello from Brane!"'

container.yml:

name: hello_world
version: 1.0.0
kind: ecu
files:
- hello_world.sh
entrypoint:
kind: task
exec: hello_world.sh
actions:
'hello_world':
command:
input:
output:
- name: output
type: string

Build and verify:

Terminal window
brane package build ./container.yml
brane package list

Push and run:

Terminal window
brane login http://127.0.0.1 --username quickstart
brane package push hello_world
brane workflow repl --remote http://127.0.0.1:50053

In the REPL:

import hello_world;
println(hello_world());

You should see: Hello from Brane!