#!/usr/bin/env bash set -e echo "=== Starting MariaDB ===" mysqld --user=mysql & echo "Waiting for MariaDB..." for i in $(seq 1 60); do mysqladmin ping -h localhost --silent 2>/dev/null && break || sleep 1 done # Get environment variables DB_NAME="${DB_NAME:-hospital}" DB_USER="${DB_USER:-hospital}" DB_PASSWORD="${DB_PASSWORD:-hospital123}" echo "Creating database: $DB_NAME" mysql -h localhost -u root -e "CREATE DATABASE IF NOT EXISTS \`$DB_NAME\`;" echo "Creating user: $DB_USER" mysql -h localhost -u root -e "CREATE USER IF NOT EXISTS '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASSWORD';" mysql -h localhost -u root -e "CREATE USER IF NOT EXISTS '$DB_USER'@'%' IDENTIFIED BY '$DB_PASSWORD';" mysql -h localhost -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost';" mysql -h localhost -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'%';" mysql -h localhost -u root -e "FLUSH PRIVILEGES;" # Create admin user ADMIN_DNI="${ADMIN_DNI:-00000000}" ADMIN_PASSWORD="${ADMIN_PASSWORD:-Admin123!}" echo "Checking admin user..." TABLE_EXISTS=$(mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -N -e "SHOW TABLES LIKE 'usuarios';" 2>/dev/null || echo "") if [ -n "$TABLE_EXISTS" ]; then USER_COUNT=$(mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -N -e "SELECT COUNT(*) FROM usuarios WHERE dni='$ADMIN_DNI';" 2>/dev/null || echo "0") if [ "$USER_COUNT" = "0" ]; then ADMIN_ID=$(cat /proc/sys/kernel/random/uuid) TODAY=$(date +%Y-%m-%d) # Insert user with empty password hash - needs password change mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -e " INSERT INTO usuarios (id,apellido,nombre,dni,fechaNacimiento,email,rol,passwordHash,fechaCreacion) VALUES ('$ADMIN_ID','Administrador','Sistema','$ADMIN_DNI','$TODAY','admin@hospital.local','admin','','$TODAY'); " # Use change-password API to set password curl -s -X POST "http://localhost:4000/api/auth/change-password" \ -H "Content-Type: application/json" \ -d "{\"dni\":\"$ADMIN_DNI\",\"oldPassword\":\"\",\"newPassword\":\"$ADMIN_PASSWORD\"}" 2>/dev/null || true echo "==========================================" echo "ADMIN CREDENTIALS:" echo "DNI: $ADMIN_DNI" echo "Password: $ADMIN_PASSWORD" echo "==========================================" fi fi echo "Starting nginx..." nginx & echo "Starting API server..." exec node server/api-mariadb.js mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -e "INSERT INTO usuarios (id,apellido,nombre,dni,fechaNacimiento,email,rol,passwordHash,fechaCreacion) VALUES ('$ADMIN_ID','Administrador','Sistema','$ADMIN_DNI','$TODAY','admin@hospital.local','admin','$HASH','$TODAY');" echo "==========================================" echo "ADMIN CREDENTIALS:" echo "DNI: $ADMIN_DNI" echo "Password: $ADMIN_PASSWORD" echo "==========================================" fi echo "Starting nginx..." nginx & echo "Starting API server..." exec node server/api-mariadb.js