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

Was this helpful?

  1. Agent
  2. Install

Containerized agent

Synpse can run as container image. This is great for prototyping and testing!

Synpse agent is GoLang statically compiled binary. It is recommended to run it outside your container runtime with a supervisor (systemd or sysV). But there might be reasons you want to run it as a container itself.

Run agent as a container

For now we support only AMD64 for containerized agent. More are comming

docker run -d \
--hostname agent-1 \
--name synpse-agent \
-v /var/run/docker.sock:/var/run/docker.sock \
-e AGENT_PROJECT=<prj_agent_project> \
-e AGENT_REGISTRATION_TOKEN=<drt_token_value> \
-v /data/etc-synpse:/etc/synpse \
-v /data/var-lib-synpse:/var/lib/synpse \
ghcr.io/synpse-hq/agent:latest

where:

  • --name synpse-agent - container name in the runtime

  • --hostname - agent name in cloud.synpse.net

  • -v /var/run/docker.sock:/var/run/docker.sock - docker socket mount

  • -e AGENT_PROJECT=<prj_agent_project> - Agent project ID

  • -e AGENT_REGISTRATION_TOKEN=<drt_token_value> - Device registration token

  • -v /data/etc-synpse:/etc/synpse - Synpse config location

  • -v /data/var-lib-synpse:/var/lib/synpse - Synpse state directory

If you replace volumes to be the same as supervisor managed values, the agent can re-use systemd installed configuration.

/data/var-lib-synpse:/var/lib/synpse ->/var/lib/synpse:/var/lib/synpse

/data/etc-synpse:/etc/synpse -> /etc/synpse:/etc/synpse

PreviousBeta - Universal Synpse imageNextConfiguration

Last updated 1 year ago

Was this helpful?