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
  • Pre-requisites:
  • Getting started
  • Build using config file

Was this helpful?

  1. Examples
  2. Preparing OS Images

Synpse CLI Builder

Synpse CLI has build in CLI helper to build images for you devices. It can help to build re-usable image for you to use in multiple devices. Build once and reuse on all your devices.

Currently CLI builder support only Linux systems

Pre-requisites:

  1. Linux based machine (Ubuntu subsystem for Windows does not work)

  2. Synpse CLI installed and logged into Synpse Cloud

  3. CLI must be run as privileged user as builds are using mount to build the image

After build image startup might take 10-15 minutes for updates and install of the latest binaries. Time might wary based on your internet speed.

Getting started

Chose base image you want to use for your build. If you don't find base images you would like, let us know in Discord to see what we can do about this!

synpse machine-images list-base
OS      IMAGE                                               NAME                               ARCHITECTURE  
ubuntu  ubuntu-20.04.3-preinstalled-server-arm64+raspi.img  Ubuntu Server 20.04.2 LTS (ARM64)  arm64         
ubuntu  ubuntu-20.04.3-preinstalled-server-armhf+raspi.img  Ubuntu Server 20.04.2 LTS (ARM32)  arm32         

Run build command with build parameters (parameters can be found by executing synpse build -h )

synpse build \
--hostname "synpse-edge" \
--image ubuntu-20.04.3-preinstalled-server-arm64+raspi.img \
--image-output $(pwd)/images \
--wifi-name WIFI_SSID_NAME \
--wifi-password $WIFI_PASSWORD

If --project-id or--registration-token is not provided CLI attempt to get default default provisioning token for the project configured in CLI. User must have access to read Device Provisioning Tokens in RBAC

If --unixUser is not provided synpse user will be created

Build using config file

You can also build image using configuration file

synpse build --config-file config.yaml

Where config.yaml is example bellow:


---
builderConfig:
  image: ubuntu-20.04.2-preinstalled-server-arm64+raspi.img
  outputDir: /home/user/images
synpseConfig:
  controllerURI: https://cloud.synpse.net/api
  projectID: prj_1qtJj73NFMHm0QoRj2uPWxxxxxx
  registrationToken: drt_1qtJj55aIhGiMrXs5BDAvxxxxx
hostConfig:
  hostname: synpse-edge
  unixUser: synpse
  sshKey: ssh-rsa ABCD
  #locale: en_US.UTF-8
  #timezone: Europe/Vilnius
  networks:
    - wifiAccessPointName: WIFI_SSID
      wifiAccessPointPassword: Wifi_Password
PreviousPreparing OS ImagesNextBuild a custom Raspberry Pi image

Last updated 2 years ago

Was this helpful?

🛠️