---
name: citusio
description: Discover the skills bundled with a CitusIO image and select local setup, panel, agent API, migration, operations or recovery guidance for its installed tier.
---

# CitusIO image skills

This is the table of contents for this image's bundled skills. Read only the
skill relevant to the requested task, then its referenced local files. Internet
access is not required. Paths are relative to this document unless absolute.

This website carries the current skill sources. Check the installed image and tier for the task.

| Task | Skill |
| --- | --- |
| Discover this image's local skills | [citusio](../citusio/SKILL.md) |
| Prepare and validate a node deployment | [container-setup](../container-setup/SKILL.md) |
| Inspect, verify, restart and diagnose a node | [container-operations](../container-operations/SKILL.md) |
| Use the bundled web panel within this tier's scope | [panel-operations](../panel-operations/SKILL.md) |
| Use any agent or HTTP tools to inspect and operate the existing API | [admin-api-operations](../admin-api-operations/SKILL.md) |
| Build and package a customer bridge with the public C SDK | [bridge-development](../bridge-development/SKILL.md) |
| Map and verify a Mosquitto replacement | [migrate-mosquitto](../migrate-mosquitto/SKILL.md) |
| Map and verify an EMQX replacement | [migrate-emqx](../migrate-emqx/SKILL.md) |
| Plan state movement, cutover and rollback | [migration-cutover](../migration-cutover/SKILL.md) |
| Provision and recover PostgreSQL-backed broker state | [durable-recovery](../durable-recovery/SKILL.md) |
| Configure rules, protocol gateways and external sinks | [integration-bridges](../integration-bridges/SKILL.md) |
| Plan fencing, ownership and governed operations | [enterprise-operations](../enterprise-operations/SKILL.md) |

See the [manifest](../manifest.json) for hashes.

## Read a skill

Inside the container, use `cat` on a path from the table. From the host, with
`CITUSIO_IMAGE` set to the already available exact image reference:

```sh
docker run --rm --pull=never --read-only --network=none \
  --entrypoint cat "$CITUSIO_IMAGE" \
  /usr/share/nginz-iot/skills/container-setup/SKILL.md
```

To copy the whole bundle to an agent's local workspace without starting a
service, create a stopped container, copy the files, then remove that container:

```sh
skill_container=$(docker create --pull=never "$CITUSIO_IMAGE" skill)
docker cp "$skill_container":/usr/share/nginz-iot/skills ./citusio-skills
docker rm "$skill_container"
```

Use an unused destination and clean up only the container created by this
operation. The default command and explicit `skill` command print this table of
contents and exit. `stack-help` prints runtime role help. Service commands are
explicit: `iotd`, `gateway`, and `bridge`. The gateway requires broker authority
and does not start the other roles.

`requirements` prints the deployment contract as JSON. `deployment` streams a
tar archive of the matching offline Compose/configuration kit; redirect it to
a file. The local setup skill explains extraction, private inputs and checks.

## Emit the setup files

With the exact image already loaded, all commands below run without networking
or writable container storage:

```sh
docker run --rm --pull=never --read-only --network=none "$CITUSIO_IMAGE" setup
docker run --rm --pull=never --read-only --network=none "$CITUSIO_IMAGE" compose > compose.yaml
docker run --rm --pull=never --read-only --network=none "$CITUSIO_IMAGE" deployment > deployment.tar
mkdir deployment
tar -xf deployment.tar -C deployment
```

`setup` prints the complete local setup guide. `compose` prints this tier's
Compose document. For deployment, extract the archive into a fresh directory:
it contains that same Compose file **plus** matching configuration, private-input
templates, SQL when selected, requirements, task catalog and instructions. Use that
complete kit so relative mounts resolve. Every required public setup file is
inside the image; supply only the declared site-specific private inputs and
local services. Read `deployment/README.md`, then its `private-inputs.md`.

Pin deployment operations to the inspected image ID and compiled lane. The
lane marker is `/usr/share/nginz-iot-product-lane`; changing configuration or an
environment label cannot raise the compiled ceiling. Resume an existing
deployment from its current state rather than repeating initial provisioning.

Every tier, including Free, permits real production use. The legacy
`evaluation-demo` lane/profile identifiers describe image compatibility.
Free keeps state in memory; the production-use grant adds no restart durability
or paid service commitment. Check the image's license and selected profile.

## Choose how to operate

Use [panel operations](../panel-operations/SKILL.md) for browser inspection and
review, or [admin API operations](../admin-api-operations/SKILL.md) for direct
agent access. Both use the same backend-owned capabilities, verified identity
and command lifecycle. Customers choose their own agents and HTTP tools; the
product supplies contracts and skills, with no required agent client or host
language runtime. A tool's ability to make requests does not authorize effects.

The optional online directory is <https://citusio.com/skills/>. Bundled skills
are the default source for this build. Use online updates only when requested,
available and compatible with the installed image. No setup step downloads a
skill or requires access to that directory.
