-
오픈코드를 핸드폰에서 사용해봅시다.IT 2026. 5. 24. 03:02
텀블러가 코드 관련 기능이 없어져서 ㅠㅠㅠ
티스토리에 쓰게됨.Open Code의 웹 UI 기능을 사용해 집컴에 연결해봤다.

이제 왔다갔다 하면서 딸깍 코딩이 가능해졌음.
그래서 어떻게 했나?
데스크톱 설정
나는 EndeavourOS를 사용한다.
프로그램 설치
먼저 필요한 것들을 설치하자.
yay -S opencode-bin tailscale tmux mosh caddy- opencode를 연결해야 하니까
- tailscale의 메시 VPN 으로 쉽게 보안을 달성하자
- tmux로 세션이 계속 살아있도록 하자
- mosh로 모바일에서 shell에 접속이 필요하면 안정적으로 하자
- caddy로 https 연결을 지원하도록 리버스 프록시 하자
테일스케일 설정
먼저 tailscale을 설정한다.
# 테일스케일 활성화 sudo systemctl enable --now tailscaled sudo tailscale up # SSH 설정 sudo systemctl enable --now sshd # 방화벽 설정 sudo firewall-cmd --permanent --zone=trusted --add-interface=tailscale0 sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload이제 Tailscale 정보를 확인하고 사용할 수 있을 것이다.
Addresses, Machine 정보를 확인가능하다. (뒤에서 사용할 예정)
tailscale statusTailscale HTTPS 설정
나는 HTTPS 를 사용할거니 추가설정을 해준다.
어드민에서 HTTPS 도 활성화 해주자.


이때 이 DNS 이름을 잘 기억해야 함.

인증서를 발급받기 위해 cert를 실행한다.
MACHINE NAME은 앞서 status에서 볼 수 있고, DNS이름은 .ts.net 가 뒤에 붙은 것이다.sudo tailscale cert ${MACHINE_NAME}.${TAILSCALE_DNS_NAME}HTTPS 를 위한 리버스 프록시
opencode는 호스트로 https를 지원하지 않으니 리버스 프록시를 사용하자.
나는 간단하게 설정하기 위해 caddy를 사용했다.
# caddy 시작 sudo systemctl enable --now caddy # 인증서 권한 설정 sudo chown root:caddy /var/lib/tailscale sudo chown root:caddy /var/lib/tailscale/certs sudo chmod 750 /var/lib/tailscale sudo chmod 750 /var/lib/tailscale/certs # 인증서 이름들 확인 (보통 ${TAILSCALE_DNS_NAME}.crt + ${TAILSCALE_DNS_NAME}.key 형태) sudo ls /var/lib/tailscale/certs # 설정 편집 sudo nano /etc/caddy/Caddyfile이제 설정하자. Address는 앞의 tailscale status 로 확인가능하다.
${TAILSCALE_DNS_NAME} { # opencode가 4096 포트를 사용함 reverse_proxy ${TAILSCALE_ADDRESS}:4096 tls ${TAILSCALE_DNS_NAME}.crt ${TAILSCALE_DNS_NAME}.key }다시 시작하여 적용한다.
sudo caddy fmt --overwrite /etc/caddy/Caddyfile sudo systemctl restart caddy컴퓨터 설정은 끝났다.
핸드폰 설정
Termux를 설치한다.
그리고 Tailscale 앱도 설치하여 로그인한다.
패키지 업데이트 및 설치
당연하지만 패키지는 설치해야 한다.
pkg update pkg upgrade pkg install openssh moshSSH 설정
귀찮게 비번 맨날 치기 싫다면 SSH 키 설정하자.
ssh-keygen -t ed25519 # 엔터 3번 누르면 됨 ssh-copy-id ${MACHINE}@${TAILSCALE_ADDRESS}웹으로 연결해주는 스크립트
이제 처음 사진처럼 바로 연결하도록 만들자.
mkdir ~/.termux nano ~/.termux/connect.sh스크립트는 이렇게 작성하면 된다.
#!/bin/bash SERVER="${MACHINE}@${TAILSCALE_ADDRESS}" TAILSCALE_IP="${TAILSCALE_ADDRESS}" TAILSCALE_HOST="${TAILSCALE_DNS_NAME}" LOG="/tmp/opencode.log" # 1. tmux 세션 확인 및 생성 echo "🔗 tmux 세션 확인 중..." ssh $SERVER \ "tmux has-session -t main 2>/dev/null || tmux new-session -d -s main" # 2. opencode 시작 (Caddy가 HTTPS 처리하므로 HTTP로만) echo "🚀 opencode serve 시작..." ssh $SERVER \ "tmux new-window -t main -n opencode \ 'opencode serve --hostname $TAILSCALE_IP 2>&1 | tee $LOG'" # 3. 포트 감지 echo "🔍 포트 감지 중..." PORT="" for i in $(seq 1 30); do PORT=$(ssh $SERVER \ "grep -oP '(?<=http://$TAILSCALE_IP:)\d+' $LOG 2>/dev/null") [ -n "$PORT" ] && break sleep 0.5 done if [ -z "$PORT" ]; then echo "❌ 포트 감지 실패" exit 1 fi # 4. URL 출력 + mosh 접속 echo "✅ http://$TAILSCALE_IP:$PORT 접속 가능!" echo "✅ https://$TAILSCALE_HOST 로 접속" termux-open-url "https://$TAILSCALE_HOST" mosh $SERVER -- tmux new-session -A -s main기타 편의성 스크립트 작성
이제 실행권한을 주고 편의성을 위해 스크립트를 작성하자.
chomod +x ~/.termux/connect.sh nano ~/.bashrc이렇게 작성한다.
function tmux-mosh() { mosh "$1" -- tmux new-session -A -s main } alias host-shell="tmux-mosh ${MACHINE}@${TAILSCALE_ADDRESS}" alias opencode="~/.termux/connect.sh"스크립트 로드하고 무지성 포터블 코딩 즐깁시다. 끝.
source ~/.bashrc댓글