Go to file
VithobaaSrinivasakumar 4d36daef75 Update README.md 2026-06-30 07:28:36 +00:00
master fix: resolve AgentService compilation error 2026-06-30 12:03:43 +05:30
ui fix: map invalid processing status to active on edit 2026-06-30 12:14:58 +05:30
worker feat: initial AutoPilot monorepo 2026-06-29 18:20:23 +05:30
.env.example fix: use explicit container_name in DB_URL to avoid Docker DNS resolution failures 2026-06-30 10:49:29 +05:30
.gitignore feat: initial AutoPilot monorepo 2026-06-29 18:20:23 +05:30
README.md Update README.md 2026-06-30 07:28:36 +00:00
docker-compose.local.yml feat: initial AutoPilot monorepo 2026-06-29 18:20:23 +05:30
docker-compose.yml chore: change default database name to autopilot_db and user to autopilot 2026-06-30 10:03:41 +05:30
test_kolkata.java grrg 2026-06-30 11:57:07 +05:30
test_tz.java grrg 2026-06-30 11:57:07 +05:30

README.md

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

git clone https://repo.qruize.com/VithobaaSrinivasakumar/Autopilot.git
cd Autopilot

2. Configure environment variables

cp .env.example .env
nano .env   # Fill in DB_PASS, JWT_SECRET, AWS keys, etc.

3. Deploy the full stack

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

docker-compose ps
curl http://localhost:9090/api/health

5. Updating to a new version

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

docker-compose -f docker-compose.local.yml up -d

2. Start the Master (Terminal 1)

cd master
./mvnw spring-boot:run
# Runs on http://localhost:9090

3. Start the UI (Terminal 2)

cd ui
npm install
npm run dev
# Runs on http://localhost:5173

4. Start the Worker (Terminal 3)

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

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

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