서랍 속 유휴 휴대폰을 서버로 쓰기로 결심한 다음 가장 먼저 부딪힌 질문은 “루트 권한도 없는 안드로이드 폰에서 어떻게 진짜 서버 환경을 만들 것인가"였습니다. 이번 글에서는 실제로 이 서버를 세팅할 때 사용한 Termux + proot-distro 조합을 정리합니다.

왜 Termux인가

Termux는 안드로이드 위에서 동작하는 터미널 에뮬레이터이자 패키지 관리 환경입니다. 루트 권한 없이도 apt 기반 패키지 설치, SSH, Python, Node.js 실행이 가능합니다. 다만 Termux 자체의 리눅스 환경은 안드로이드 샌드박스 제약 때문에 일반 리눅스 배포판과 100% 동일하지는 않습니다. 그래서 그 위에 proot-distro를 얹어 진짜 우분투 환경을 통째로 격리 실행하는 방식을 선택했습니다.

리눅스 환경 구축 과정

proot으로 우분투 띄우기

proot-distro install ubuntu 한 줄로 우분투 루트 파일시스템을 받아오고, proot-distro login ubuntu로 진입하면 그 안에서는 일반적인 우분투처럼 apt-get, dpkg, systemctl 비슷한 명령들을 사용할 수 있습니다(단, systemd 자체는 없어서 서비스 관리는 직접 프로세스를 띄우고 관리해야 합니다). 이 우분투 환경 위에 Hugo, Caddy, Node.js, Python 등 이 서버가 돌리는 모든 소프트웨어를 설치했습니다.

실제로 겪은 제약들

이상적으로 들리지만 실제로는 순탄하지만은 않았습니다. 모바일 네트워크 환경에서는 apt-get이 패키지 하나를 받다가 그대로 멈춰버리는 일이 잦았고, 이 문제는 결국 GitHub Releases에서 .deb 파일을 직접 받아 dpkg -i로 설치하는 우회로로 해결했습니다(이 과정은 다음 글에서 따로 다룹니다). 또한 프로세스가 종료되지 않고 계속 떠 있어야 하는 서비스(챗봇, 웹서버 등)는 nohup이나 별도의 프로세스 관리 방식으로 붙잡아 둬야 했습니다.

왜 굳이 휴대폰이었나

라즈베리파이나 미니PC가 정석이라는 건 알고 있었지만, 휴대폰은 이미 배터리(정전에도 안 꺼지는 UPS 역할)와 와이파이·모바일 데이터(이중 네트워크)를 갖춘 완결된 소형 컴퓨터였습니다. 안 쓰는 자원을 최대한 활용해보자는 것이 가장 솔직한 동기였고, 실제로 몇 주간 24시간 챗봇과 자동화 루틴을 돌려본 결과 개인용 자동화 수준에서는 충분히 실용적이었습니다.

핵심 요약

이 시리즈의 다음 글들에서는 이 환경 위에 실제로 무엇을 올렸는지 — 외부 노출, 블로그, 챗봇, 자동화 루틴 — 하나씩 풀어보겠습니다.

🤖 이 포스팅은 AI의 도움을 받아 작성되었습니다.