Files
proxmox/scripts/complete-setup.sh
defiQUG fbda1b4beb
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
docs: Ledger Live integration, contract deploy learnings, NEXT_STEPS updates
- ADD_CHAIN138_TO_LEDGER_LIVE: Ledger form done; public code review repo bis-innovations/LedgerLive; init/push commands
- CONTRACT_DEPLOYMENT_RUNBOOK: Chain 138 gas price 1 gwei, 36-addr check, TransactionMirror workaround
- CONTRACT_*: AddressMapper, MirrorManager deployed 2026-02-12; 36-address on-chain check
- NEXT_STEPS_FOR_YOU: Ledger done; steps completable now (no LAN); run-completable-tasks-from-anywhere
- MASTER_INDEX, OPERATOR_OPTIONAL, SMART_CONTRACTS_INVENTORY_SIMPLE: updates
- LEDGER_BLOCKCHAIN_INTEGRATION_COMPLETE: bis-innovations/LedgerLive reference

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 15:46:57 -08:00

279 lines
8.7 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
set -euo pipefail
# Complete Setup Script for Proxmox Workspace
# This script ensures all prerequisites are met and completes all setup steps
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
echo "🚀 Proxmox Workspace Complete Setup"
echo "===================================="
echo ""
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Check functions
check_pass() {
echo -e "${GREEN}${NC} $1"
}
check_warn() {
echo -e "${YELLOW}⚠️${NC} $1"
}
check_fail() {
echo -e "${RED}${NC} $1"
exit 1
}
check_info() {
echo -e "${BLUE}${NC} $1"
}
# Step 1: Verify Prerequisites
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Step 1: Verifying Prerequisites"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# Check Node.js
if command -v node &> /dev/null; then
NODE_VERSION=$(node --version)
NODE_MAJOR=$(echo "$NODE_VERSION" | cut -d'.' -f1 | sed 's/v//')
if [ "$NODE_MAJOR" -ge 16 ]; then
check_pass "Node.js $NODE_VERSION installed (requires 16+)"
else
check_fail "Node.js version $NODE_VERSION is too old (requires 16+)"
fi
else
check_fail "Node.js is not installed"
fi
# Check pnpm
if command -v pnpm &> /dev/null; then
PNPM_VERSION=$(pnpm --version)
PNPM_MAJOR=$(echo "$PNPM_VERSION" | cut -d'.' -f1)
if [ "$PNPM_MAJOR" -ge 8 ]; then
check_pass "pnpm $PNPM_VERSION installed (requires 8+)"
else
check_fail "pnpm version $PNPM_VERSION is too old (requires 8+)"
fi
else
check_fail "pnpm is not installed. Install with: npm install -g pnpm"
fi
# Check Git
if command -v git &> /dev/null; then
GIT_VERSION=$(git --version | awk '{print $3}')
check_pass "Git $GIT_VERSION installed"
else
check_fail "Git is not installed"
fi
echo ""
# Step 2: Initialize Submodules
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Step 2: Initializing Git Submodules"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
if [ -f ".gitmodules" ] || [ -d ".git" ]; then
check_info "Initializing and updating submodules..."
git submodule update --init --recursive 2>&1 | grep -E "Submodule|Cloning|fatal" || true
check_pass "Submodules initialized"
else
check_warn "Not a git repository, skipping submodule initialization"
fi
echo ""
# Step 3: Install Dependencies
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Step 3: Installing Workspace Dependencies"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
check_info "Installing dependencies for all workspace packages..."
if pnpm install; then
check_pass "All dependencies installed"
else
check_fail "Failed to install dependencies"
fi
echo ""
# Step 4: Verify Workspace Structure
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Step 4: Verifying Workspace Structure"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# Check workspace config
if [ -f "pnpm-workspace.yaml" ]; then
check_pass "pnpm-workspace.yaml exists"
else
check_fail "pnpm-workspace.yaml not found"
fi
# Check root package.json
if [ -f "package.json" ]; then
check_pass "Root package.json exists"
if grep -q "mcp:start" package.json; then
check_pass "Workspace scripts configured"
fi
else
check_fail "package.json not found"
fi
# Check submodules
if [ -d "mcp-proxmox" ] && [ -f "mcp-proxmox/index.js" ]; then
check_pass "mcp-proxmox submodule present"
else
check_warn "mcp-proxmox submodule may be missing"
fi
if [ -d "ProxmoxVE/frontend" ] && [ -f "ProxmoxVE/frontend/package.json" ]; then
check_pass "ProxmoxVE/frontend submodule present"
else
check_warn "ProxmoxVE/frontend submodule may be missing"
fi
echo ""
# Step 5: Configuration Files
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Step 5: Setting Up Configuration Files"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
ENV_FILE="$HOME/.env"
if [ ! -f "$ENV_FILE" ]; then
check_info "Creating .env file..."
cat > "$ENV_FILE" << 'EOF'
# Proxmox MCP Server Configuration
# Fill in your actual values below
# Proxmox Configuration (REQUIRED)
PROXMOX_HOST=your-proxmox-ip-or-hostname
PROXMOX_USER=root@pam
PROXMOX_TOKEN_NAME=your-token-name
PROXMOX_TOKEN_VALUE=your-token-secret
# Security Settings (REQUIRED)
# ⚠️ WARNING: Setting PROXMOX_ALLOW_ELEVATED=true enables DESTRUCTIVE operations
PROXMOX_ALLOW_ELEVATED=false
# Optional Settings
# PROXMOX_PORT=8006 # Defaults to 8006 if not specified
EOF
check_pass ".env file created at $ENV_FILE"
check_warn "Please edit $ENV_FILE and add your Proxmox credentials"
else
check_pass ".env file exists at $ENV_FILE"
# Check if configured
if grep -q "your-proxmox-ip" "$ENV_FILE" 2>/dev/null || ! grep -q "^PROXMOX_HOST=" "$ENV_FILE" 2>/dev/null; then
check_warn ".env file needs Proxmox credentials configured"
else
check_pass ".env file appears configured"
fi
fi
# Claude Desktop config
CLAUDE_CONFIG_DIR="$HOME/.config/Claude"
CLAUDE_CONFIG="$CLAUDE_CONFIG_DIR/claude_desktop_config.json"
if [ ! -d "$CLAUDE_CONFIG_DIR" ]; then
mkdir -p "$CLAUDE_CONFIG_DIR"
check_pass "Claude config directory created"
fi
if [ ! -f "$CLAUDE_CONFIG" ]; then
check_info "Creating Claude Desktop config..."
cat > "$CLAUDE_CONFIG" << EOF
{
"mcpServers": {
"proxmox": {
"command": "node",
"args": [
"$SCRIPT_DIR/mcp-proxmox/index.js"
]
}
}
}
EOF
check_pass "Claude Desktop config created"
else
check_pass "Claude Desktop config exists"
fi
echo ""
# Step 6: Verify Dependencies
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Step 6: Verifying Package Dependencies"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# Check MCP server dependencies
if [ -d "mcp-proxmox/node_modules" ]; then
if [ -d "mcp-proxmox/node_modules/@modelcontextprotocol" ]; then
check_pass "MCP server dependencies installed"
else
check_warn "MCP server dependencies may be incomplete"
fi
else
check_warn "MCP server node_modules not found (may need: cd mcp-proxmox && pnpm install)"
fi
# Check frontend dependencies
if [ -d "ProxmoxVE/frontend/node_modules" ]; then
check_pass "Frontend dependencies installed"
else
check_warn "Frontend dependencies not found (may need: cd ProxmoxVE/frontend && pnpm install)"
fi
echo ""
# Step 7: Final Verification
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "Step 7: Final Verification"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
# Run the verification script if it exists
if [ -f "verify-setup.sh" ]; then
check_info "Running verification script..."
echo ""
bash verify-setup.sh || check_warn "Some verification checks failed (see above)"
else
check_warn "verify-setup.sh not found"
fi
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "✅ Setup Complete!"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "Next steps:"
echo "1. Edit $ENV_FILE with your Proxmox credentials"
echo "2. (Optional) Create Proxmox API token: ./create-proxmox-token.sh"
echo "3. Restart Claude Desktop to load MCP server"
echo "4. Test MCP server: pnpm test:basic"
echo "5. Start MCP server: pnpm mcp:start"
echo ""
echo "Available commands:"
echo " • pnpm mcp:start - Start MCP server"
echo " • pnpm mcp:dev - Start MCP server in watch mode"
echo " • pnpm frontend:dev - Start frontend dev server"
echo " • ./verify-setup.sh - Verify setup"
echo ""