# Temporary VM Deployment - Quick Reference

## Overview

This deployment method runs all 12 Besu nodes (5 validators, 4 sentries, 3 RPC) in a single VM using Docker containers. This is ideal for quick testing, validation, or as a stepping stone before migrating to individual LXC containers.

## Quick Start

### Option 1: Complete Automated Deployment

```bash
# On Proxmox host
cd /opt/smom-dbis-138-proxmox
sudo ./scripts/deployment/deploy-besu-temp-vm-complete.sh /opt/smom-dbis-138
```

### Option 2: Step-by-Step Deployment

```bash
# Step 1: Create VM
sudo ./scripts/deployment/deploy-besu-temp-vm.sh

# Step 2: Copy configs
./scripts/deployment/copy-configs-to-vm.sh /opt/smom-dbis-138

# Step 3: SSH into VM and start containers
ssh root@192.168.11.90
cd /opt/besu
docker compose up -d
```

### Option 3: Remote Deployment (from local machine)

```bash
# From your local machine
cd /home/intlc/projects/proxmox
./scripts/deploy-besu-temp-vm-on-ml110.sh
```

## What Gets Deployed

- **VM**: VMID 9000, 32GB RAM, 8 cores, 500GB disk
- **IP Address**: 192.168.11.90
- **Containers**: 12 Besu Docker containers
  - 5 Validators
  - 4 Sentries
  - 3 RPC nodes

## Access Points

### RPC Endpoints
- RPC-1: `http://192.168.11.90:8545`
- RPC-2: `http://192.168.11.90:8547`
- RPC-3: `http://192.168.11.90:8549`

### Metrics Endpoints
- Validators: `http://192.168.11.90:9545-9549/metrics`
- Sentries: `http://192.168.11.90:9550-9553/metrics`
- RPC Nodes: `http://192.168.11.90:9554-9556/metrics`

## Management Commands

```bash
# SSH into VM
ssh root@192.168.11.90

# View logs
docker compose logs -f

# Restart all containers
docker compose restart

# Check status
docker compose ps

# Stop all
docker compose stop

# Start all
docker compose start
```

## Validation

```bash
# From Proxmox host
cd /opt/smom-dbis-138-proxmox
./scripts/validation/validate-besu-temp-vm.sh
```

## Migration to LXC

When ready to migrate to individual LXC containers:

```bash
# 1. Deploy LXC containers
sudo ./scripts/deployment/deploy-besu-nodes.sh

# 2. Migrate data
sudo ./scripts/migration/migrate-vm-to-lxc.sh /opt/smom-dbis-138

# 3. Start services
for vmid in 1000 1001 1002 1003 1004 1500 1501 1502 1503 2500 2501 2502; do
    pct exec $vmid -- systemctl start besu-validator 2>/dev/null || \
    pct exec $vmid -- systemctl start besu-sentry 2>/dev/null || \
    pct exec $vmid -- systemctl start besu-rpc 2>/dev/null
done
```

## Files Created

- `scripts/deployment/deploy-besu-temp-vm.sh` - VM creation
- `scripts/deployment/setup-docker-besu.sh` - Docker setup
- `scripts/deployment/copy-configs-to-vm.sh` - Config copying
- `scripts/deployment/deploy-besu-temp-vm-complete.sh` - Complete orchestration
- `scripts/migration/migrate-vm-to-lxc.sh` - Migration script
- `scripts/validation/validate-besu-temp-vm.sh` - Validation script
- `templates/docker-compose-besu-temp.yml` - Docker Compose file
- `templates/besu-configs/` - Configuration templates

## Documentation

- [Complete Deployment Guide](docs/TEMP_VM_DEPLOYMENT.md)
- [Quick Start Guide](docs/TEMP_VM_QUICK_START.md)
- [Deployment Options](docs/DEPLOYMENT_OPTIONS.md)

## Troubleshooting

See [TEMP_VM_DEPLOYMENT.md](docs/TEMP_VM_DEPLOYMENT.md#troubleshooting) for detailed troubleshooting steps.

