COBY : specs + task 1
This commit is contained in:
112
COBY/docker/deploy.sh
Normal file
112
COBY/docker/deploy.sh
Normal file
@ -0,0 +1,112 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Deployment script for market data infrastructure
|
||||
# Run this on your Docker host at 192.168.0.10
|
||||
|
||||
set -e
|
||||
|
||||
echo "🚀 Deploying Market Data Infrastructure..."
|
||||
|
||||
# Check if Docker and Docker Compose are available
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "❌ Docker is not installed or not in PATH"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
|
||||
echo "❌ Docker Compose is not installed or not in PATH"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Set Docker Compose command
|
||||
if docker compose version &> /dev/null; then
|
||||
DOCKER_COMPOSE="docker compose"
|
||||
else
|
||||
DOCKER_COMPOSE="docker-compose"
|
||||
fi
|
||||
|
||||
# Create necessary directories
|
||||
echo "📁 Creating directories..."
|
||||
mkdir -p ./data/timescale
|
||||
mkdir -p ./data/redis
|
||||
mkdir -p ./logs
|
||||
mkdir -p ./backups
|
||||
|
||||
# Set proper permissions
|
||||
echo "🔐 Setting permissions..."
|
||||
chmod 755 ./data/timescale
|
||||
chmod 755 ./data/redis
|
||||
chmod 755 ./logs
|
||||
chmod 755 ./backups
|
||||
|
||||
# Copy environment file if it doesn't exist
|
||||
if [ ! -f .env ]; then
|
||||
echo "📋 Creating .env file..."
|
||||
cp .env.example .env
|
||||
echo "⚠️ Please edit .env file with your specific configuration"
|
||||
echo "⚠️ Default passwords are set - change them for production!"
|
||||
fi
|
||||
|
||||
# Pull latest images
|
||||
echo "📥 Pulling Docker images..."
|
||||
$DOCKER_COMPOSE -f timescaledb-compose.yml pull
|
||||
|
||||
# Stop existing containers if running
|
||||
echo "🛑 Stopping existing containers..."
|
||||
$DOCKER_COMPOSE -f timescaledb-compose.yml down
|
||||
|
||||
# Start the services
|
||||
echo "🏃 Starting services..."
|
||||
$DOCKER_COMPOSE -f timescaledb-compose.yml up -d
|
||||
|
||||
# Wait for services to be ready
|
||||
echo "⏳ Waiting for services to be ready..."
|
||||
sleep 30
|
||||
|
||||
# Check service health
|
||||
echo "🏥 Checking service health..."
|
||||
|
||||
# Check TimescaleDB
|
||||
if docker exec market_data_timescaledb pg_isready -U market_user -d market_data; then
|
||||
echo "✅ TimescaleDB is ready"
|
||||
else
|
||||
echo "❌ TimescaleDB is not ready"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check Redis
|
||||
if docker exec market_data_redis redis-cli -a market_data_redis_2024 ping | grep -q PONG; then
|
||||
echo "✅ Redis is ready"
|
||||
else
|
||||
echo "❌ Redis is not ready"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Display connection information
|
||||
echo ""
|
||||
echo "🎉 Deployment completed successfully!"
|
||||
echo ""
|
||||
echo "📊 Connection Information:"
|
||||
echo " TimescaleDB:"
|
||||
echo " Host: 192.168.0.10"
|
||||
echo " Port: 5432"
|
||||
echo " Database: market_data"
|
||||
echo " Username: market_user"
|
||||
echo " Password: (check .env file)"
|
||||
echo ""
|
||||
echo " Redis:"
|
||||
echo " Host: 192.168.0.10"
|
||||
echo " Port: 6379"
|
||||
echo " Password: (check .env file)"
|
||||
echo ""
|
||||
echo "📝 Next steps:"
|
||||
echo " 1. Update your application configuration to use these connection details"
|
||||
echo " 2. Test the connection from your application"
|
||||
echo " 3. Set up monitoring and alerting"
|
||||
echo " 4. Configure backup schedules"
|
||||
echo ""
|
||||
echo "🔍 To view logs:"
|
||||
echo " docker-compose -f timescaledb-compose.yml logs -f"
|
||||
echo ""
|
||||
echo "🛑 To stop services:"
|
||||
echo " docker-compose -f timescaledb-compose.yml down"
|
Reference in New Issue
Block a user