Manage stacks via Portainer API. Compatible with Portainer 2.41+.
The redeployer is an alpine:latest container (outside the stack, survives stop).
bash
# Claw stack (default)
python3 {{SKILL_DIR}}/scripts/manage.py --mode update
# Other stack by ID
python3 {{SKILL_DIR}}/scripts/manage.py --mode update --stack 92
# Other stack by name
python3 {{SKILL_DIR}}/scripts/manage.py --mode update --stack searxng
# Skip image pull
python3 {{SKILL_DIR}}/scripts/manage.py --mode update --no-pull
bash
# Restart gateway container only
python3 {{SKILL_DIR}}/scripts/manage.py --mode restart
# Just pull image
python3 {{SKILL_DIR}}/scripts/manage.py --mode pull-only
PORTAINER_API_KEY — requiredPORTAINER_URL — required (e.g. http://portainer:9000)PORTAINER_ENDPOINT (default: 2)CLAW_STACK_ID (default: 89)CLAW_IMAGE (default: liyujiang/openclaw:latest)Portainer versionModeNotes2.19.xupdateStop → sleep → start (old flow)2.41+updateStop → PUT with env → async deploy