From b388d9fab3bdfeaf2b1e8bd7180ea96bd578541d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D0=BE=D0=B1=D1=8B=D0=BB=D0=BA=D0=B5=D0=B2=D0=B8?= =?UTF-8?q?=D1=87=20=D0=A4=D1=91=D0=B4=D0=BE=D1=80?= Date: Thu, 2 Apr 2026 09:22:22 +0300 Subject: [PATCH] update entrypoint and makes profile for remote setup in docker-compose.yml --- READ.md | 18 ++++++++++++++++-- browser_env/entrypoint.sh | 19 ++++++++++++++++--- docker-compose.yml | 2 ++ 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/READ.md b/READ.md index 41abd358..cba691cd 100644 --- a/READ.md +++ b/READ.md @@ -6,16 +6,30 @@ git clone https://git.lambda.coredump.ru/APEX/BrowserUse_and_ComputerUse_skills. git switch feature/telegram-browser-integration touch .env ``` + В создавшемся .env файле заполните переменные в соответствии с шаблоном, расположенном в .env.example BROWSER_VIEW_URL заполняется после запуска + +#### Запуск удаленно + ```commandline -docker compose up -d --build +docker compose --profile remote up docker compose logs tunnel ``` После команды логов листаешь терминал и ищешь ссылку https в рамке. Её вписываешь в переменную BROWSER_VIEW_URL. -Чтобы увидеть действия агента, переходишь по данной сслыке и выбираешь vnc.html. +Чтобы увидеть действия агента, переходишь по данной ссылке и выбираешь vnc.html. Далее в мессенджере просишь агента сделать что-то через tool browser-use. Возможно придётся перезапустить контейнеры, но при перезапуске контейнеров меняется ссылка. + +#### Запуск локально + +BROWSER_VIEW_URL устанавливается как http://localhost:6080 + +```commandline +docker compose up +``` + +--- ```commandline docker compose down docker compose up -d diff --git a/browser_env/entrypoint.sh b/browser_env/entrypoint.sh index 6d88936b..0b3dddcd 100644 --- a/browser_env/entrypoint.sh +++ b/browser_env/entrypoint.sh @@ -17,10 +17,20 @@ socat TCP-LISTEN:9222,fork,reuseaddr TCP:127.0.0.1:9223 & echo "--- Запуск Chromium в режиме Local-Only (Port 9223) ---" +cleanup() { + echo "Получен сигнал завершения, закрываем Chromium..." + kill $CHROME_PID 2>/dev/null || true + kill $XVFB_PID 2>/dev/null || true + kill $DBUS_PID 2>/dev/null || true + exit 0 +} + +trap cleanup SIGTERM SIGINT + while true; do rm -f /src/browser_data/SingletonLock - chromium \ + DISPLAY=:99 chromium \ --no-sandbox \ --disable-dev-shm-usage \ --remote-debugging-port=9223 \ @@ -34,8 +44,11 @@ while true; do --mute-audio \ --no-default-browser-check \ --disable-software-rasterizer \ - --disable-features=site-per-process + --disable-features=site-per-process & - echo "Chromium упал или был закрыт агентом, рестарт через 2 секунды..." + CHROME_PID=$! + wait $CHROME_PID 2>/dev/null || true + + echo "Chromium завершен, рестарт через 2 секунды..." sleep 2 done \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 1ddf1baa..79fa825f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -53,6 +53,8 @@ services: tunnel: image: cloudflare/cloudflared:latest + profiles: + - remote container_name: hermes-tunnel restart: always command: tunnel --protocol http2 --url http://browser:6080 --no-tls-verify