Quick Start (CLI)

A short intro in using Synpse through a command-line client

In this short quick-start tutorial we will prepare devices using the dashboard (as it generates a helpful command).

Step 1: Install CLI

First, you will need to install the CLI and get your access token using the dashboard. Follow instructions here.

Preparing devices

Step 2: Get device registration token

Create a new device token from the Provisioning section

Step 3: Install device agent

Once you have your account, install synpse agent on the device. To do that, you will first need to provision the device registration token. These tokens allow for a limited (or unlimited) amount of devices to register to the system.

Go to your device provisioning page and click on a "provision device" button. It should show you a command that already has your project and registration token prepared:

$ curl https://downloads.synpse.net/install.sh | \
    AGENT_PROJECT=<YOUR PROJECT> \
    AGENT_REGISTRATION_TOKEN=<YOUR TOKEN> \
    bash

After a few seconds, you should be able to see the device in your terminal with synpse devices command:

$ synpse devices
  NAME          STATUS  IP              OS      LABELS          LAST SEEN      CREATED       
  nuc           online  192.168.178.86  Ubuntu  arch:amd64      3 seconds ago  16 weeks ago  
                                                type:controller                               

You can repeat this process for as many devices as you have.

Deployment and management

Step 3: Deploy an application

Apps in Synpse are a set of containers. If you are coming from a Kubernetes background, think of an app as a Pod, if you used Docker Compose before - it's a very similar concept.

We provide a helper form to start your applications, however, we do suggest opting for a declarative yaml manifest. In this tutorial we will use one from our samples:

name: NodeRed
description: Low-code programming for event-driven applications
type: container
scheduling:
  type: AllDevices
  # Uncomment to use a specific device
  # selectors:
  #   nodered: master
spec:
  containers:
  - name: nodered
    image: nodered/node-red:latest-minimal
    user: root
    ports:
      - "1880:1880"
    volumes:
      - /data/nodered:/data
      - /etc/localtime:/etc/localtime
      - /root/.ssh:/root/.ssh

When choosing an image, make sure that you have selected correct architecture. Some images do support multi-arch but it's not very common.

You can modify this manifest as you wish, for example setting different ports, volumes, etc. Let's expose Node-RED on a different port by modifying ports section to 1900:1880 in a file named nodered-synpse.yaml and run application create command:

synpse deploy -f nodered-synpse.yaml

Step 3: Monitor deployment

You can view running applications by using ps command:

synpse ps

Last updated