From 76c6d021ab2ba466891e0b260d7b1814413bc788 Mon Sep 17 00:00:00 2001 From: VithobaaSrinivasakumar Date: Tue, 30 Jun 2026 07:26:45 +0000 Subject: [PATCH] Update README.md --- README.md | 282 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 145 insertions(+), 137 deletions(-) diff --git a/README.md b/README.md index 650d2f2..0f20a07 100644 --- a/README.md +++ b/README.md @@ -1,137 +1,145 @@ -# AutoPilot — Distributed Web Test Automation Platform - -AutoPilot is a full-stack, enterprise-grade distributed web browser automation platform. It consists of three components deployed together as a monorepo. - -``` -autopilot/ -├── master/ # Cloud Coordinator — Spring Boot REST API + Scheduler + DB -├── worker/ # Execution Engine — Selenium WebDriver agent (polls master) -├── ui/ # Dashboard — React + Vite frontend (served via Nginx) -├── docker-compose.yml # Production: full stack with PostgreSQL -├── docker-compose.local.yml # Local dev: DB only (run services manually) -└── .env.example # Template for environment variables -``` - ---- - -## 🚀 Production Deployment (AWS / Any Linux Server) - -### Prerequisites -- Docker & Docker Compose installed -- At least 2 CPU cores and 2GB RAM - -### 1. Clone the repository -```bash -git clone https://repo.qruize.com/VithobaaSrinivasakumar/Autopilot.git -cd Autopilot -``` - -### 2. Configure environment variables -```bash -cp .env.example .env -nano .env # Fill in DB_PASS, JWT_SECRET, AWS keys, etc. -``` - -### 3. Deploy the full stack -```bash -docker-compose up -d --build -``` - -This starts: -- **PostgreSQL** (database, internal only) -- **AutoPilot Master** on port `9090` -- **AutoPilot UI** on port `80` (Nginx) - -### 4. Verify deployment -```bash -docker-compose ps -curl http://localhost:9090/api/health -``` - -### 5. Updating to a new version -```bash -git pull origin main -docker-compose up -d --build -``` - ---- - -## 🏗️ Local Development (No Docker for Services) - -### 1. Start only the database -```bash -docker-compose -f docker-compose.local.yml up -d -``` - -### 2. Start the Master (Terminal 1) -```bash -cd master -./mvnw spring-boot:run -# Runs on http://localhost:9090 -``` - -### 3. Start the UI (Terminal 2) -```bash -cd ui -npm install -npm run dev -# Runs on http://localhost:5173 -``` - -### 4. Start the Worker (Terminal 3) -```bash -cd worker -./mvnw spring-boot:run -# Polls http://localhost:9090 for jobs -``` - ---- - -## 🔗 CI/CD Integration - -AutoPilot can be triggered directly from your DevOps pipeline using an API key. - -### Trigger a test suite -```bash -curl -X POST \ - -H "Authorization: Bearer ap_live_your_api_key" \ - -H "Content-Type: application/json" \ - -d '{"suiteName": "Smoke Tests", "browser": "chrome"}' \ - https://your-domain.com/api/v1/suites/trigger-by-name -``` - -### Poll for results -```bash -curl -H "Authorization: Bearer ap_live_your_api_key" \ - https://your-domain.com/api/v1/schedulers/{schedulerId}/execution-status -# exitCode: 0 = all passed, 1 = failures, 2 = still running -``` - -For full GitHub Actions, GitLab CI, and Jenkins snippets, see the **CI/CD Integration** page inside the dashboard. - ---- - -## 🌐 Environment Variables Reference - -| Variable | Description | Required | -|---|---|---| -| `DB_URL` | JDBC connection string to PostgreSQL | ✅ | -| `DB_USER` | Database username | ✅ | -| `DB_PASS` | Database password | ✅ | -| `JWT_SECRET` | Minimum 256-bit secret for signing tokens | ✅ | -| `AWS_REGION` | AWS region for S3 screenshot storage | Optional | -| `AWS_ACCESS_KEY_ID` | AWS access key | Optional | -| `AWS_SECRET_ACCESS_KEY` | AWS secret key | Optional | -| `S3_BUCKET_NAME` | S3 bucket for storing screenshots | Optional | -| `LOCALAGENT_CLOUD_URL` | URL the Worker uses to reach the Master | Worker only | - ---- - -## 📖 API Reference - -| Method | Endpoint | Description | -|---|---|---| -| `POST` | `/api/v1/suites/{id}/trigger` | Trigger suite by ID | -| `POST` | `/api/v1/suites/trigger-by-name` | Trigger suite by name | -| `GET` | `/api/v1/schedulers/{id}/execution-status` | Poll execution result | -| `GET` | `/api/v1/executions/{id}/status` | Get execution detail | +# AutoPilot — Distributed Web Test Automation Platform + +AutoPilot is a full-stack, enterprise-grade distributed web browser automation platform. It consists of three components deployed together as a monorepo. + +``` +autopilot/ +├── master/ # Cloud Coordinator — Spring Boot REST API + Scheduler + DB +├── worker/ # Execution Engine — Selenium WebDriver agent (polls master) +├── ui/ # Dashboard — React + Vite frontend (served via Nginx) +├── docker-compose.yml # Production: full stack with PostgreSQL +├── docker-compose.local.yml # Local dev: DB only (run services manually) +└── .env.example # Template for environment variables +``` + +--- + +## 🚀 Production Deployment (AWS / Any Linux Server) + +### Prerequisites +- Docker & Docker Compose installed +- At least 2 CPU cores and 2GB RAM + +### 1. Clone the repository +```bash +git clone https://repo.qruize.com/VithobaaSrinivasakumar/Autopilot.git +cd Autopilot +``` + +### 2. Configure environment variables +```bash +cp .env.example .env +nano .env # Fill in DB_PASS, JWT_SECRET, AWS keys, etc. +``` + +### 3. Deploy the full stack +```bash +docker-compose up -d --build +``` + +This starts: +- **PostgreSQL** (database, internal only) +- **AutoPilot Master** on port `9090` +- **AutoPilot UI** on port `80` (Nginx) + +### 4. Verify deployment +```bash +docker-compose ps +curl http://localhost:9090/api/health +``` + +### 5. Updating to a new version +```bash +git pull origin main +docker-compose up -d --build +``` +To connect to aws Server +Install mobax or ssh terminal application +create session with this ip address 13.232.42.59 +give private key named mesibo (ask dhakshan).i cant give key here in this repo. + +go to cd /home/ubuntu/Autopilot +give docker ps -a (To check if the containers are running well) +then go to http://13.232.42.59 +that its. +--- + +## 🏗️ Local Development (No Docker for Services) + +### 1. Start only the database +```bash +docker-compose -f docker-compose.local.yml up -d +``` + +### 2. Start the Master (Terminal 1) +```bash +cd master +./mvnw spring-boot:run +# Runs on http://localhost:9090 +``` + +### 3. Start the UI (Terminal 2) +```bash +cd ui +npm install +npm run dev +# Runs on http://localhost:5173 +``` + +### 4. Start the Worker (Terminal 3) +```bash +cd worker +./mvnw spring-boot:run +# Polls http://localhost:9090 for jobs +``` + +--- + +## 🔗 CI/CD Integration + +AutoPilot can be triggered directly from your DevOps pipeline using an API key. + +### Trigger a test suite +```bash +curl -X POST \ + -H "Authorization: Bearer ap_live_your_api_key" \ + -H "Content-Type: application/json" \ + -d '{"suiteName": "Smoke Tests", "browser": "chrome"}' \ + https://your-domain.com/api/v1/suites/trigger-by-name +``` + +### Poll for results +```bash +curl -H "Authorization: Bearer ap_live_your_api_key" \ + https://your-domain.com/api/v1/schedulers/{schedulerId}/execution-status +# exitCode: 0 = all passed, 1 = failures, 2 = still running +``` + +For full GitHub Actions, GitLab CI, and Jenkins snippets, see the **CI/CD Integration** page inside the dashboard. + +--- + +## 🌐 Environment Variables Reference + +| Variable | Description | Required | +|---|---|---| +| `DB_URL` | JDBC connection string to PostgreSQL | ✅ | +| `DB_USER` | Database username | ✅ | +| `DB_PASS` | Database password | ✅ | +| `JWT_SECRET` | Minimum 256-bit secret for signing tokens | ✅ | +| `AWS_REGION` | AWS region for S3 screenshot storage | Optional | +| `AWS_ACCESS_KEY_ID` | AWS access key | Optional | +| `AWS_SECRET_ACCESS_KEY` | AWS secret key | Optional | +| `S3_BUCKET_NAME` | S3 bucket for storing screenshots | Optional | +| `LOCALAGENT_CLOUD_URL` | URL the Worker uses to reach the Master | Worker only | + +--- + +## 📖 API Reference + +| Method | Endpoint | Description | +|---|---|---| +| `POST` | `/api/v1/suites/{id}/trigger` | Trigger suite by ID | +| `POST` | `/api/v1/suites/trigger-by-name` | Trigger suite by name | +| `GET` | `/api/v1/schedulers/{id}/execution-status` | Poll execution result | +| `GET` | `/api/v1/executions/{id}/status` | Get execution detail |