소개
Termix는 브라우저만 있으면 어디서든 내 PC의 터미널에 접속할 수 있게 해주는 오픈소스 웹 기반 SSH 관리 플랫폼입니다. 여러 대의 서버를 하나의 웹 대시보드에서 관리하고, VPN 없이도 안전하게 원격 접속할 수 있습니다. 웹뷰 기반으로 Windows, macOS, Linux, iOS, Android 모든 플랫폼에서 브라우저 또는 전용 앱으로 접속할 수 있습니다.
시도하고자 했던 것과 그 이유를 알려주세요.
집에 있는 PC에는 Claude Code, Gemini CLI 등 AI 개발 도구들이 세팅되어 있지만, 외부에서 노트북이나 태블릿만 사용해야 할 때는 이 환경을 그대로 활용하기 어려웠습니다.
단순한 원격 데스크톱(RDP)은 모바일 환경에서 사용하기 불편하고 네트워크 지연이 심해, "어디서나 브라우저만 있으면 접속 가능한 터미널 환경"을 구축하고자 했습니다. 특히, 이동 중 인터넷이 끊겨도 AI 에이전트의 작업이 중단되지 않는 '작업 지속성'을 확보하는 것도 저에게는 중요한 부분이었습니다.
진행 방법
어떤 도구를 사용했고, 어떻게 활용하셨나요?
주요 도구:
Termix: 오픈소스 웹 기반 SSH 관리 플랫폼 (게이트웨이 역할)
Docker: 서비스 배포 및 격리된 환경 운영
Synology NAS: 역방향 프록시를 통한 안전한 외부 접속 통로 및 SSL 인증
tmux: 터미널 세션 유지 및 작업 지속성 보장 (안전장치)
구축 단계:
Termix 서버 구축: NAS의 Docker 환경에 Termix를 설치했습니다.
역방향 프록시 설정: 외부 도메인(HTTPS)을 통해 접속할 수 있도록 설정하고, 실시간 터미널 통신을 위해 WebSocket 헤더를 활성화했습니다.
보안 강화: 외부 노출에 대비해 2FA(OTP)를 설정하고 신규 가입 기능을 차단했습니다.
원격 PC 연결: 관리 대상인 집 PC를 Termix에 SSH로 등록했습니다.
핵심 설정 코드 (Docker Compose):
services:
termix:
image: ghcr.io/lukegus/termix:latest
container_name: Termix
user: "0:0"
ports:
- "127.0.0.1:5674:5674" # 내부 바인딩으로 보안 강화
volumes:
- /volume1/docker/termix:/app/data:rw
environment:
PORT: 5674
restart: always실전 워크플로우:
외부에서 브라우저로 Termix 접속 후 OTP 로그인
작업 대상 PC 터미널 진입 후
tmux new -s ai-work실행claude code등 AI 에이전트 실행Ctrl+B, D로 세션을 분리(Detach)하고 브라우저 종료 (백그라운드에서 AI는 계속 작업 수행)
결과와 배운 점
배운 점과 나만의 꿀팁을 알려주세요.
'지속성' 확보: 브라우저 기반 터미널은 언제든 끊길 수 있습니다. 따라서 반드시 서버측에
tmux를 설치하여 세션을 관리했습니다.보안은 선택이 아닌 필수: 터미널이 외부에 노출되는 만큼 2FA 설정은 필수입니다. 비밀번호 방식보다는 SSH 키 방식을 사용하는 것이 훨씬 안전합니다.
꿀팁: Termix의 화면 분할 기능을 활용하면 한 화면에서 AI 코딩, 로그 모니터링, 시스템 상태 확인을 동시에 할 수 있어 생산성이 비약적으로 상승합니다.
과정 중에 어떤 시행착오를 겪었나요?
초기에 역방향 프록시 설정 시 WebSocket 헤더를 활성화하지 않아 터미널이 자주 끊기는 현상이 있었습니다. WebSocket 설정을 추가한 뒤에야 안정적인 연결이 가능해졌습니다. 또한 데이터 폴더의 권한 문제(EACCES)로 설정값이 저장되지 않는 경우가 있었는데, 실제 데이터가 저장되는 폴더의 권한을 수정하거나 Docker Compose에서 실행 권한을 조정하여 해결할 수 있었습니다.
도움 받은 글 (옵션)
참고한 지피터스 글이나 외부 사례를 알려주세요.
Termix GitHub Repository: 공식 문서 및 설치 가이드