72 lines
2.2 KiB
Bash
Executable File
72 lines
2.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Install all OpenClaw channel plugins + signal-cli into the RUNNING clawtainer
|
|
# container via docker exec. No image rebuild or container replace.
|
|
# Run after: docker compose up -d
|
|
set -e
|
|
cd "$(dirname "$0")/.."
|
|
|
|
CONTAINER="${CLAWTAINER_CONTAINER:-clawtainer}"
|
|
OPENCLAW_USER=1000
|
|
SIGNAL_CLI_VER="0.13.24"
|
|
|
|
# Channel plugins from npm (official @openclaw)
|
|
PLUGINS=(
|
|
"@openclaw/mattermost"
|
|
"@openclaw/msteams"
|
|
"@openclaw/matrix"
|
|
"@openclaw/nostr"
|
|
"@openclaw/zalo"
|
|
"@openclaw/zalouser"
|
|
)
|
|
|
|
if ! docker ps --format '{{.Names}}' | grep -q "^${CONTAINER}$"; then
|
|
echo "Container ${CONTAINER} is not running. Start with: docker compose up -d"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Installing OpenClaw channel plugins..."
|
|
for pkg in "${PLUGINS[@]}"; do
|
|
echo " -> $pkg"
|
|
docker exec -u "$OPENCLAW_USER" "$CONTAINER" \
|
|
openclaw --yes plugins install "$pkg" || true
|
|
done
|
|
|
|
echo "Installing signal-cli..."
|
|
docker exec -u root "$CONTAINER" bash -c '
|
|
set -e
|
|
VER='"$SIGNAL_CLI_VER"'
|
|
ARCH=$(uname -m)
|
|
INSTALL_DIR=/usr/local
|
|
cd /tmp
|
|
if command -v signal-cli >/dev/null 2>&1 && signal-cli --version 2>/dev/null | grep -q "$VER"; then
|
|
echo " signal-cli $VER already installed"
|
|
exit 0
|
|
fi
|
|
mkdir -p "$INSTALL_DIR/bin"
|
|
if [ "$ARCH" = "x86_64" ] || [ "$ARCH" = "amd64" ]; then
|
|
echo " Using native binary (x86_64)"
|
|
curl -fsSL -o signal-cli.tar.gz \
|
|
"https://github.com/AsamK/signal-cli/releases/download/v${VER}/signal-cli-${VER}-Linux-native.tar.gz"
|
|
tar xzf signal-cli.tar.gz
|
|
mv signal-cli "$INSTALL_DIR/bin/"
|
|
else
|
|
echo " Using JVM build (${ARCH})"
|
|
apt-get update -qq && apt-get install -y -qq openjdk-21-jre-headless
|
|
curl -fsSL -o signal-cli.tar.gz \
|
|
"https://github.com/AsamK/signal-cli/releases/download/v${VER}/signal-cli-${VER}.tar.gz"
|
|
tar xzf signal-cli.tar.gz
|
|
cp -a signal-cli-${VER} /opt/signal-cli
|
|
ln -sf /opt/signal-cli/bin/signal-cli "$INSTALL_DIR/bin/signal-cli"
|
|
fi
|
|
chmod +x "$INSTALL_DIR/bin/signal-cli"
|
|
rm -rf /tmp/signal-cli*
|
|
echo " signal-cli installed"
|
|
'
|
|
|
|
echo ""
|
|
echo "Done. Installed:"
|
|
echo " - Plugins: ${PLUGINS[*]}"
|
|
echo " - signal-cli (for Signal channel)"
|
|
echo ""
|
|
echo "Restart the gateway to load plugins: docker exec $CONTAINER openclaw gateway restart"
|