c7b8b01fe2
Receives messages from WeChat Work bot via WebSocket long connection and speaks them through XiaoAi smart speaker TTS. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
50 lines
1.6 KiB
Bash
50 lines
1.6 KiB
Bash
#!/bin/bash
|
|
# Deploy WeWork XiaoAi Bot to NAS via Docker
|
|
# Usage: ./deploy.sh <nas-ip> [nas-user]
|
|
|
|
set -e
|
|
|
|
NAS_USER="${2:-root}"
|
|
NAS_HOST="$1"
|
|
NAS_PATH="/opt/wework_xiaoai_bot"
|
|
|
|
if [ -z "$NAS_HOST" ]; then
|
|
echo "Usage: ./deploy.sh <nas-ip> [nas-user]"
|
|
echo "Example: ./deploy.sh 192.168.1.100 root"
|
|
exit 1
|
|
fi
|
|
|
|
echo "=== Deploying to $NAS_USER@$NAS_HOST:$NAS_PATH ==="
|
|
|
|
# 1. Create directory and copy files
|
|
ssh "$NAS_USER@$NAS_HOST" "mkdir -p $NAS_PATH"
|
|
scp docker-compose.yml Dockerfile .dockerignore requirements.txt \
|
|
"$NAS_USER@$NAS_HOST:$NAS_PATH/"
|
|
ssh "$NAS_USER@$NAS_HOST" "mkdir -p $NAS_PATH/app/services"
|
|
scp app/services/tts.py app/services/ws_client.py app/services/__init__.py \
|
|
"$NAS_USER@$NAS_HOST:$NAS_PATH/app/services/"
|
|
scp app/__init__.py config.py run.py \
|
|
"$NAS_USER@$NAS_HOST:$NAS_PATH/app/"
|
|
scp config.py run.py "$NAS_USER@$NAS_HOST:$NAS_PATH/"
|
|
|
|
# 2. Copy .env and token
|
|
echo "=== Copying config files ==="
|
|
scp .env "$NAS_USER@$NAS_HOST:$NAS_PATH/.env"
|
|
scp .mi.token "$NAS_USER@$NAS_HOST:$NAS_PATH/.mi.token"
|
|
|
|
# 3. Build and start on NAS
|
|
echo "=== Building and starting on NAS ==="
|
|
ssh "$NAS_USER@$NAS_HOST" << 'ENDSSH'
|
|
cd /opt/wework_xiaoai_bot
|
|
docker compose build
|
|
docker compose down 2>/dev/null || true
|
|
docker compose up -d
|
|
echo "=== Done! ==="
|
|
echo ""
|
|
echo "Useful commands on NAS:"
|
|
echo " docker compose -f /opt/wework_xiaoai_bot/docker-compose.yml logs -f"
|
|
echo " docker compose -f /opt/wework_xiaoai_bot/docker-compose.yml restart"
|
|
echo " docker compose -f /opt/wework_xiaoai_bot/docker-compose.yml down"
|
|
echo " docker compose -f /opt/wework_xiaoai_bot/docker-compose.yml up -d"
|
|
ENDSSH
|