필자는 13년 전 구입한 gram 을 리눅스 서버로 사용하고 있다. 내장 그래픽 코어가 아까워서 크롬 렌더링을 시켜본다. 희망컨대 크론탭 스케줄에 그래픽 매크로도 추가할 수 있을듯

대충 이런 느낌이 나왔음
리눅스 서버 상 유틸리티 설치 스크립트
#!/usr/bin/env bash
# 리눅스 서버에 최소 GUI + VNC + Chromium 환경을 구성하는 스크립트
# i3-6100U 내장그래픽(HD 520)으로 브라우저 렌더링/디코딩/JS를 여기서 처리하고
# 윈도우에서는 VNC 클라이언트로 화면만 받아보는 구조.
set -e
########################################
# 0. 루트 권한 체크
########################################
if [ "$EUID" -ne 0 ]; then
echo "이 스크립트는 root 권한으로 실행해야 합니다. (sudo 사용)"
exit 1
fi
########################################
# 1. 패키지 리스트 업데이트
########################################
apt update
########################################
# 2. 최소 GUI + VNC + 크로미움 설치
# - xorg : X 서버 (GPU 가속, 디스플레이 서버)
# - openbox : 매우 가벼운 윈도우 매니저 (전체 데스크탑 대신)
# - lightdm : 로그인/세션 관리 (X 서버 자동 실행용)
# - x11vnc : 실행 중인 X 세션을 VNC로 내보내기
# - chromium-browser 또는 chromium : 크로미움 브라우저
# - mesa-utils, vainfo, intel-gpu-tools : GPU 동작 확인용
########################################
apt install -y \
xorg \
openbox \
lightdm \
x11vnc \
mesa-utils \
vainfo \
intel-gpu-tools || true
# 배포판에 따라 chromium 패키지 이름이 다를 수 있음
# 우분투 최신: chromium-browser (snap)
# 데비안/일부: chromium
if apt-cache show chromium-browser >/dev/null 2>&1; then
apt install -y chromium-browser
elif apt-cache show chromium >/dev/null 2>&1; then
apt install -y chromium
else
echo "chromium / chromium-browser 패키지를 찾을 수 없습니다. 나중에 수동 설치 필요."
fi
########################################
# 3. 기본 세션을 openbox로 설정
# - 전체 데스크탑(XFCE, GNOME 등) 대신 openbox만 올려서 리소스 절약
########################################
# openbox autostart 디렉토리 생성
mkdir -p /etc/xdg/openbox
mkdir -p /etc/xdg/openbox/autostart.d
# 가장 단순한 openbox autostart 파일 생성
cat >/etc/xdg/openbox/autostart <<'EOF'
# openbox 세션 시작 시 자동 실행할 항목들
# 여기서 패널/배경/입맛에 맞는 프로그램을 추가할 수 있음.
# 예: 크로미움을 자동 실행하고 싶다면 아래 주석 해제
# chromium-browser --password-store=basic --no-default-browser-check &
EOF
########################################
# 4. lightdm이 기본으로 openbox 세션을 사용하도록 설정
# - /usr/share/xsessions/openbox.desktop가 기본 존재함
# - 아래 설정은 “로그인 시 openbox로 자동 로그인” 효과를 줄 수 있음
########################################
# 기본 좌석용 LightDM 설정 (간단한 자동 openbox 세션)
LIGHTDM_CONF=/etc/lightdm/lightdm.conf
if [ ! -f "$LIGHTDM_CONF" ]; then
cat >"$LIGHTDM_CONF" <<'EOF'
[Seat:*]
user-session=openbox
EOF
else
# 기존 파일에 user-session=openbox 추가 (단순 append)
if ! grep -q "user-session=openbox" "$LIGHTDM_CONF"; then
echo "" >> "$LIGHTDM_CONF"
echo "[Seat:*]" >> "$LIGHTDM_CONF"
echo "user-session=openbox" >> "$LIGHTDM_CONF"
fi
fi
########################################
# 5. x11vnc용 비밀번호 설정
# - /etc/x11vnc.pass에 암호를 저장
# - 'changeme' 부분을 원하는 VNC 접속 비밀번호로 바꾸면 됨
########################################
VNC_PASS_FILE=/etc/x11vnc.pass
# 비밀번호를 하드코딩하기 싫으면, read -s로 입력 받아도 됨.
VNC_PASSWORD="changeme" # <-- 나중에 직접 바꾸기
echo "x11vnc VNC 비밀번호를 설정합니다. (임시: $VNC_PASSWORD)"
x11vnc -storepasswd "$VNC_PASSWORD" "$VNC_PASS_FILE"
chmod 600 "$VNC_PASS_FILE"
########################################
# 6. x11vnc systemd 서비스 생성
# - 디스플레이 :0 (lightdm가 띄운 X) 를 VNC로 공유
# - 포트 5900 사용
########################################
cat >/etc/systemd/system/x11vnc.service <<'EOF'
[Unit]
Description=Start x11vnc at startup.
After=display-manager.service
Requires=display-manager.service
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc \
-auth guess \
-forever \
-loop \
-noxdamage \
-repeat \
-rfbauth /etc/x11vnc.pass \
-rfbport 5900 \
-shared
[Install]
WantedBy=multi-user.target
EOF
########################################
# 7. 서비스 enable + 시작
########################################
systemctl daemon-reload
systemctl enable lightdm
systemctl enable x11vnc
systemctl restart lightdm
systemctl restart x11vnc
########################################
# 8. 안내 메시지
########################################
IP_ADDR=$(hostname -I 2>/dev/null | awk '{print $1}')
echo "==============================================="
echo "구성이 완료되었습니다."
echo
echo "1) 서버가 부팅되면:"
echo " - lightdm + Xorg + openbox가 자동으로 올라갑니다."
echo " - x11vnc가 디스플레이 :0 을 TCP 포트 5900으로 내보냅니다."
echo
echo "2) 윈도우에서:"
echo " - VNC 클라이언트(예: TightVNC, UltraVNC, RealVNC 등)를 실행하고"
echo " - 호스트: ${IP_ADDR}:5900"
echo " - 비밀번호: (아까 설정한 VNC 비밀번호, 기본 changeme)"
echo " 로 접속하면, 서버에서 돌아가는 openbox 데스크탑 화면이 보입니다."
echo
echo "3) VNC 화면 안에서 터미널을 열고 chromium을 실행하면,"
echo " - JS, 렌더링, WebGL, 비디오 디코딩은 서버(i3-6100U + HD520)가 처리하고"
echo " - 윈도우 PC는 화면 스트림만 받아보는 구조가 됩니다."
echo
echo "※ 보안상:"
echo " - 반드시 방화벽/라우터에서 5900 포트를 내부망에서만 열어두고,"
echo " - VNC 비밀번호(changeme)는 꼭 변경하세요."
echo "==============================================="
윈도우 VNC 클라이언트
RealVNC 뷰어를 사용했다.
삭제용 스크립트
#!/usr/bin/env bash
# 리눅스 서버에서 GUI + openbox + lightdm + x11vnc + chromium 환경을
# 모두 깨끗하게 제거하는 스크립트
set -e
########################################
# 0. 루트 권한 체크
########################################
if [ "$EUID" -ne 0 ]; then
echo "이 스크립트는 root 권한으로 실행해야 합니다. (sudo 사용)"
exit 1
fi
########################################
# 1. 실행 중인 서비스 종료 + 비활성화
########################################
echo "[1/6] 서비스 중지 및 비활성화"
systemctl stop x11vnc.service 2>/dev/null || true
systemctl stop lightdm.service 2>/dev/null || true
systemctl disable x11vnc.service 2>/dev/null || true
systemctl disable lightdm.service 2>/dev/null || true
########################################
# 2. systemd 서비스 파일 제거
########################################
echo "[2/6] 서비스 파일 제거"
rm -f /etc/systemd/system/x11vnc.service
systemctl daemon-reload
########################################
# 3. 설치한 패키지 제거
########################################
echo "[3/6] 패키지 제거"
apt remove -y \
x11vnc \
lightdm \
openbox \
xorg \
mesa-utils \
vainfo \
intel-gpu-tools \
chromium-browser \
chromium 2>/dev/null || true
# 필요 없다면 autoremove로 의존성도 함께 제거
apt autoremove -y
########################################
# 4. 생성된 설정 파일 제거
########################################
echo "[4/6] 설정 파일 제거"
# VNC 패스워드 파일
rm -f /etc/x11vnc.pass
# lightdm 설정
rm -f /etc/lightdm/lightdm.conf
# openbox autostart 설정
rm -f /etc/xdg/openbox/autostart
# openbox 자동 실행 스크립트 디렉토리
rm -rf /etc/xdg/openbox/autostart.d
########################################
# 5. 캐시/잔여 파일 삭제
########################################
echo "[5/6] 캐시 및 잔여 구성 정리"
apt clean
rm -rf /var/cache/* 2>/dev/null || true
########################################
# 6. 완료 메시지
########################################
echo "==============================================="
echo "모든 GUI + openbox + VNC + Chromium 구성 요소를 제거했습니다."
echo
echo "이제 서버는 pure CLI 상태로 돌아갔습니다."
echo "불필요한 디스플레이 서버(lightdm), Xorg, VNC 모두 제거되었습니다."
echo "==============================================="