You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This guide provides comprehensive instructions for setting up the Container Migration Solution Accelerator for local development across Windows and Linux platforms.
4
4
5
-
**Note**: This project uses separate `.env` files in the processor (`src/processor`), backend API (`src/backend-api/src/app`), and frontend (`src/frontend`) directories, each with different configuration requirements. When copying `.env` samples, always navigate to the particular folder first before copying the values.
5
+
## Important Setup Notes
6
+
7
+
### Multi-Service Architecture
8
+
9
+
This application consists of **three separate services** that run independently:
10
+
11
+
1.**Processor** - Handles migration logic (Queue Mode or Direct Mode)
12
+
2.**Backend API** - REST API server for the frontend
13
+
3.**Frontend** - React-based user interface
14
+
15
+
> **⚠️ Critical: Each service must run in its own terminal/console window**
16
+
>
17
+
> -**Do NOT close terminals** while services are running
18
+
> - Open **3 separate terminal windows** for local development
19
+
> - Each service will occupy its terminal and show live logs
-**Frontend**: `src/frontend/.env` - Azure AD authentication settings
68
+
69
+
When copying `.env` samples, always navigate to the specific service directory first.
6
70
7
71
## Step 1: Prerequisites - Install Required Tools
8
72
@@ -178,6 +242,8 @@ Depending on the features you use, you may also need:
178
242
179
243
## Step 4: Processor Setup & Run Instructions
180
244
245
+
> **📋 Terminal Reminder**: Open a **dedicated terminal window (Terminal 1)** for the Processor service. All commands in this section assume you start from the **repository root directory**.
246
+
181
247
The Processor handles the actual migration logic and can run in two modes:
-**Direct execution mode** (`main.py`): Runs migrations directly without queue (development/testing)
@@ -237,7 +303,7 @@ py -3.12 -m uv sync
237
303
238
304
### 4.4. Run the Processor
239
305
240
-
#### Option A: Direct Execution Mode (Development/Testing)
306
+
#### Option A: Direct Execution Mode (Production)
241
307
242
308
Run migrations directly without queue infrastructure:
243
309
@@ -246,12 +312,8 @@ cd src
246
312
python main.py
247
313
```
248
314
249
-
This mode is useful for:
250
-
- Local development and testing
251
-
- Running single migrations
252
-
- Debugging migration logic
253
315
254
-
#### Option B: Queue-Based Mode (Production)
316
+
#### Option B: Queue-Based Mode (Development/Testing) [Preferred for local set up]
255
317
256
318
Process migration requests from Azure Storage Queue:
257
319
@@ -279,20 +341,24 @@ python main_service.py
279
341
```
280
342
281
343
This mode provides:
282
-
- Concurrent processing with multiple workers
283
344
- Automatic retry logic with exponential backoff
284
-
- Horizontal scalability
285
345
- Production-ready error handling
346
+
- Local development and testing
347
+
- Running single migrations
348
+
- Debugging migration logic
286
349
- Message polling with "No messages in main queue" logs
287
350
288
351
## Step 5: Backend API Setup & Run Instructions
289
352
353
+
> **📋 Terminal Reminder**: Open a **second dedicated terminal window (Terminal 2)** for the Backend API. Keep Terminal 1 (Processor) running. All commands assume you start from the **repository root directory**.
354
+
290
355
The Backend API provides REST endpoints for the frontend and handles API requests.
291
356
292
357
### 5.1. Navigate to Backend API Directory
293
358
294
359
```bash
295
-
cd ../../backend-api
360
+
# From repository root
361
+
cd src/backend-api
296
362
```
297
363
298
364
### 5.2. Configure Backend API Environment Variables
@@ -344,12 +410,15 @@ The Backend API will start at:
344
410
345
411
## Step 6: Frontend (UI) Setup & Run Instructions
346
412
413
+
> **📋 Terminal Reminder**: Open a **third dedicated terminal window (Terminal 3)** for the Frontend. Keep Terminals 1 (Processor) and 2 (Backend API) running. All commands assume you start from the **repository root directory**.
414
+
347
415
The UI is located under `src/frontend`.
348
416
349
417
### 6.1. Navigate to Frontend Directory
350
418
351
419
```bash
352
-
cd ../../frontend
420
+
# From repository root
421
+
cd src/frontend
353
422
```
354
423
355
424
### 6.2. Install UI Dependencies
@@ -506,9 +575,53 @@ Get-ChildItem Env:AZURE* # Windows PowerShell
506
575
cat .env | grep -v '^#'| grep '='# Should show key=value pairs
507
576
```
508
577
509
-
## Step 7: Next Steps
578
+
## Step 7: Verify All Services Are Running
579
+
580
+
Before using the application, confirm all three services are running in separate terminals:
0 commit comments