Files
ASF_tools/asf-cloud-server/testarena_1/deploy.sh
2025-11-28 11:22:07 +01:00

163 lines
4.2 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 ""