new testarena

This commit is contained in:
2025-11-28 11:22:07 +01:00
parent 22f7f2f94d
commit fb26b8386b
48 changed files with 7105 additions and 0 deletions

View File

@@ -0,0 +1,176 @@
# ASF TestArena Deployment Script (PowerShell)
# This script deploys the TestArena application using Docker Compose
$ErrorActionPreference = "Stop"
Write-Host "==========================================" -ForegroundColor Cyan
Write-Host " ASF TestArena Deployment Script" -ForegroundColor Cyan
Write-Host "==========================================" -ForegroundColor Cyan
Write-Host ""
function Write-Success {
param($Message)
Write-Host "$Message" -ForegroundColor Green
}
function Write-Error-Custom {
param($Message)
Write-Host "$Message" -ForegroundColor Red
}
function Write-Warning-Custom {
param($Message)
Write-Host "$Message" -ForegroundColor Yellow
}
function Write-Info {
param($Message)
Write-Host " $Message" -ForegroundColor Yellow
}
# Check if Docker is installed
Write-Host "Checking prerequisites..."
try {
$null = docker --version
Write-Success "Docker is installed"
} catch {
Write-Error-Custom "Docker is not installed. Please install Docker Desktop first."
exit 1
}
# Check if Docker Compose is available
try {
$null = docker-compose --version
Write-Success "Docker Compose is installed"
} catch {
try {
$null = docker compose version
Write-Success "Docker Compose is installed"
} catch {
Write-Error-Custom "Docker Compose is not installed. Please install Docker Compose first."
exit 1
}
}
# Check if Docker daemon is running
try {
$null = docker info 2>&1
Write-Success "Docker daemon is running"
} catch {
Write-Error-Custom "Docker daemon is not running. Please start Docker Desktop first."
exit 1
}
Write-Host ""
# Check if .env file exists
if (-not (Test-Path .env)) {
Write-Warning-Custom ".env file not found. Creating from .env.example..."
if (Test-Path .env.example) {
Copy-Item .env.example .env
Write-Info "Please edit .env file and update SECRET_KEY and passwords before continuing."
Read-Host "Press Enter to continue after editing .env, or Ctrl+C to exit"
} else {
Write-Error-Custom ".env.example not found. Cannot create .env file."
exit 1
}
}
Write-Host ""
Write-Host "==========================================" -ForegroundColor Cyan
Write-Host " Starting Deployment" -ForegroundColor Cyan
Write-Host "==========================================" -ForegroundColor Cyan
Write-Host ""
# Check if caddy_network exists
Write-Host "Checking for Caddy network..."
try {
$null = docker network inspect caddy_network 2>&1
Write-Success "Caddy network (caddy_network) exists"
} catch {
Write-Warning-Custom "Caddy network (caddy_network) not found"
$response = Read-Host "Do you want to create it? (y/n)"
if ($response -eq 'y' -or $response -eq 'Y') {
docker network create caddy_network
Write-Success "Created caddy_network"
} else {
Write-Error-Custom "Caddy network is required. Exiting."
exit 1
}
}
Write-Host ""
# Stop existing containers if running
Write-Host "Stopping existing containers (if any)..."
try {
docker-compose down 2>$null
} catch {
# Ignore errors if containers don't exist
}
Write-Success "Stopped existing containers"
Write-Host ""
# Build and start containers
Write-Host "Building and starting containers..."
Write-Host "This may take a few minutes on first run..."
Write-Host ""
try {
docker-compose up -d --build
Write-Success "Containers built and started successfully"
} catch {
Write-Error-Custom "Failed to start containers"
Write-Host ""
Write-Host "Check logs with: docker-compose logs"
exit 1
}
Write-Host ""
Write-Host "Waiting for services to initialize..."
Start-Sleep -Seconds 5
# Check if containers are running
Write-Host ""
Write-Host "Checking container status..."
$webRunning = docker ps | Select-String "testarena_web"
$dbRunning = docker ps | Select-String "testarena_db"
if ($webRunning -and $dbRunning) {
Write-Success "All containers are running"
} else {
Write-Error-Custom "Some containers failed to start"
Write-Host ""
Write-Host "Container status:"
docker-compose ps
Write-Host ""
Write-Host "Check logs with: docker-compose logs"
exit 1
}
Write-Host ""
Write-Host "==========================================" -ForegroundColor Cyan
Write-Host " Deployment Complete!" -ForegroundColor Cyan
Write-Host "==========================================" -ForegroundColor Cyan
Write-Host ""
Write-Success "ASF TestArena is now running"
Write-Host ""
Write-Host "Access the application at:"
Write-Host " • Local: http://localhost:5000"
Write-Host " • Domain: https://testarena.nabd-co.com"
Write-Host ""
Write-Host "Default credentials:"
Write-Host " • Username: admin"
Write-Host " • Password: admin123"
Write-Host ""
Write-Warning-Custom "IMPORTANT: Change the default admin password immediately!"
Write-Host ""
Write-Host "Useful commands:"
Write-Host " • View logs: docker-compose logs -f"
Write-Host " • Stop: docker-compose down"
Write-Host " • Restart: docker-compose restart"
Write-Host " • Status: docker-compose ps"
Write-Host ""
Write-Host "For help, see START_HERE.md or INDEX.md"
Write-Host ""