Files
proxmox/docs/03-deployment/RUN_DEPLOYMENT.md
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

258 lines
5.8 KiB
Markdown

# Run Deployment - Execution Guide
**Last Updated:** 2026-01-31
**Document Version:** 1.0
**Status:** Active Documentation
---
## ✅ Scripts Validated and Ready
All scripts have been validated:
- ✓ Syntax OK
- ✓ Executable permissions set
- ✓ Dependencies present
- ✓ Help/usage messages working
## Quick Start
### Step 1: Copy Scripts to Proxmox Host
**From your local machine:**
```bash
cd /home/intlc/projects/proxmox
./scripts/copy-scripts-to-proxmox.sh
```
This copies all deployment scripts to the Proxmox host at `/opt/smom-dbis-138-proxmox/scripts/`.
### Step 2: Run Deployment on Proxmox Host
**SSH to Proxmox host and execute:**
```bash
# 1. SSH to Proxmox host
ssh root@192.168.11.10
# 2. Navigate to deployment directory
cd /opt/smom-dbis-138-proxmox
# 3. Run complete deployment
sudo ./scripts/deployment/deploy-validated-set.sh \
--source-project /home/intlc/projects/smom-dbis-138
```
**Note**: The source project path must be accessible from the Proxmox host. If the Proxmox host is remote, ensure:
- The directory is mounted/shared, OR
- Configuration files are copied separately to the Proxmox host
```
## Execution Options
### Option 1: Complete Deployment (First Time)
Deploys everything from scratch:
```bash
sudo ./scripts/deployment/deploy-validated-set.sh \
--source-project /path/to/smom-dbis-138
```
**What it does:**
1. Deploys containers
2. Copies configuration files
3. Bootstraps network
4. Validates deployment
### Option 2: Bootstrap Existing Containers
If containers are already deployed:
```bash
sudo ./scripts/network/bootstrap-network.sh
```
Or using the main script:
```bash
sudo ./scripts/deployment/deploy-validated-set.sh \
--skip-deployment \
--skip-config \
--source-project /path/to/smom-dbis-138
```
### Option 3: Validate Only
Just validate the current deployment:
```bash
sudo ./scripts/validation/validate-validator-set.sh
```
### Option 4: Check Node Health
Check health of a specific node:
```bash
# Human-readable output
sudo ./scripts/health/check-node-health.sh 1000
# JSON output (for automation)
sudo ./scripts/health/check-node-health.sh 1000 --json
```
## Expected Output
### Successful Deployment
```
=========================================
Deploy Validated Set - Script-Based Approach
=========================================
=== Pre-Deployment Validation ===
[✓] Prerequisites checked
=========================================
Phase 1: Deploy Containers
=========================================
[INFO] Deploying Besu nodes...
[✓] Besu nodes deployed
=========================================
Phase 2: Copy Configuration Files
=========================================
[INFO] Copying Besu configuration files...
[✓] Configuration files copied
=========================================
Phase 3: Bootstrap Network
=========================================
[INFO] Bootstrapping network...
[INFO] Collecting enodes from validators...
[✓] Network bootstrapped
=========================================
Phase 4: Validate Deployment
=========================================
[INFO] Validating validator set...
[✓] All validators validated successfully!
=========================================
[✓] Deployment Complete!
=========================================
```
## Monitoring During Execution
### Watch Logs in Real-Time
```bash
# In another terminal, watch the log file
tail -f /opt/smom-dbis-138-proxmox/logs/deploy-validated-set-*.log
```
### Check Container Status
```bash
# List all containers
pct list | grep -E "1000|1001|1002|1003|1004|1500|1501|1502|1503|2500|2501|2502"
# Check specific container
pct status 1000
```
### Monitor Service Logs
```bash
# Watch Besu service logs
pct exec 1000 -- journalctl -u besu-validator -f
```
## Troubleshooting
### If Deployment Fails
1. **Check the log file:**
```bash
tail -100 /opt/smom-dbis-138-proxmox/logs/deploy-validated-set-*.log
```
2. **Check container status:**
```bash
pct list
```
3. **Check service status:**
```bash
pct exec <vmid> -- systemctl status besu-validator
```
4. **Review error messages** in the script output
### Common Issues
**Issue: Containers not starting**
- Check resources (RAM, disk)
- Check OS template availability
- Review container logs
**Issue: Configuration copy fails**
- Verify source project path is correct
- Check source files exist
- Verify containers are running
**Issue: Bootstrap fails**
- Ensure containers are running
- Check P2P port (30303) is accessible
- Verify enode extraction works
**Issue: Validation fails**
- Check validator keys exist
- Verify configuration files are present
- Check services are running
## Post-Deployment Verification
After successful deployment, verify:
```bash
# 1. Check all services are running
for vmid in 1000 1001 1002 1003 1004 1500 1501 1502 1503 2500 2501 2502; do
echo "=== Container $vmid ==="
pct exec $vmid -- systemctl status besu-validator besu-sentry besu-rpc --no-pager 2>/dev/null | head -5
done
# 2. Check consensus (block production)
pct exec 2500 -- curl -s -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \
http://localhost:8545 | python3 -m json.tool
# 3. Check peer connections
pct exec 2500 -- curl -s -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"admin_peers","params":[],"id":1}' \
http://localhost:8545 | python3 -m json.tool
```
## Success Criteria
Deployment is successful when:
- ✓ All containers are running
- ✓ All services are active
- ✓ Network is bootstrapped (static-nodes.json deployed)
- ✓ Validators are validated
- ✓ Consensus is active (blocks being produced)
- ✓ Nodes can connect to peers
## Next Steps
After successful deployment:
1. Set up monitoring
2. Configure backups
3. Document node endpoints
4. Set up alerting
5. Plan maintenance schedule