Synpse
🤖 Devices⚡ ApplicationsTry Synpse!
  • Intro to Synpse
  • Start here
    • Quick Start (web user)
    • Quick Start (CLI)
  • Agent
    • Install
      • Raspberry Pi
      • Linux (Docker)
      • MacOS
      • NVIDIA Jetson
      • Headless (Ubuntu)
      • BeagleBoard AI
      • Bulk Provisioning
      • 🪄Beta - Universal Synpse image
      • Containerized agent
      • Configuration
    • Uninstall
  • CLI
    • Install & Usage
  • synpse core
    • Devices
      • Device Provisioning
      • HTTPS Tunnel Access
      • SSH Access
      • Device Labels
      • Environment Variables
      • Proxy Application Ports
      • OS & Architectures
      • Operations
      • Device API
    • Applications
      • Deploy
      • Secrets
      • Environment variables
      • Substitution (dynamic templates)
      • Volumes
      • Networking
      • Scheduling
      • Registry authentication
      • Using GPUs
      • Tips & Tricks
      • Logs and status
      • Application specification (API reference)
    • Account
      • Personal Access Tokens
      • Service (Robot) Accounts
      • Teams (Share Devices)
    • Monitoring (beta)
      • Device Monitoring
      • Application Monitoring
  • Manage
    • Projects
    • Namespaces
    • Quotas
  • Examples
    • 🏠Home Automation
      • Gladys Assistant
      • Home Assistant
    • 🛠️Preparing OS Images
      • Synpse CLI Builder
      • Build a custom Raspberry Pi image
      • Cloud-init (advanced)
    • 💡Dynamic Templates
    • ☁️Public Cloud IoT
      • AWS IoT Core
      • Azure IoT Hub
      • GCP IoT Core
    • 🚀Device management
      • VNC to remove devices
      • Ansible
  • On-prem Deployment
    • 🐳Docker Compose
    • 🌤️kubernetes
  • Resources
    • API Documentation
    • Deployment patterns
    • Security & Tech
Powered by GitBook
On this page
  • Preparing a devices
  • Step 1: Get device registration token
  • Step 2: Install device agent
  • Deployment and management
  • Step 3: Deploy an application
  • Step 4: Monitor deployment
  • Updating applications
  • Learning points

Was this helpful?

  1. Start here

Quick Start (web user)

A short intro in using Synpse via web browser

PreviousIntro to SynpseNextQuick Start (CLI)

Last updated 3 years ago

Was this helpful?

Preparing a devices

Step 1: Get device registration token

Create a new device token from the Provisioning section

Step 2: Install device agent

Once you have your account, install synpse agent on your 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. In addition, they can have configuration bound to them too.

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 dashboard:

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

Deployment and management

Step 3: Deploy an application

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

To create an application, go to your default namespace and click on a New Application button:

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

Once you click deploy, you should be able to see deployment status on the right side:

Step 4: Monitor deployment

Once the application is deployed, you can see the status either by viewing the "Allocations" page (you can reach it either through the applications page or application details page) or on device details page:

If you click on the link next to the container name, you should be taken to your device_ip:port URL and (assuming your device is on the network that you can reach) you should be able to view it:

Updating applications

You can update your application at any point. Synpse will recreate containers and ensure that it's running.

Learning points

Here are a few things that you should pay attention to:

  • First, prepare some devices that you will want to use.

  • Ensure you choose the correct CPU architecture for your Docker image, otherwise, you will encounter cryptic Docker errors that aren't easy to debug.

  • You can update the application config as many times as you wish.

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 :

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

You can modify this manifest as you wish, for example setting different ports, volumes, etc. Let's expose on a different port:

Use the section of the yaml config to specify where you want your application to run.

samples
multi-arch
Node-RED
scheduling
namespaces hold one or more applications
Creating application configuration
Application details and deployment status
device details page