rocket-chat-demo / start.sh
anuj
batfa
ef798ec
raw
history blame
1.71 kB
#!/bin/bash
set -e
echo "Creating MongoDB configuration..."
cat > /tmp/mongod.conf << EOF
storage:
dbPath: /data/db
systemLog:
destination: file
path: /var/log/mongodb.log
logAppend: true
net:
bindIp: 127.0.0.1
port: 27017
replication:
replSetName: rs01
EOF
# Ensure proper permissions
echo "Setting up permissions..."
chown -R mongodb:mongodb /data/db /var/log/mongodb.log
# Start MongoDB
echo "Starting MongoDB..."
mongod --config /tmp/mongod.conf &
# Wait for MongoDB to be ready
echo "Waiting for MongoDB to start..."
max_attempts=30
attempt=1
while ! mongosh --quiet --eval "db.version()" > /dev/null 2>&1; do
if [ $attempt -gt $max_attempts ]; then
echo "MongoDB failed to start. Showing logs:"
cat /var/log/mongodb.log
exit 1
fi
echo "Attempt $attempt of $max_attempts: MongoDB not ready yet..."
sleep 2
attempt=$((attempt + 1))
done
echo "MongoDB started successfully"
# Initialize replica set
echo "Initializing replica set..."
mongosh --eval 'rs.initiate({_id: "rs01", members: [{_id: 0, host: "localhost:27017"}]})' || {
echo "Failed to initialize replica set"
exit 1
}
# Wait for replica set to initialize
echo "Waiting for replica set to be ready..."
attempt=1
while ! mongosh --eval "rs.status()" | grep -q '"ok" : 1'; do
if [ $attempt -gt $max_attempts ]; then
echo "Replica set failed to initialize after $max_attempts attempts"
exit 1
fi
echo "Attempt $attempt of $max_attempts: Replica set not ready yet..."
sleep 2
attempt=$((attempt + 1))
done
echo "Replica set initialized successfully"
# Start Rocket.Chat
echo "Starting Rocket.Chat..."
cd /opt/Rocket.Chat
exec node main.js