etsy-finance-tracker/validate-deployment.sh
dlawler489 89ee6e69fc Enhanced deployment with comprehensive bug fixes and documentation
- Fixed nginx 404 errors with enhanced file copying and fallback configuration
- Added docker-compose.simple.yml for streamlined first-time deployment
- Enhanced docker-compose.deploy-local.yml with detailed debugging and health checks
- Improved nginx.deploy.conf with fallback pages and auto-refresh
- Added comprehensive DEPLOYMENT_GUIDE.md with multiple deployment options
- Created validate-deployment.sh script for environment validation
- Updated container interface deployment documentation
- Added DEPLOYMENT_STATUS.md summary of ready features

Deployment improvements:
- Enhanced container startup sequence with health checks
- Detailed logging for troubleshooting file copying issues
- Multiple deployment strategies for different use cases
- Fallback nginx configuration prevents 404 errors during startup
- Auto-refresh functionality for seamless user experience

Ready for production deployment via container interfaces or command line.
2026-04-21 13:18:09 +10:00

121 lines
No EOL
3.4 KiB
Bash
Executable file

#!/bin/bash
echo "🔍 Etsy Finance Tracker - Deployment Validation"
echo "=================================================="
# Check if Docker is available
echo "📦 Checking Docker availability..."
if command -v docker &> /dev/null; then
echo "✅ Docker is available"
docker --version
else
echo "❌ Docker is not available or not in PATH"
echo "💡 You may need to use Docker Desktop or another container interface"
fi
# Check if Docker Compose is available
echo ""
echo "🐙 Checking Docker Compose availability..."
if command -v docker-compose &> /dev/null; then
echo "✅ docker-compose is available"
docker-compose --version
elif docker compose version &> /dev/null 2>&1; then
echo "✅ docker compose (newer version) is available"
docker compose version
else
echo "❌ Docker Compose is not available"
echo "💡 You may need to use container interface deployment"
fi
# Check if required files exist
echo ""
echo "📁 Checking required files..."
files=(
"Dockerfile"
"docker-compose.deploy-local.yml"
"docker-compose.deploy.yml"
"docker-compose.simple.yml"
"nginx.deploy.conf"
"package.json"
"client/package.json"
"server/package.json"
)
for file in "${files[@]}"; do
if [ -f "$file" ]; then
echo "$file exists"
else
echo "$file is missing"
fi
done
# Check for data directory
echo ""
echo "💾 Checking data persistence setup..."
if [ -d "data" ]; then
echo "✅ data directory exists"
echo "📂 Contents:"
ls -la data/
else
echo "⚠️ data directory doesn't exist, creating..."
mkdir -p data/{mongo,uploads,logs,csv,pdf}
echo "✅ data directory structure created"
fi
# Check port availability
echo ""
echo "🔌 Checking port availability..."
ports=(8080 8081)
for port in "${ports[@]}"; do
if lsof -i :$port &> /dev/null; then
echo "⚠️ Port $port is in use"
echo " Process using port $port:"
lsof -i :$port
else
echo "✅ Port $port is available"
fi
done
# Check disk space
echo ""
echo "💽 Checking disk space..."
available_space=$(df -h . | awk 'NR==2 {print $4}')
echo "Available space: $available_space"
if [[ $(df . | awk 'NR==2 {print $4}') -gt 2097152 ]]; then # 2GB in KB
echo "✅ Sufficient disk space available"
else
echo "⚠️ Low disk space - may cause build failures"
fi
echo ""
echo "🎯 Deployment Recommendations:"
echo "================================"
# Docker available
if command -v docker &> /dev/null || command -v docker-compose &> /dev/null; then
echo "🚀 You can use command-line deployment:"
if command -v docker-compose &> /dev/null; then
echo " docker-compose -f docker-compose.deploy-local.yml up --build"
else
echo " docker compose -f docker-compose.deploy-local.yml up --build"
fi
else
echo "🖥️ Use container interface deployment:"
echo " 1. Open Docker Desktop, Portainer, or similar tool"
echo " 2. Import docker-compose.deploy-local.yml"
echo " 3. Deploy the stack"
fi
echo ""
echo "📚 For detailed instructions, see:"
echo " - DEPLOYMENT_GUIDE.md (comprehensive guide)"
echo " - CONTAINER_INTERFACE_DEPLOYMENT.md (GUI deployment)"
echo ""
echo "🌐 After successful deployment:"
echo " - Frontend: http://localhost:8081"
echo " - API: http://localhost:8081/api"
echo " - Health Check: http://localhost:8081/api/health"
echo ""
echo "✅ Validation complete!"