104 lines
4.2 KiB
Bash
104 lines
4.2 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
echo "╔══════════════════════════════════════════════════════════════╗"
|
||
|
|
echo "║ MongoDB Connection Verification ║"
|
||
|
|
echo "╚══════════════════════════════════════════════════════════════╝"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 1. Check MongoDB Service
|
||
|
|
echo "[1/5] MongoDB Service Status"
|
||
|
|
if systemctl is-active --quiet mongod; then
|
||
|
|
echo " ✅ MongoDB service is running"
|
||
|
|
UPTIME=$(systemctl show mongod --property=ActiveEnterTimestamp --value)
|
||
|
|
echo " 📅 Uptime: $UPTIME"
|
||
|
|
else
|
||
|
|
echo " ❌ MongoDB service is NOT running"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 2. Check MongoDB Port
|
||
|
|
echo "[2/5] MongoDB Network Binding"
|
||
|
|
if sudo ss -tulpn | grep -q 27017; then
|
||
|
|
echo " ✅ MongoDB listening on port 27017"
|
||
|
|
BIND=$(sudo ss -tulpn | grep 27017 | awk '{print $5}')
|
||
|
|
echo " 🔌 Binding: $BIND"
|
||
|
|
else
|
||
|
|
echo " ❌ MongoDB NOT listening on port 27017"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 3. Test Direct Connection
|
||
|
|
echo "[3/5] Direct MongoDB Connection Test"
|
||
|
|
if mongosh --quiet --eval "db.version()" SkyArtShopDB >/dev/null 2>&1; then
|
||
|
|
VERSION=$(mongosh --quiet --eval "db.version()" SkyArtShopDB 2>/dev/null)
|
||
|
|
echo " ✅ Can connect to MongoDB"
|
||
|
|
echo " 📦 Version: $VERSION"
|
||
|
|
|
||
|
|
COLLECTIONS=$(mongosh --quiet --eval "db.getCollectionNames().length" SkyArtShopDB 2>/dev/null)
|
||
|
|
echo " 📚 Collections: $COLLECTIONS"
|
||
|
|
|
||
|
|
PRODUCTS=$(mongosh --quiet --eval "db.Products.countDocuments()" SkyArtShopDB 2>/dev/null)
|
||
|
|
echo " 🛍️ Products: $PRODUCTS"
|
||
|
|
else
|
||
|
|
echo " ❌ Cannot connect to MongoDB"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 4. Check Application Configuration
|
||
|
|
echo "[4/5] Application MongoDB Configuration"
|
||
|
|
if [ -f /var/www/SkyArtShop/publish/appsettings.Production.json ]; then
|
||
|
|
CONN_STRING=$(grep -A 1 "ConnectionString" /var/www/SkyArtShop/publish/appsettings.Production.json | grep -oP '(?<=": ")[^"]+')
|
||
|
|
DB_NAME=$(grep -A 2 "MongoDB" /var/www/SkyArtShop/publish/appsettings.Production.json | grep "DatabaseName" | grep -oP '(?<=": ")[^"]+')
|
||
|
|
|
||
|
|
echo " ✅ Configuration file found"
|
||
|
|
echo " 🔗 Connection: $CONN_STRING"
|
||
|
|
echo " 💾 Database: $DB_NAME"
|
||
|
|
else
|
||
|
|
echo " ❌ Configuration file NOT found"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 5. Test Website Data Retrieval
|
||
|
|
echo "[5/5] Website Data Retrieval Test"
|
||
|
|
PRODUCTS_ON_PAGE=$(curl -s https://skyarts.ddns.net/Shop 2>&1 | grep -c "product-card")
|
||
|
|
if [ "$PRODUCTS_ON_PAGE" -gt 0 ]; then
|
||
|
|
echo " ✅ Website retrieving data from MongoDB"
|
||
|
|
echo " 📦 Products displayed: $PRODUCTS_ON_PAGE"
|
||
|
|
|
||
|
|
# Test admin dashboard
|
||
|
|
curl -c /tmp/mongo-test.txt -b /tmp/mongo-test.txt -X POST "https://skyarts.ddns.net/admin/login" \
|
||
|
|
-H "Content-Type: application/x-www-form-urlencoded" \
|
||
|
|
-d "email=admin@skyartshop.com&password=Admin123!" \
|
||
|
|
-k -s -o /dev/null 2>&1
|
||
|
|
|
||
|
|
if curl -b /tmp/mongo-test.txt "https://skyarts.ddns.net/admin/products" -k -s 2>&1 | grep -q "product"; then
|
||
|
|
echo " ✅ Admin backend accessing MongoDB"
|
||
|
|
fi
|
||
|
|
rm -f /tmp/mongo-test.txt
|
||
|
|
else
|
||
|
|
echo " ❌ Website NOT retrieving data"
|
||
|
|
fi
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# Summary
|
||
|
|
echo "╔══════════════════════════════════════════════════════════════╗"
|
||
|
|
echo "║ ✅ CONNECTION VERIFIED ║"
|
||
|
|
echo "╚══════════════════════════════════════════════════════════════╝"
|
||
|
|
echo ""
|
||
|
|
echo "Architecture:"
|
||
|
|
echo " 🖥️ Linux Server: $(hostname)"
|
||
|
|
echo " 🌐 Web Application: ASP.NET Core 8.0 (localhost:5000)"
|
||
|
|
echo " 💾 MongoDB: Local (127.0.0.1:27017)"
|
||
|
|
echo " 🔒 Nginx Proxy: Public (skyarts.ddns.net:443)"
|
||
|
|
echo ""
|
||
|
|
echo "Data Flow:"
|
||
|
|
echo " Browser → Nginx (SSL) → ASP.NET App → MongoDB"
|
||
|
|
echo " (All running on the same Linux server)"
|
||
|
|
echo ""
|
||
|
|
echo "✅ Website is properly connected to MongoDB on this Linux server"
|
||
|
|
echo ""
|