Files
proxmox/rpc-translator-138/scripts/deploy-to-vmid.sh
defiQUG cb47cce074 Complete markdown files cleanup and organization
- Organized 252 files across project
- Root directory: 187 → 2 files (98.9% reduction)
- Moved configuration guides to docs/04-configuration/
- Moved troubleshooting guides to docs/09-troubleshooting/
- Moved quick start guides to docs/01-getting-started/
- Moved reports to reports/ directory
- Archived temporary files
- Generated comprehensive reports and documentation
- Created maintenance scripts and guides

All files organized according to established standards.
2026-01-06 01:46:25 -08:00

84 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
# Deploy RPC Translator to a Proxmox VMID
# Usage: ./scripts/deploy-to-vmid.sh <VMID> <VMIP>
set -e
VMID="${1:-}"
VMIP="${2:-}"
if [ -z "$VMID" ] || [ -z "$VMIP" ]; then
echo "Usage: $0 <VMID> <VMIP>"
echo "Example: $0 2400 192.168.11.240"
exit 1
fi
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
DEPLOY_DIR="/opt/rpc-translator-138"
echo "Deploying RPC Translator to VMID $VMID ($VMIP)..."
# Check if we can connect
echo "Checking connectivity to VMID $VMID..."
SSH_KEY=""
if [ -f ~/.ssh/proxmox_translator ]; then
SSH_KEY="-i ~/.ssh/proxmox_translator"
fi
if ! ssh $SSH_KEY -o StrictHostKeyChecking=no -o ConnectTimeout=5 "root@$VMIP" "echo 'Connected'" 2>/dev/null; then
echo "Error: Cannot connect to $VMIP. Please check SSH access."
exit 1
fi
# Build locally
echo "Building TypeScript..."
cd "$PROJECT_DIR"
pnpm run build
# Create deployment directory on remote
echo "Creating deployment directory on VMID $VMID..."
ssh $SSH_KEY -o StrictHostKeyChecking=no "root@$VMIP" "mkdir -p $DEPLOY_DIR"
# Copy files
echo "Copying files to VMID $VMID..."
RSYNC_SSH=""
if [ -n "$SSH_KEY" ]; then
RSYNC_SSH="-e \"ssh $SSH_KEY -o StrictHostKeyChecking=no\""
fi
eval rsync -avz --delete $RSYNC_SSH \
--exclude 'node_modules' \
--exclude '.git' \
--exclude 'dist' \
--exclude '.env' \
"$PROJECT_DIR/" "root@$VMIP:$DEPLOY_DIR/"
# Copy built files
eval rsync -avz $RSYNC_SSH "$PROJECT_DIR/dist/" "root@$VMIP:$DEPLOY_DIR/dist/"
# Copy package.json and install dependencies
echo "Installing dependencies on VMID $VMID..."
ssh $SSH_KEY -o StrictHostKeyChecking=no "root@$VMIP" "cd $DEPLOY_DIR && npm install --production"
# Copy systemd service file
echo "Installing systemd service..."
ssh $SSH_KEY -o StrictHostKeyChecking=no "root@$VMIP" "mkdir -p /etc/systemd/system"
scp $SSH_KEY -o StrictHostKeyChecking=no "$PROJECT_DIR/systemd/rpc-translator-138.service" "root@$VMIP:/etc/systemd/system/"
# Note: .env file should be configured separately
echo ""
echo "✅ Deployment complete!"
echo ""
echo "Next steps on VMID $VMID:"
echo "1. Configure .env file:"
echo " ssh root@$VMIP"
echo " cd $DEPLOY_DIR"
echo " cp env.template .env"
echo " nano .env # Edit with actual values"
echo ""
echo "2. Enable and start service:"
echo " systemctl daemon-reload"
echo " systemctl enable rpc-translator-138.service"
echo " systemctl start rpc-translator-138.service"
echo " systemctl status rpc-translator-138.service"
echo ""