new testarena
This commit is contained in:
162
asf-cloud-server/testarena_1/deploy.sh
Normal file
162
asf-cloud-server/testarena_1/deploy.sh
Normal file
@@ -0,0 +1,162 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ASF TestArena Deployment Script
|
||||
# This script deploys the TestArena application using Docker Compose
|
||||
|
||||
set -e # Exit on error
|
||||
|
||||
echo "=========================================="
|
||||
echo " ASF TestArena Deployment Script"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Function to print colored output
|
||||
print_success() {
|
||||
echo -e "${GREEN}✓ $1${NC}"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}✗ $1${NC}"
|
||||
}
|
||||
|
||||
print_warning() {
|
||||
echo -e "${YELLOW}⚠ $1${NC}"
|
||||
}
|
||||
|
||||
print_info() {
|
||||
echo -e "${YELLOW}ℹ $1${NC}"
|
||||
}
|
||||
|
||||
# Check if Docker is installed
|
||||
echo "Checking prerequisites..."
|
||||
if ! command -v docker &> /dev/null; then
|
||||
print_error "Docker is not installed. Please install Docker first."
|
||||
exit 1
|
||||
fi
|
||||
print_success "Docker is installed"
|
||||
|
||||
# Check if Docker Compose is installed
|
||||
if ! command -v docker-compose &> /dev/null && ! docker compose version &> /dev/null; then
|
||||
print_error "Docker Compose is not installed. Please install Docker Compose first."
|
||||
exit 1
|
||||
fi
|
||||
print_success "Docker Compose is installed"
|
||||
|
||||
# Check if Docker daemon is running
|
||||
if ! docker info &> /dev/null; then
|
||||
print_error "Docker daemon is not running. Please start Docker first."
|
||||
exit 1
|
||||
fi
|
||||
print_success "Docker daemon is running"
|
||||
|
||||
echo ""
|
||||
|
||||
# Check if .env file exists
|
||||
if [ ! -f .env ]; then
|
||||
print_warning ".env file not found. Creating from .env.example..."
|
||||
if [ -f .env.example ]; then
|
||||
cp .env.example .env
|
||||
print_info "Please edit .env file and update SECRET_KEY and passwords before continuing."
|
||||
read -p "Press Enter to continue after editing .env, or Ctrl+C to exit..."
|
||||
else
|
||||
print_error ".env.example not found. Cannot create .env file."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " Starting Deployment"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# Check if caddy_network exists
|
||||
echo "Checking for Caddy network..."
|
||||
if docker network inspect caddy_network &> /dev/null; then
|
||||
print_success "Caddy network (caddy_network) exists"
|
||||
else
|
||||
print_warning "Caddy network (caddy_network) not found"
|
||||
read -p "Do you want to create it? (y/n) " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
docker network create caddy_network
|
||||
print_success "Created caddy_network"
|
||||
else
|
||||
print_error "Caddy network is required. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# Stop existing containers if running
|
||||
echo "Stopping existing containers (if any)..."
|
||||
docker-compose down 2>/dev/null || true
|
||||
print_success "Stopped existing containers"
|
||||
|
||||
echo ""
|
||||
|
||||
# Build and start containers
|
||||
echo "Building and starting containers..."
|
||||
echo "This may take a few minutes on first run..."
|
||||
echo ""
|
||||
|
||||
if docker-compose up -d --build; then
|
||||
print_success "Containers built and started successfully"
|
||||
else
|
||||
print_error "Failed to start containers"
|
||||
echo ""
|
||||
echo "Check logs with: docker-compose logs"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Waiting for services to initialize..."
|
||||
sleep 5
|
||||
|
||||
# Check if containers are running
|
||||
echo ""
|
||||
echo "Checking container status..."
|
||||
if docker ps | grep -q testarena_web && docker ps | grep -q testarena_db; then
|
||||
print_success "All containers are running"
|
||||
else
|
||||
print_error "Some containers failed to start"
|
||||
echo ""
|
||||
echo "Container status:"
|
||||
docker-compose ps
|
||||
echo ""
|
||||
echo "Check logs with: docker-compose logs"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " Deployment Complete!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
print_success "ASF TestArena is now running"
|
||||
echo ""
|
||||
echo "Access the application at:"
|
||||
echo " • Local: http://localhost:5000"
|
||||
echo " • Domain: https://testarena.nabd-co.com"
|
||||
echo ""
|
||||
echo "Default credentials:"
|
||||
echo " • Username: admin"
|
||||
echo " • Password: admin123"
|
||||
echo ""
|
||||
print_warning "IMPORTANT: Change the default admin password immediately!"
|
||||
echo ""
|
||||
echo "Useful commands:"
|
||||
echo " • View logs: docker-compose logs -f"
|
||||
echo " • Stop: docker-compose down"
|
||||
echo " • Restart: docker-compose restart"
|
||||
echo " • Status: docker-compose ps"
|
||||
echo ""
|
||||
echo "For help, see START_HERE.md or INDEX.md"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user