blackleafdigital/ZLayer CLI
Install and (optionally) run the ZLayer CLI
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jun 14, 2026
- License
- Apache 2.0
Pinned Snippet
uses: blackleafdigital/zlayer@3c4692aecaa8aaa81d2c6cc924498fc9a64e3406 # v0.12.10tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| version | ZLayer version (default: latest) | no | latest |
| command | Optional ZLayer command to run after install. If empty, the action only installs. | no | "" |
| working-directory | Working directory for the command | no | . |
| install-dir | Where to install the zlayer binary. - empty (default): portable install to $RUNNER_TEMP/zlayer-bin. No sudo, no daemon, no system deps touched. - non-empty (e.g. /usr/local/bin): full system install via install.sh. Handles libseccomp / cgroups v2 / SELinux relabel / completions / optional daemon. Requires sudo. | no | "" |
| data-dir | ZLAYER_DATA_DIR override propagated via $GITHUB_ENV so every subsequent step in the job sees it. - empty in portable mode: defaults to $RUNNER_TEMP/zlayer-data. - empty in system mode: leaves ZLAYER_DATA_DIR unset (zlayer uses platform default /var/lib/zlayer). - non-empty: written verbatim to $GITHUB_ENV in both modes. | no | "" |
| install-daemon | Only used in system mode (install-dir non-empty). If 'true', install.sh runs `zlayer daemon install` (systemd on Linux, launchd on macOS). Default 'false' (sets ZLAYER_NO_SERVICE=1). | no | false |
| start-daemon | Portable mode only. After install, launch `zlayer serve --daemon --bind <bind>`. No-op in system mode (the systemd/launchd unit starts the daemon if install-daemon: true). | no | false |
| bind | Daemon bind address. - System mode forwards via ZLAYER_BIND env to install.sh -> `daemon install --bind`. - Portable + start-daemon spawns with `--bind <value>`. | no | 127.0.0.1:3669 |
| docker-socket | Enable Docker API socket emulation. - System mode: forwards ZLAYER_DOCKER_SOCKET=1 to install.sh. - Portable + start-daemon: passes --docker-socket to the spawned daemon. Requires a zlayer binary built with the `docker-compat` feature; validated at runtime. | no | false |
| enable-completions | Install shell completions. Detects $SHELL. - System mode: `zlayer completions <shell>` piped (with sudo) to the system completion path. - Portable: piped to $RUNNER_TEMP/zlayer-completions/. | no | false |
| with-overlay | Enable overlay networking on the daemon. Implies install-daemon: true (system mode) OR start-daemon: true (portable mode). Verifies /dev/net/tun and sudo availability. System mode forwards ZLAYER_WITH_OVERLAY=1 to install.sh; portable currently no-op for the daemon flag (the flag is only honored by `daemon install`). | no | false |
| admin-email | Forwarded via env ZLAYER_BOOTSTRAP_EMAIL (clap env-mapped). System mode. | no | "" |
| admin-password-file | Path to a file containing the admin password. Forwarded via env ZLAYER_ADMIN_PASSWORD_FILE to install.sh, which appends --admin-password-file. System mode. | no | "" |
| jwt-secret | Forwarded via env ZLAYER_JWT_SECRET (clap env-mapped). System mode. | no | "" |
Outputs
| name | description |
|---|---|
| version | Installed ZLayer version |
| bin-dir | Directory the zlayer binary was installed into |
| data-dir | Resolved ZLAYER_DATA_DIR (empty when system mode and no override was given). |
| daemon-running | 'true' iff start-daemon: true or system-mode daemon install succeeded AND the daemon responds on <bind> (1 retry, 2s connect timeout). Empty string otherwise. |
| socket-path | UDS socket path if daemon was started. |
| docker-socket-path | /var/run/docker.sock if docker-socket: true and daemon is running, empty otherwise. |