#!/bin/bash # Deploy WeWork XiaoAi Bot to NAS via Docker # Usage: ./deploy.sh [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-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