728x90
반응형
WebTerminal
브라우저에서 바로 bash 터미널을 실행해보자
안녕하세요 👋
이번 글에서는 제가 개발한 WebTerminal 프로젝트를 소개하려고 합니다.
WebTerminal은 브라우저에서 bash 셸을 실시간으로 사용할 수 있는 웹 기반 터미널로,
`Node.js`, `WebSocket`, `node-pty`, 그리고 `xterm.js`를 활용하여 구현했습니다.
📌 주요 특징
- 브라우저에서 bash 터미널을 직접 실행
- `node-pty`를 사용하여 실제 터미널처럼 동작
- WebSocket을 통한 실시간 명령어 입출력
- `cd`, `vim`, `docker exec -ti` 같은 대화형 명령어도 정상 지원
- 프롬프트, 커서, 키입력이 실제 터미널처럼 자연스럽게 작동
- 연결 끊김/에러 시 상태 출력 지원
🛠️ 사용 기술 스택
| 역할 | 기술스택 |
|---|---|
| 터미널 UI | xterm.js |
| 가상 터미널 실행 | node-pty |
| 통신 방식 | WebSocket |
| 백엔드 런타임 | Node.js |
| 프론트엔드 | HTML, JavaScript(Vanilla) |
🧱 전체 구조

⚙️ 설치 및 실행 방법
1. 프로젝트 디렉토리 구성 예시
education-container/
├── index.html (로컬에서 실행)
├── education-container-server.js (서버에서 실행)
2. 의존성 설치
[root@]$ npm install ws node-pty
3. 서버 실행
[root@]$ node education-container-server.js
4. 클라이언트 열기
index.html을 로컬 브라우저에서 열면 바로 사용 가능!
🖥️ 실제 동작 화면(GIF)

🔧 추후 개선 방향
- 로그인 API를 통해 접근 가능한 사용자를 식별
- 로그인 API를 통해 가져온 도커 컨테이너명/쿠버네티스 파드명으로 컨테이너에 직접 접근
- 관리자 페이지를 통해 새로 들어온 직원이나 교육 인원 개별로 교육용 컨테이너 또는 파드를 제공
로고 및 설명은 chatgpt의 도움을 받아 제작했습니다.
728x90
반응형
'오픈소스' 카테고리의 다른 글
| [오픈소스] 폐쇄망/내부망 Apache2.4 설치 (0) | 2025.09.25 |
|---|---|
| [GitLab] Docker 환경에서 GitLab 백업/복원 (0) | 2025.07.13 |
| [오픈소스] dependency-manager: ibraries.io 기반 라이브러리 자동 수집 도구 (0) | 2025.06.26 |
| [Nexus] Nexus 디스크 공간 정리 방법 (2) | 2025.05.16 |
| [도커] 웹 어플리케이션 도커 컨테이너 환경 구성하기 (1) | 2024.12.26 |
댓글