Files
solace-bg-dubai/deployment/proxmox/deploy-dapp.sh
defiQUG c94eb595f8
Some checks failed
CI / lint-and-test (push) Has been cancelled
Initial commit: add .gitignore and README
2026-02-09 21:51:53 -08:00

133 lines
4.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# Main Deployment Orchestrator for Solace Treasury DApp on Proxmox VE
# This script orchestrates the deployment of all DApp components
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
CONFIG_FILE="$SCRIPT_DIR/config/dapp.conf"
# Load configuration
if [[ -f "$CONFIG_FILE" ]]; then
source "$CONFIG_FILE"
fi
# Deployment flags
DEPLOY_DATABASE="${DEPLOY_DATABASE:-true}"
DEPLOY_BACKEND="${DEPLOY_BACKEND:-true}"
DEPLOY_INDEXER="${DEPLOY_INDEXER:-true}"
DEPLOY_FRONTEND="${DEPLOY_FRONTEND:-true}"
DEPLOY_NGINX="${DEPLOY_NGINX:-false}"
echo "=========================================="
echo "Solace Treasury DApp Deployment"
echo "=========================================="
echo "This script will deploy the DApp components to Proxmox VE"
echo ""
echo "Components to deploy:"
echo " - Database: $DEPLOY_DATABASE"
echo " - Backend: $DEPLOY_BACKEND"
echo " - Indexer: $DEPLOY_INDEXER"
echo " - Frontend: $DEPLOY_FRONTEND"
echo " - Nginx: $DEPLOY_NGINX"
echo ""
# Check if running on Proxmox host
if ! command -v pct &> /dev/null; then
echo "ERROR: This script must be run on Proxmox host (pct command not found)"
exit 1
fi
# Check if running as root
if [[ $EUID -ne 0 ]]; then
echo "ERROR: This script must be run as root"
exit 1
fi
# Make deployment scripts executable
chmod +x "$SCRIPT_DIR"/*.sh
# Deploy components in order
if [[ "$DEPLOY_DATABASE" == "true" ]]; then
echo ""
echo "=========================================="
echo "Deploying Database..."
echo "=========================================="
"$SCRIPT_DIR/deploy-database.sh"
echo ""
echo "Waiting for database to be ready..."
sleep 10
fi
if [[ "$DEPLOY_BACKEND" == "true" ]]; then
echo ""
echo "=========================================="
echo "Deploying Backend..."
echo "=========================================="
"$SCRIPT_DIR/deploy-backend.sh"
fi
if [[ "$DEPLOY_INDEXER" == "true" ]]; then
echo ""
echo "=========================================="
echo "Deploying Indexer..."
echo "=========================================="
"$SCRIPT_DIR/deploy-indexer.sh"
fi
if [[ "$DEPLOY_FRONTEND" == "true" ]]; then
echo ""
echo "=========================================="
echo "Deploying Frontend..."
echo "=========================================="
"$SCRIPT_DIR/deploy-frontend.sh"
fi
if [[ "$DEPLOY_NGINX" == "true" ]]; then
echo ""
echo "=========================================="
echo "Deploying Nginx..."
echo "=========================================="
echo "Nginx deployment script not yet implemented"
echo "You can manually set up Nginx or use the frontend container with Nginx"
fi
echo ""
echo "=========================================="
echo "Deployment Complete"
echo "=========================================="
echo ""
echo "Summary:"
echo " Database: $VMID_DATABASE (${DATABASE_IP:-192.168.11.62})"
echo " Backend: $VMID_BACKEND (${BACKEND_IP:-192.168.11.61})"
echo " Indexer: $VMID_INDEXER (${INDEXER_IP:-192.168.11.63})"
echo " Frontend: $VMID_FRONTEND (${FRONTEND_IP:-192.168.11.60})"
echo ""
echo "Next steps:"
echo "1. Deploy contracts to Chain 138:"
echo " cd contracts && pnpm run deploy:chain138"
echo ""
echo "2. Configure environment variables:"
echo " - Update frontend/.env.production with contract addresses and RPC URL"
echo " - Update backend/.env with database connection and RPC URL"
echo " - Update backend/.env.indexer with indexer configuration"
echo ""
echo "3. Copy environment files to containers:"
echo " pct push $VMID_FRONTEND frontend/.env.production /opt/solace-frontend/.env.production"
echo " pct push $VMID_BACKEND backend/.env /opt/solace-backend/.env"
echo " pct push $VMID_INDEXER backend/.env.indexer /opt/solace-indexer/.env.indexer"
echo ""
echo "4. Run database migrations:"
echo " pct exec $VMID_BACKEND -- bash -c 'cd /opt/solace-backend && pnpm run db:migrate'"
echo ""
echo "5. Start services:"
echo " pct exec $VMID_BACKEND -- systemctl start solace-backend"
echo " pct exec $VMID_INDEXER -- systemctl start solace-indexer"
echo " pct exec $VMID_FRONTEND -- systemctl start solace-frontend"
echo ""
echo "6. Check service status:"
echo " pct exec $VMID_BACKEND -- systemctl status solace-backend"
echo " pct exec $VMID_INDEXER -- systemctl status solace-indexer"
echo " pct exec $VMID_FRONTEND -- systemctl status solace-frontend"