- 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.
121 lines
No EOL
3.4 KiB
Bash
Executable file
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!" |