Linux 서버에서 실행
Linux 서버에서 게이트웨이를 실행할 때의 가상 디스플레이, 샌드박스, 다른 머신의 클라이언트, 터미널 없는 설정을 다룹니다.
이 페이지는 Linux 서버에서 게이트웨이를 실행하는 방법을 다룹니다. 디스플레이, 샌드박스, 다른 머신의 클라이언트, 터미널 없는 설정입니다.
플랫폼
bauta와 브라우저는 Linux, macOS, Windows용으로 x64와 arm64를 배포합니다. Windows arm64에서는 x64 빌드가
실행됩니다. Linux 바이너리는 glibc 2.31(Debian 11 / Ubuntu 20.04 이상)을 기준으로 빌드하며, Ubuntu 24.04에서
측정했습니다.
터미널 없이 설정
설치 스크립트와 패키지는 stdin/stdout이 터미널이 아니거나, CI가 설정되어 있거나, /.dockerenv가 있거나,
BAUTA_NO_PROMPT=1일 때 묻지 않습니다. 이때는 묻지 않고 무료 플랜(세션 1개)을 활성화합니다.
export BAUTA_NO_PROMPT=1
curl -fsSL https://bauta.dev/install.sh | bashsetup을 질문 없이 직접 실행하려면 bauta setup --non-interactive를 씁니다.
라이선스 키 사용
BAUTA_LICENSE_KEY를 설정합니다. 설정하면 머신에 보관된 키보다 우선합니다.
export BAUTA_LICENSE_KEY=<license key>
bauta serve서버는 IP마다 새 무료 활성화를 제한하므로, CI에서나 컨테이너가 많을 때는 키를 설정하세요 (라이선스 키).
가상 디스플레이에 창 열기
브라우저마다 페르소나의 화면 크기에 맞춘 창을 엽니다. 디스플레이가 없는 머신에서는 Xvfb를 설치하면 bauta serve가
자체 가상 디스플레이에 창을 엽니다.
apt install xvfb
bauta serveXvfb가 없으면 bauta serve는 Chrome의 헤드리스 모드로 대신 실행하고, 그 사실을 알립니다. 헤드리스 모드는 페이지가
구별할 수 있습니다.
창 숨기기
bauta serve --hidden은 데스크톱에서도 브라우저 창을 아무도 볼 수 없는 곳에 둡니다.
| OS | 창이 가는 곳 |
|---|---|
| Linux | DISPLAY 값과 상관없이 가상 디스플레이. |
| Windows | 게이트웨이 전용 데스크톱. 여기서 페이지는 보이고 포커스를 가지며, WebGL은 여느 데스크톱처럼 GPU에서 실행됩니다. |
| macOS | Chrome의 헤드리스 모드. |
패키지의 headless 옵션(기본값으로 켜짐)이 이 모드를 요청합니다.
Ubuntu 24.04의 샌드박스
AppArmor는 알지 못하는 Chrome이 권한 없는 사용자 네임스페이스를 쓰지 못하게 막습니다. CHROME_DEVEL_SANDBOX가
SUID 샌드박스 헬퍼를 가리키게 하세요. 일반 Chrome의 /opt/google/chrome/chrome-sandbox도 됩니다.
export CHROME_DEVEL_SANDBOX=/opt/google/chrome/chrome-sandbox또는 --no-sandbox로 실행합니다. 어느 쪽이든 페르소나는 적용됩니다.
다른 머신에서 연결
bauta serve --listen 0.0.0.0--listen 0.0.0.0은 다른 머신의 접속을 허용하며, 포트에 닿는 누구나 페르소나를 조작할 수 있습니다. 포트는 직접
구성한 접근 제어 뒤에 두세요.
패키지에서는 gateway(또는 BAUTA_GATEWAY)로 다른 곳에서 실행 중인 게이트웨이를 쓰며, 페르소나는 그쪽에서
만듭니다.
| 옵션 | 기본값 | 하는 일 |
|---|---|---|
--listen | 127.0.0.1 | 게이트웨이가 수신하는 주소. |
--port | 9222 | 게이트웨이의 포트. |
--idle | 30 | 마지막 클라이언트가 떠난 뒤 페르소나의 브라우저가 열려 있는 시간(초). |
--per-browser | 8 | 브라우저 하나를 공유하는 최대 페르소나 수. 1이면 페르소나마다 브라우저를 따로 씁니다. |
--hidden | 꺼짐 | 브라우저 창을 아무도 볼 수 없는 곳에 둡니다. |
bauta stats는 게이트웨이의 활성 페르소나와 대기 중인 페르소나를 라이선스 기준으로 보여 줍니다.
브라우저를 직접 실행할 때의 시간대와 로캘
시간대와 로캘은 실행 시 설정입니다. 바인딩 계층 바깥의 V8과 ICU에서 오기 때문입니다. 게이트웨이는 페르소나의
"timezone"과 "locale"에서 이 값을 설정합니다. 브라우저를 직접 실행할 때는 TZ, 그리고 LANGUAGE와 LANG을
설정합니다.
TZ=America/New_York LANGUAGE=en_US LANG=en_US.UTF-8 \
BAUTA_LICENSE=~/.bauta/license \
BAUTA_PLUGIN_CONFIG=$PWD/personas/win-intel.json \
FONTCONFIG_FILE=$PWD/personas/fonts/win.conf \
/path/to/bauta/chrome --user-data-dir="$(mktemp -d)" https://example.com