ztechno_cli
v0.0.8
Published
Core files for ztechno framework
Readme
ztechno_cli
CLI tools for the ZTechno framework to build, push, and remotely update Docker containers.
Installation
npm install -g ztechno_cliOr use via npx:
npx ztechno_cli <command>Commands
ztechno-cli-build
Builds a Docker image tagged as <awsAccountId>/<packagename>:<tag>.
ztechno-cli-build [options]
Options:
--name <name> Image name (default: package.json "name")
--account <id> AWS Account ID (default: package.json "config.awsAccountId")
--tag <tag> Image tag (default: "latest")
--context <path> Build context path (default: ".")
-h, --help Show helpztechno-cli-push
Pushes a Docker image to the registry.
ztechno-cli-push [options]
Options:
--name <name> Image name (default: package.json "name")
--account <id> AWS Account ID (default: package.json "config.awsAccountId")
--tag <tag> Image tag (default: "latest")
-h, --help Show helpztechno-cli-update
Triggers a remote Docker container update via the ZTechno V2 Secure API (HMAC-signed).
ztechno-cli-update <packagename>:<port>
ztechno-cli-update # auto-detect from .env / package.jsonAuto-detection priority:
.envfile —hostname,packagename,port,volumes,ZTECHNO_API_SECRETpackage.json—"name"as packagename,"config.hostname","config.port","config.volumes"
ztechno-cli-publish
Runs the full pipeline: build → push → remote update.
ztechno-cli-publish [options]
Options:
--name <name> Image name (default: package.json "name")
--account <id> AWS Account ID (default: package.json "config.awsAccountId")
--tag <tag> Image tag (default: "latest")
--context <path> Build context path (default: ".")
-h, --help Show helpThe remote update step is skipped automatically if hostname or port is not configured.
Configuration
.env file
Place a .env file in your project root:
ZTECHNO_API_SECRET=your_secret_here
hostname=192.168.1.100
packagename=my-image
port=3000
volumes=/host/data:/app/data,/host/logs:/app/logspackage.json
{
"name": "my-image",
"config": {
"awsAccountId": "000123456789",
"hostname": "192.168.1.100",
"port": 3000,
"volumes": [
"/host/data:/app/data",
"/host/logs:/app/logs"
]
}
}Programmatic Usage
All commands are also exported as functions for use in your own scripts.
import { dockerBuild } from 'ztechno_cli/lib/scripts/docker-build'
import { dockerPush } from 'ztechno_cli/lib/scripts/docker-push'
import { updateDocker } from 'ztechno_cli/lib/scripts/docker-update'
import { dockerPublish } from 'ztechno_cli/lib/scripts/docker-publish'
// Build
dockerBuild({ packagename: 'my-image', awsAccountId: '000123456789' })
// Push
dockerPush({ packagename: 'my-image', awsAccountId: '000123456789' })
// Remote update
await updateDocker({
hostname: '192.168.1.100',
packagename: 'my-image',
port: 3000,
volumes: ['/host/data:/app/data'],
})
// Full pipeline
await dockerPublish()Security
Remote update requests are authenticated with an HMAC-SHA256 signature derived from ZTECHNO_API_SECRET. The signature covers the timestamp, package name, port, and volumes to prevent replay and tampering attacks.
License
MIT — Ivan Auda (ZTechnologies International)
