Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions docker/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Makefile for Browser Operator Core
# Provides DevTools frontend + Agent Server deployments

.PHONY: help build devtools-up up down logs status chrome

help: ## Show this help
@echo "Browser Operator Core - Docker Deployments"
@echo "==========================================="
@echo ""
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " %-12s %s\n", $$1, $$2}'
@echo ""
@echo "Deployment options:"
@echo " Type 1: make devtools-up # DevTools only (AUTOMATED_MODE=true by default)"
@echo " Type 2: make up # DevTools + Agent Server (lightweight)"
@echo ""
@echo "Full build (includes agent-server in image):"
@echo " make build && docker-compose up -d"
@echo ""
@echo "For manual debugging mode (Type 1 without API key bypass):"
@echo " docker-compose build --build-arg AUTOMATED_MODE=false && make devtools-up"

build: ## Build full image (DevTools + Agent Server baked in)
docker-compose build

devtools-up: ## Start DevTools only (Type 1)
docker-compose up -d
@echo ""
@echo "DevTools UI: http://localhost:8000"

up: ## Start DevTools + Agent Server (Type 2 - lightweight)
docker-compose -f docker-compose.lightweight.yml up -d
@echo ""
@echo "Services:"
@echo " DevTools: http://localhost:8000"
@echo " Agent API: http://localhost:8080"
@echo " Agent WS: ws://localhost:8082"

down: ## Stop all containers
docker-compose -f docker-compose.lightweight.yml down 2>/dev/null || true
docker-compose down 2>/dev/null || true

logs: ## Show logs
docker-compose -f docker-compose.lightweight.yml logs -f 2>/dev/null || docker-compose logs -f

status: ## Show container status
@docker ps --filter "name=browser-operator"

chrome: ## Launch Chrome Canary with custom DevTools
"/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary" \
--remote-debugging-port=9222 \
--remote-allow-origins="*" \
--auto-open-devtools-for-tabs \
--user-data-dir=/tmp/chrome-debug-profile \
--custom-devtools-frontend=http://localhost:8000/
46 changes: 46 additions & 0 deletions docker/docker-compose.lightweight.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Lightweight deployment: DevTools + Agent Server (no full build required)
# Uses pre-built DevTools image + separate Agent Server container
#
# Usage:
# docker-compose -f docker-compose.lightweight.yml up -d

services:
devtools:
image: browser-operator-devtools:latest
container_name: browser-operator-devtools
ports:
- "8000:8000"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
restart: unless-stopped
networks:
- devtools-network

agent-server:
image: node:18-alpine
container_name: browser-operator-agent
working_dir: /app
volumes:
- ../agent-server/nodejs:/app:ro
- agent-data:/app/clients
command: ["node", "start.js"]
ports:
- "8080:8080"
- "8082:8082"
environment:
- NODE_ENV=production
- HOST=0.0.0.0
- PORT=8082
- API_PORT=8080
- CDP_HOST=host.docker.internal
- CDP_PORT=9222
restart: unless-stopped
networks:
- devtools-network

volumes:
agent-data:

networks:
devtools-network:
driver: bridge