Deploy
Application deployment is how you interact with your edge devices. Develop, run and manage your applications
Applications in Synpse can contain one or more Docker containers. These containers can easily talk to each other and utilise all the regular Docker features that you are used to.
You can view a bunch of sample applications that are available here https://github.com/synpse-hq/synpse for inspiration. If you wish to deploy some specific app but not sure how, please drop us an email at [email protected] or join our Discord channel and we will help you out!
πŸ’‘
​

CLI

To deploy first application use synpse application create CLI command.
synpse application create hello \
--image="quay.io/synpse/hello-synpse-go:latest"
To create or update an application from file use -f flag provide either URL or file location locally
synpse deploy \
-f https://raw.githubusercontent.com/synpse-hq/hello-synpse-go/main/hello.yaml
​where application spec file is yaml file:
name: hello-synpse
scheduling:
type: AllDevices
spec:
containers:
- name: hello
image: quay.io/synpse/hello-synpse-go:latest
ports:
- 8090:8090

Examples

If you mapping docker run command into Synpse, this part will help you to understand mapping for the arguments

Example 1

Volumes and environment variables
sudo docker run --restart always -d --name homeassistant \
-v /PATH_TO_YOUR_CONFIG:/config --device=/PATH_TO_YOUR_USB_STICK \
-e TZ=Australia/Melbourne --net=host \
ghcr.io/home-assistant/home-assistant:stable
Will translate to:
name: hassio
description: HASS
scheduling:
type: AllDevices
spec:
containers:
- name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
networkMode: host
volumes:
-/PATH_TO_YOUR_CONFIG:/config
- /etc/localtime:/etc/localtime
env:
- name: TZ
value: Australia/Melbourne
devices:
- hostPath: /PATH_TO_YOUR_USB_STICK
containerPath: /PATH_TO_YOUR_USB_STICK
restartPolicy:
name: always

Example 2

A more complex command with arguments:
docker run -d -p 12101:12101 \
--restart unless-stopped \
-v "$HOME/.config/rhasspy/profiles:/profiles" \
--device /dev/snd:/dev/snd \
synesthesiam/rhasspy-server:latest \
--user-profiles /profiles \
--profile en
Will translate to:
name: Rhasspy deployment
description: Rhasspy open source voice assistant application deployment.
scheduling:
type: AllDevices
spec:
containers:
- name: rhass
image: synesthesiam/rhasspy-server:latest
args:
- --profile
- en
- --user-profiles
- /profiles
devices:
- hostPath: /dev/snd
containerPath: /dev/snd
ports:
- 12101:12101
volumes:
- /data/rhasspy/profiles:/profiles
restartPolicy:
name: unless-stopped
Copy link
On this page
CLI
Examples
Example 1
Example 2