jdt deploy --- Install to a Node¶
Deploys a package to a Jarvis node. Supports three targets: local filesystem, Docker container, or remote Pi Zero over SSH.
Usage¶
Targets¶
jdt deploy local¶
Installs to a local jarvis-node-setup installation.
| Argument/Option | Description |
|---|---|
path |
Package directory (default: current directory) |
--node-dir |
Path to jarvis-node-setup (auto-detected) |
Node directory resolution order:
--node-dirflagJARVIS_NODE_DIRenvironment variable- Sibling repo:
../jarvis-node-setup - Production install:
/opt/jarvis-node
jdt deploy local . # Auto-detect node location
jdt deploy local . --node-dir ~/jarvis/jarvis-node-setup # Explicit path
jdt deploy docker¶
Installs into a Docker node container.
| Argument | Description |
|---|---|
container |
Container name (partial match OK) |
path |
Package directory (default: current directory) |
What it does:
docker cpthe package to/tmp/jarvis-pkg-installin the containerdocker execthe container'scommand_store.py installcommand- Cleans up the temp directory
jdt deploy ssh¶
Installs on a remote Pi Zero (or any Linux host) over SSH.
| Argument/Option | Description |
|---|---|
host |
SSH target (e.g., [email protected]) |
path |
Package directory (default: current directory) |
--node-dir |
Remote node directory (default: /opt/jarvis-node) |
jdt deploy ssh [email protected] .
jdt deploy ssh [email protected] . --node-dir /opt/jarvis-node
What it does:
scpthe package to the remote hostsshin and runscommand_store.py installwithsudo- Cleans up the temp files
Examples¶
Development loop¶
Deploy to all nodes¶
jdt deploy local .
jdt deploy docker jarvis-node-kitchen .
jdt deploy ssh [email protected] .
CI/CD deploy¶
jdt test . && jdt deploy ssh [email protected] . --node-dir /opt/jarvis-node
What Happens During Install¶
All three targets ultimately run the node's command_store.py install command, which:
- Reads
jarvis_package.yamlfrom the package - Copies components to their convention directories (
commands/,agents/, etc.) - Installs pip dependencies declared in the manifest
- Seeds secret placeholders (user fills values via the mobile app)
- The node's discovery services pick up the new components automatically
No restart is required --- the discovery system's background refresh detects new files.