# 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 |