diff --git a/docker-compose.yml b/docker-compose.yml index 5b7fa2b..175c176 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -57,8 +57,20 @@ services: timeout: 10s retries: 3 -# Frontend service removed from default compose - use dev-start.sh for development -# For production with built frontend, use: docker-compose -f docker-compose.production.yml up + frontend: + build: + context: . + dockerfile: Dockerfile.frontend + ports: + - "4200:80" + depends_on: + api: + condition: service_healthy + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:80"] + interval: 30s + timeout: 10s + retries: 3 volumes: postgres_data: diff --git a/quickstart.ps1 b/quickstart.ps1 index 6b8568e..3451ab0 100644 --- a/quickstart.ps1 +++ b/quickstart.ps1 @@ -1,8 +1,6 @@ [CmdletBinding()] param( [switch]$Rebuild, - [switch]$FullStack, - [switch]$Dev, [switch]$Help ) @@ -10,24 +8,22 @@ $ErrorActionPreference = "Stop" if ($Help) { Write-Host "=========================================" -ForegroundColor Cyan - Write-Host "Test Artifact Data Lake - Quick Start" -ForegroundColor Cyan + Write-Host "Obsidian - Quick Start" -ForegroundColor Cyan Write-Host "=========================================" -ForegroundColor Cyan Write-Host "" Write-Host "Usage: .\quickstart.ps1 [OPTIONS]" -ForegroundColor White Write-Host "" Write-Host "Options:" -ForegroundColor Yellow Write-Host " -Rebuild Force rebuild of all containers" -ForegroundColor White - Write-Host " -FullStack Start complete stack including frontend (production build)" -ForegroundColor White - Write-Host " -Dev Start backend only, use separate dev server for frontend" -ForegroundColor White Write-Host " -Help Show this help message" -ForegroundColor White Write-Host "" - Write-Host "Default: Starts backend services only (recommended for development)" -ForegroundColor Green + Write-Host "Brings up the complete stack: database, backend API, and frontend" -ForegroundColor Green Write-Host "" exit 0 } Write-Host "=========================================" -ForegroundColor Cyan -Write-Host "Test Artifact Data Lake - Quick Start" -ForegroundColor Cyan +Write-Host "Obsidian - Quick Start" -ForegroundColor Cyan Write-Host "=========================================" -ForegroundColor Cyan Write-Host "" @@ -72,104 +68,46 @@ if ($Rebuild) { Write-Host "Rebuilding containers..." -ForegroundColor Yellow Write-Host "Stopping existing containers..." -ForegroundColor White - if ($FullStack) { - if ($ComposeCmd -eq "docker compose") { - & docker compose -f "docker-compose.production.yml" down - Write-Host "Removing existing images for full rebuild..." -ForegroundColor White - & docker compose -f "docker-compose.production.yml" down --rmi local 2>$null - Write-Host "Building and starting full stack..." -ForegroundColor White - & docker compose -f "docker-compose.production.yml" up -d --build - } else { - & docker-compose -f "docker-compose.production.yml" down - Write-Host "Removing existing images for full rebuild..." -ForegroundColor White - & docker-compose -f "docker-compose.production.yml" down --rmi local 2>$null - Write-Host "Building and starting full stack..." -ForegroundColor White - & docker-compose -f "docker-compose.production.yml" up -d --build - } + if ($ComposeCmd -eq "docker compose") { + & docker compose down + Write-Host "Removing existing images for rebuild..." -ForegroundColor White + & docker compose down --rmi local 2>$null + Write-Host "Building and starting all services..." -ForegroundColor White + & docker compose up -d --build } else { - if ($ComposeCmd -eq "docker compose") { - & docker compose down - Write-Host "Removing existing backend images for rebuild..." -ForegroundColor White - & docker compose down --rmi local 2>$null - Write-Host "Building and starting backend services..." -ForegroundColor White - & docker compose up -d --build - } else { - & docker-compose down - Write-Host "Removing existing backend images for rebuild..." -ForegroundColor White - & docker-compose down --rmi local 2>$null - Write-Host "Building and starting backend services..." -ForegroundColor White - & docker-compose up -d --build - } + & docker-compose down + Write-Host "Removing existing images for rebuild..." -ForegroundColor White + & docker-compose down --rmi local 2>$null + Write-Host "Building and starting all services..." -ForegroundColor White + & docker-compose up -d --build } } else { - # Regular startup - if ($FullStack) { - Write-Host "Starting full production stack (backend + frontend)..." -ForegroundColor Green - if ($ComposeCmd -eq "docker compose") { - & docker compose -f "docker-compose.production.yml" up -d - } else { - & docker-compose -f "docker-compose.production.yml" up -d - } + Write-Host "Starting all services..." -ForegroundColor Green + if ($ComposeCmd -eq "docker compose") { + & docker compose up -d } else { - Write-Host "Starting backend services..." -ForegroundColor Green - if ($ComposeCmd -eq "docker compose") { - & docker compose up -d - } else { - & docker-compose up -d - } + & docker-compose up -d } } Write-Host "" Write-Host "Waiting for services to be ready..." -ForegroundColor Yellow -Start-Sleep -Seconds 15 +Start-Sleep -Seconds 20 Write-Host "" Write-Host "=========================================" -ForegroundColor Cyan -if ($FullStack) { - Write-Host "Complete Stack is running!" -ForegroundColor Green -} else { - Write-Host "Backend Services are running!" -ForegroundColor Green -} +Write-Host "Complete Stack is running!" -ForegroundColor Green Write-Host "=========================================" -ForegroundColor Cyan Write-Host "" +Write-Host "Frontend: http://localhost:4200" -ForegroundColor White Write-Host "API: http://localhost:8000" -ForegroundColor White Write-Host "API Docs: http://localhost:8000/docs" -ForegroundColor White Write-Host "MinIO Console: http://localhost:9001" -ForegroundColor White Write-Host " Username: minioadmin" -ForegroundColor Gray Write-Host " Password: minioadmin" -ForegroundColor Gray Write-Host "" - -if ($FullStack) { - Write-Host "Frontend: http://localhost:80" -ForegroundColor White - Write-Host " (Production build with Nginx)" -ForegroundColor Gray - Write-Host "" - Write-Host "To view logs: $ComposeCmd -f docker-compose.production.yml logs -f" -ForegroundColor Yellow - Write-Host "To stop: $ComposeCmd -f docker-compose.production.yml down" -ForegroundColor Yellow -} else { - Write-Host "To view logs: $ComposeCmd logs -f" -ForegroundColor Yellow - Write-Host "To stop: $ComposeCmd down" -ForegroundColor Yellow - Write-Host "" - Write-Host "=========================================" -ForegroundColor Cyan - Write-Host "Frontend Options:" -ForegroundColor Cyan - Write-Host "=========================================" -ForegroundColor Cyan - Write-Host "" - Write-Host "Development (with hot reload):" -ForegroundColor White - Write-Host " .\dev-start.ps1" -ForegroundColor Green - Write-Host " Frontend will be available at: http://localhost:4200" -ForegroundColor Gray - Write-Host "" - Write-Host "Or start full production stack:" -ForegroundColor White - Write-Host " .\quickstart.ps1 -FullStack" -ForegroundColor Green - Write-Host " Complete stack at: http://localhost:80" -ForegroundColor Gray -} - -Write-Host "" -Write-Host "=========================================" -ForegroundColor Cyan -Write-Host "Rebuild Options:" -ForegroundColor Cyan -Write-Host "=========================================" -ForegroundColor Cyan -Write-Host "" -Write-Host "Force rebuild backend: .\quickstart.ps1 -Rebuild" -ForegroundColor Yellow -Write-Host "Force rebuild full stack: .\quickstart.ps1 -Rebuild -FullStack" -ForegroundColor Yellow +Write-Host "To view logs: $ComposeCmd logs -f" -ForegroundColor Yellow +Write-Host "To stop: $ComposeCmd down" -ForegroundColor Yellow Write-Host "" Write-Host "=========================================" -ForegroundColor Cyan Write-Host "Testing the API..." -ForegroundColor Cyan @@ -185,11 +123,8 @@ try { if ($response.status -eq "healthy") { Write-Host "[OK] API is healthy!" -ForegroundColor Green Write-Host "" - if (-not $FullStack) { - Write-Host "Ready for development!" -ForegroundColor Green - Write-Host "Run '.\dev-start.ps1' to start the frontend with hot reload" -ForegroundColor Yellow - Write-Host "" - } + Write-Host "All services are ready!" -ForegroundColor Green + Write-Host "" Write-Host "Example: Upload a test file" -ForegroundColor White Write-Host "----------------------------" -ForegroundColor Gray Write-Host 'echo "test,data" > test.csv' -ForegroundColor Green @@ -210,4 +145,5 @@ catch { Write-Host "" Write-Host "=========================================" -ForegroundColor Cyan Write-Host "Setup complete!" -ForegroundColor Green -Write-Host "=========================================" -ForegroundColor Cyan \ No newline at end of file +Write-Host "Open http://localhost:4200 in your browser" -ForegroundColor Yellow +Write-Host "=========================================" -ForegroundColor Cyan diff --git a/quickstart.sh b/quickstart.sh index b83fd7e..3acfab8 100644 --- a/quickstart.sh +++ b/quickstart.sh @@ -3,7 +3,7 @@ set -e echo "=========================================" -echo "Test Artifact Data Lake - Quick Start" +echo "Obsidian - Quick Start" echo "=========================================" echo "" @@ -26,8 +26,6 @@ fi # Parse command line arguments REBUILD=false -FULL_STACK=false -DEV_MODE=false while [[ $# -gt 0 ]]; do case $1 in @@ -35,24 +33,14 @@ while [[ $# -gt 0 ]]; do REBUILD=true shift ;; - --full-stack) - FULL_STACK=true - shift - ;; - --dev) - DEV_MODE=true - shift - ;; --help) echo "Usage: $0 [OPTIONS]" echo "" echo "Options:" echo " --rebuild Force rebuild of all containers" - echo " --full-stack Start complete stack including frontend (production build)" - echo " --dev Start backend only, use separate dev server for frontend" echo " --help Show this help message" echo "" - echo "Default: Starts backend services only (recommended for development)" + echo "Brings up the complete stack: database, backend API, and frontend" echo "" exit 0 ;; @@ -80,79 +68,33 @@ if [ "$REBUILD" = true ]; then echo "🔄 Rebuilding containers..." echo "Stopping existing containers..." $COMPOSE_CMD down - - if [ "$FULL_STACK" = true ]; then - echo "Removing existing images for full rebuild..." - $COMPOSE_CMD -f docker-compose.production.yml down --rmi local 2>/dev/null || true - echo "Building and starting full stack..." - $COMPOSE_CMD -f docker-compose.production.yml up -d --build - else - echo "Removing existing backend images for rebuild..." - $COMPOSE_CMD down --rmi local 2>/dev/null || true - echo "Building and starting backend services..." - $COMPOSE_CMD up -d --build - fi + echo "Removing existing images for rebuild..." + $COMPOSE_CMD down --rmi local 2>/dev/null || true + echo "Building and starting all services..." + $COMPOSE_CMD up -d --build else - # Regular startup - if [ "$FULL_STACK" = true ]; then - echo "Starting full production stack (backend + frontend)..." - $COMPOSE_CMD -f docker-compose.production.yml up -d - else - echo "Starting backend services..." - $COMPOSE_CMD up -d - fi + echo "Starting all services..." + $COMPOSE_CMD up -d fi echo "" echo "Waiting for services to be ready..." -sleep 15 +sleep 20 echo "" echo "=========================================" -if [ "$FULL_STACK" = true ]; then - echo "Complete Stack is running! 🚀" -else - echo "Backend Services are running!" -fi +echo "Complete Stack is running! 🚀" echo "=========================================" echo "" +echo "Frontend: http://localhost:4200" echo "API: http://localhost:8000" echo "API Docs: http://localhost:8000/docs" echo "MinIO Console: http://localhost:9001" echo " Username: minioadmin" echo " Password: minioadmin" echo "" - -if [ "$FULL_STACK" = true ]; then - echo "Frontend: http://localhost:80" - echo " (Production build with Nginx)" - echo "" - echo "To view logs: $COMPOSE_CMD -f docker-compose.production.yml logs -f" - echo "To stop: $COMPOSE_CMD -f docker-compose.production.yml down" -else - echo "To view logs: $COMPOSE_CMD logs -f" - echo "To stop: $COMPOSE_CMD down" - echo "" - echo "=========================================" - echo "Frontend Options:" - echo "=========================================" - echo "" - echo "Development (with hot reload):" - echo " ./dev-start.sh" - echo " Frontend will be available at: http://localhost:4200" - echo "" - echo "Or start full production stack:" - echo " ./quickstart.sh --full-stack" - echo " Complete stack at: http://localhost:80" -fi - -echo "" -echo "=========================================" -echo "Rebuild Options:" -echo "=========================================" -echo "" -echo "Force rebuild backend: ./quickstart.sh --rebuild" -echo "Force rebuild full stack: ./quickstart.sh --rebuild --full-stack" +echo "To view logs: $COMPOSE_CMD logs -f" +echo "To stop: $COMPOSE_CMD down" echo "" echo "=========================================" echo "Testing the API..." @@ -166,11 +108,8 @@ sleep 5 if curl -s http://localhost:8000/health | grep -q "healthy"; then echo "✓ API is healthy!" echo "" - if [ "$FULL_STACK" = false ]; then - echo "🎯 Ready for development!" - echo "Run './dev-start.sh' to start the frontend with hot reload" - echo "" - fi + echo "🎯 All services are ready!" + echo "" echo "Example: Upload a test file" echo "----------------------------" echo 'echo "test,data" > test.csv' @@ -186,4 +125,5 @@ fi echo "=========================================" echo "Setup complete! 🚀" +echo "Open http://localhost:4200 in your browser" echo "========================================="