Files

96 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
# --- Colors for Output ---
GREEN='\033[0;32m'
BLUE='\033[0;34m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo -e "${BLUE}==============================================${NC}"
echo -e "${GREEN} Production Readiness Checklist ${NC}"
echo -e "${BLUE}==============================================${NC}"
# 1. Check PHP Version
PHP_VER=$(php -r 'echo PHP_VERSION;')
echo -ne "Checking PHP Version (8.2+ required)... "
if [[ $(echo "$PHP_VER 8.2" | awk '{print ($1 >= $2)}') -eq 1 ]]; then
echo -e "${GREEN}OK ($PHP_VER)${NC}"
else
echo -e "${RED}FAIL ($PHP_VER)${NC}"
fi
# 2. Check PHP Extensions
echo -e "\nChecking PHP Extensions:"
EXTENSIONS=("pgsql" "redis" "curl" "mbstring" "xml" "zip" "bcmath" "intl" "gd")
for ext in "${EXTENSIONS[@]}"; do
echo -ne " - $ext... "
if php -m | grep -qi "$ext"; then
echo -e "${GREEN}INSTALLED${NC}"
else
echo -e "${RED}MISSING${NC}"
fi
done
# 3. Check .env settings
echo -e "\nChecking .env settings:"
if [ -f .env ]; then
APP_ENV=$(grep APP_ENV .env | cut -d '=' -f2)
APP_DEBUG=$(grep APP_DEBUG .env | cut -d '=' -f2)
echo -ne " - APP_ENV... "
if [[ "$APP_ENV" == "production" ]]; then
echo -e "${GREEN}production${NC}"
else
echo -e "${YELLOW}$APP_ENV (Warning: not production)${NC}"
fi
echo -ne " - APP_DEBUG... "
if [[ "$APP_DEBUG" == "false" ]]; then
echo -e "${GREEN}false${NC}"
else
echo -e "${RED}true (CRITICAL: Disable debug in production!)${NC}"
fi
else
echo -e "${RED}.env file missing!${NC}"
fi
# 4. Check Directory Permissions
echo -e "\nChecking Directory Permissions:"
DIRS=("storage" "bootstrap/cache")
for dir in "${DIRS[@]}"; do
echo -ne " - $dir writable... "
if [ -w "$dir" ]; then
echo -e "${GREEN}YES${NC}"
else
echo -e "${RED}NO${NC}"
fi
done
# 5. Check Mobile API URL
echo -e "\nChecking Mobile API Configuration:"
if [ -f mobile/services/api.ts ]; then
if grep -q "Constants.expoConfig?.extra?.apiUrl" mobile/services/api.ts; then
echo -e "${GREEN}Flexible (Production Ready)${NC}"
else
echo -e "${YELLOW}Hardcoded (Check mobile/services/api.ts)${NC}"
fi
fi
# 6. Check Database Connectivity
echo -e "\nChecking Database Connectivity... "
php artisan db:monitor --quiet > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo -e "${GREEN}CONNECTED${NC}"
else
echo -e "${RED}FAILED${NC}"
fi
echo -e "\n${BLUE}==============================================${NC}"
echo -e "${YELLOW}Next Steps for Smooth Deployment:${NC}"
echo -e "1. Run ${BLUE}php artisan optimize${NC} in production."
echo -e "2. Run ${BLUE}npm run build${NC} for frontend assets."
echo -e "3. Ensure ${BLUE}Supervisor${NC} is running for Queue and Reverb."
echo -e "4. Check ${BLUE}Nginx${NC} logs for any proxy issues."
echo -e "${BLUE}==============================================${NC}"