open-im-server/scripts/mongo-init.sh
Mohamed Achref Hemissi 686366bdba feat: simplify MongoDB initialization in docker-compose
- Replace complex inline bash script with dedicated init script
- Use MongoDB built-in /docker-entrypoint-initdb.d/ mechanism
- Create scripts/mongo-init.sh for user creation
- Improve readability and maintainability

Fixes #3632
2025-12-03 17:37:59 +01:00

21 lines
594 B
Bash

#!/bin/bash
set -e
echo "Creating OpenIM user in database ${MONGO_INITDB_DATABASE}..."
mongosh -u "${MONGO_INITDB_ROOT_USERNAME}" -p "${MONGO_INITDB_ROOT_PASSWORD}" --authenticationDatabase admin <<EOF
use ${MONGO_INITDB_DATABASE}
if (!db.getUser("${MONGO_OPENIM_USERNAME}")) {
db.createUser({
user: "${MONGO_OPENIM_USERNAME}",
pwd: "${MONGO_OPENIM_PASSWORD}",
roles: [{role: "readWrite", db: "${MONGO_INITDB_DATABASE}"}]
})
print("OpenIM user created successfully")
} else {
print("User ${MONGO_OPENIM_USERNAME} already exists")
}
EOF
echo "OpenIM user setup completed"