Install Synra on Jetson
This installs Synra Standalone, the local API service, private model configuration, and the dedicated Electron kiosk shell verified for the Jetson display path.
curl -fsSL https://raw.githubusercontent.com/synryzen/NodeSpark-Synra/main/scripts/install-jetson.sh | bash
What Gets Installed
Installed at ~/synra-standalone and served on port 5191.
Installed at ~/synra-jetson-station with production launch scripts and diagnostics.
Creates synra-standalone.service for the local Python API server.
Creates ~/.config/synra-standalone.env and keeps existing values on update.
Requirements
- Jetson running Ubuntu with a desktop session.
- Internet access.
git,curl,python3, and a normal user account.- Node.js 20 or newer. The installer uses
nvmif Node.js needs to be installed. - A local or remote OpenAI-compatible model endpoint for AI replies.
Configure AI
Edit Synra's private config:
nano ~/.config/synra-standalone.env
Remote OpenAI-compatible endpoint example:
SYNRA_MODEL_ENDPOINT=https://lm.example.com/v1/chat/completions
SYNRA_MODEL_NAME=zai-org/glm-4.6v-flash
SYNRA_MODEL_LABEL=GLM 4.6V Flash
SYNRA_MODEL_API_KEY=
SYNRA_MODEL_TIMEOUT_SECONDS=45
Local Ollama-compatible endpoint example:
SYNRA_MODEL_ENDPOINT=http://127.0.0.1:11434/v1/chat/completions
SYNRA_MODEL_NAME=qwen2.5:1.5b
SYNRA_MODEL_LABEL=qwen2.5:1.5b
SYNRA_MODEL_API_KEY=
systemctl --user restart synra-standalone.service
systemctl --user restart synra-electron-kiosk.service
curl http://127.0.0.1:5191/api/health
Configure Voice and ElevenLabs
Open Synra at http://JETSON_IP:5191/, then use Settings > Voice.
- Choose
ElevenLabs. - Paste your ElevenLabs API key.
- Click
Load ElevenLabs Voices. - Choose a voice by name.
- Click
Test Voice. - Use
Voice Diagnosticsif sound does not play.
If fullscreen kiosk mode makes copy/paste awkward, open Settings > Display and click Switch to Windowed Setup, or launch directly into a setup window:
SYNRA_KIOSK_WINDOW_MODE=windowed ~/synra-jetson-station/scripts/start-electron-kiosk.sh
After the voice is saved, use Settings > Display > Return to Full Screen.
Use Settings > Companion for owner name, local wake word, memory suggestions, and the screen timeout. Use Settings > Users to enroll known users with opt-in local face samples.
Optional server-side defaults can be placed in ~/.config/synra-standalone.env:
SYNRA_ELEVENLABS_API_KEY=
SYNRA_ELEVENLABS_VOICE_ID=
SYNRA_ELEVENLABS_MODEL_ID=eleven_multilingual_v2
SYNRA_ELEVENLABS_OUTPUT_FORMAT=mp3_44100_128
Mic and Camera
The dedicated Electron kiosk shell defaults to local mic/camera permission auto-grant for the Jetson station. Browser users still control permissions through their browser.
curl http://127.0.0.1:5191/api/vision/public
Inside Synra, use Voice Diagnostics, Vision On, and Analyze View to test the live path.
To disable auto-grant for manual permission testing:
SYNRA_KIOSK_AUTO_GRANT_MEDIA=false ~/synra-jetson-station/scripts/start-electron-kiosk.sh
Configure Home Assistant
Home Assistant is optional and remains user-confirmed for state-changing actions.
SYNRA_SMART_HOME_ENABLED=true
SYNRA_HOME_ASSISTANT_URL=http://homeassistant.local:8123
SYNRA_HOME_ASSISTANT_TOKEN=your_home_assistant_long_lived_access_token
SYNRA_HOME_ASSISTANT_DEFAULT_LIGHT=light.living_room
Launch Kiosk
The recommended production kiosk is Electron:
~/synra-jetson-station/scripts/start-electron-kiosk.sh
For first-time setup, copy/paste, and API-key entry, use:
SYNRA_KIOSK_WINDOW_MODE=windowed ~/synra-jetson-station/scripts/start-electron-kiosk.sh
The installer creates a user-level Electron kiosk service. After an update, restart the running kiosk:
systemctl --user restart synra-electron-kiosk.service
It launches this runtime URL:
http://127.0.0.1:5191/?profile=jetson&mode=kiosk&fps=30&live=1&quality=sharp&scale=1&maxw=2560&maxh=1600&avatar=classic&telemetry=1
Snap Chromium is kept only as a manual fallback:
~/synra-standalone/scripts/start-jetson-kiosk.sh
Keep only one kiosk shell enabled. The installer disables older Chromium autostart launchers because running Chromium behind Electron can make Synra extremely slow after reboot.
Verify Performance
~/synra-jetson-station/scripts/electron-gpu-check.sh
A healthy result should show Synra telemetry reachable, kiosk mode active, WebGL available, FPS near target, and GR3D_FREQ activity while Synra is visible.
The verified production path on the current Jetson is Electron kiosk, fps=30, quality=sharp, scale=1, maxw=2560, maxh=1600, ANGLE backend vulkan, and remote debugging off by default.
Update
Run the installer again:
curl -fsSL https://raw.githubusercontent.com/synryzen/NodeSpark-Synra/main/scripts/install-jetson.sh | bash
The installer keeps an existing ~/.config/synra-standalone.env.