Add MongoDB integration and configure Docker container to publish app on port 8084

This commit is contained in:
2026-08-09 18:44:24 +00:00
parent 7675df4ba1
commit e3a6690c30
6 changed files with 1298 additions and 80 deletions
+12 -27
View File
@@ -1,34 +1,19 @@
#!/usr/bin/env bash
set -e
DB_NAME="${DB_NAME:-hospital}"
DB_USER="${DB_USER:-hospital}"
DB_PASSWORD="${DB_PASSWORD:-hospital123}"
echo "Starting local MongoDB server (only accessible from inside container)..."
# Start mongod as the default mongodb user, bound to localhost (127.0.0.1) for internal access only
su -s /bin/bash -c "mongod --dbpath /data/db --bind_ip 127.0.0.1 --fork --logpath /var/log/mongodb/mongod.log" mongodb
echo "Waiting for MariaDB to be ready..."
for i in $(seq 1 60); do
mysql -h "${DB_HOST:-db}" -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -e "SELECT 1" 2>/dev/null && break || sleep 2
echo "Waiting for MongoDB to be ready..."
for i in $(seq 1 30); do
mongosh --eval "db.adminCommand('ping')" --quiet &>/dev/null && break
sleep 1
done
ADMIN_DNI="${ADMIN_DNI:-00000000}"
ADMIN_PASSWORD="${ADMIN_PASSWORD:-Admin123!}"
echo "Starting Nginx reverse proxy..."
nginx
echo "Starting nginx..."
nginx &
echo "Waiting for API server..."
sleep 3
echo "Creating admin user via API..."
curl -s -X POST "http://localhost:4000/api/usuarios" \
-H "Content-Type: application/json" \
-d "{\"apellido\":\"Administrador\",\"nombre\":\"Sistema\",\"dni\":\"$ADMIN_DNI\",\"fechaNacimiento\":\"2024-01-01\",\"email\":\"admin@hospital.local\",\"rol\":\"admin\",\"password\":\"$ADMIN_PASSWORD\"}" \
|| echo "Admin user may already exist"
echo "=========================================="
echo "ADMIN CREDENTIALS:"
echo "DNI: $ADMIN_DNI"
echo "Password: $ADMIN_PASSWORD"
echo "=========================================="
exec node server/api-mariadb.js
echo "Starting Node.js backend connected to local MongoDB..."
# Start the Node.js API server using MongoDB
exec node server/api-mongodb.js