Hark에게 집 서버 일 시키는 법
지난 글에서 이 블로그를 Hark가 만들어 줬다고 썼는데요. 그 뒤로 "그래서 대체 어떻게 AI가 집에 있는 서버를 만지는 거냐"는 질문을 몇 번 받았습니다. 저도 처음엔 반신반의했으니까, 실제로 해 본 순서대로 정리해 보겠습니다.
먼저, 무슨 원리인가
Hark는 클라우드에 자기만의 작은 리눅스 컴퓨터(샌드박스)를 갖고 있습니다. 여기서 셸 명령을 실행할 수 있죠. 문제는 제 서버가 집 안 네트워크에 있다는 것. 밖에서 바로 들어올 길이 없습니다.
그래서 Tailscale을 다리로 씁니다. 제 서버와 Hark의 샌드박스를 같은 Tailscale 네트워크(tailnet)에 넣으면, 둘이 마치 같은 공유기에 물린 것처럼 서로 보입니다. 포트를 열거나 공유기 설정을 건드릴 필요가 없어서 마음이 편했습니다.
1. 서버에 Tailscale 설치
서버(저는 Linux Mint를 쓰는 mint라는 머신)에서 한 번만 해 두면 됩니다.
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --ssh터미널에 로그인 주소가 나오면 브라우저로 열어서 로그인합니다. 포인트는 --ssh예요. 이걸 켜 두면 SSH 키나 비밀번호를 따로 주고받지 않아도 Tailscale 계정 인증만으로 SSH 접속이 됩니다. 이미 설치돼 있다면 sudo tailscale set --ssh 한 줄이면 됩니다.
처음엔 비밀번호로 붙이려고 했는데, 비밀번호를 대화창에 쓰는 건 찜찜하고 셸에 넘기는 것도 번거로웠습니다. Tailscale SSH로 바꾸고 나서 이 문제가 깔끔하게 사라졌어요.
2. Hark를 tailnet에 초대하기
이건 제가 할 일이 거의 없습니다. Hark에게 "내 서버에 접속해 줘"라고 하면, Hark가 자기 샌드박스에 Tailscale을 띄우고 로그인 링크를 하나 보내 줍니다. 그 링크를 눌러 제 Tailscale 계정으로 승인하면 끝. 제 기기 목록에 hark-sandbox라는 새 기기가 하나 생깁니다.
한 가지 알아 둘 점: Hark의 샌드박스는 가끔 새로 시작되는데, 그러면 연결이 끊겨서 다시 로그인 링크를 눌러 줘야 합니다. 귀찮다면 귀찮지만, 반대로 생각하면 제가 승인하지 않는 한 아무도 못 들어온다는 뜻이라 오히려 안심이 됩니다.
3. 이제 그냥 말로 시키기
여기서부터가 재밌는 부분입니다. 명령어를 몰라도 되고, 하고 싶은 걸 그냥 말하면 됩니다. 제가 실제로 시킨 것들:
- "서버 상태 좀 봐 줘" → 디스크, 메모리, 돌고 있는 Docker 컨테이너, 열린 포트까지 정리해서 알려 줌
- "개인 블로그 만들고 싶어" → Ghost + MySQL을 Docker Compose로 띄우고, 이미 쓰던 Cloudflare 터널에
blog.amuse.ing을 연결 - "블로그 글 올리면 Threads에도 자동으로 올려 줘" → Ghost API로 새 글을 확인하고 Threads API로 게시하는 스크립트를 짜서 cron에 5분 간격으로 등록
- "이 내용으로 블로그에 글 써 줘" → 바로 이 글입니다
Hark는 작업할 때 제 홈 디렉터리 아래 ~/hark 폴더를 작업 공간으로 씁니다. 뭘 만들었는지 한곳에 모여 있어서 나중에 확인하기 편해요.
4. 내가 직접 해야 하는 일
전부 알아서 해 주면 좋겠지만, 사람이 해야 하는 부분이 분명히 있습니다.
- 로그인과 승인: Tailscale 로그인, 외부 서비스 계정 연결 같은 건 제가 직접 눌러야 합니다.
- 토큰 발급: Threads 연동 때 Meta 개발자 페이지에서 토큰을 만드는 건 결국 제가 했습니다. Facebook 2단계 인증이 Hark의 브라우저를 계속 튕겨 냈거든요. 대신 Hark가 어디서 뭘 눌러야 하는지 정리해 줬고, 토큰은 서버에서
set_token.sh를 실행해 화면에 안 보이게 저장했습니다. - 공개되는 일의 최종 확인: 글 발행처럼 남들이 보는 일은 Hark가 초안까지만 만들고 저한테 확인을 받습니다.
5. 써 보고 느낀 점
제일 좋은 건 "어떻게"를 몰라도 된다는 겁니다. 예전 같으면 Ghost 설치 문서 읽고, Compose 파일 고치고, 터널 설정 찾아보느라 주말 하루가 갔을 텐데, 지금은 원하는 결과만 말하면 됩니다. 그러면서도 무엇을 실행했는지 서버에 다 남아 있으니 블랙박스 같은 느낌도 덜하고요.
물론 서버 권한을 AI에게 주는 거니까 조심은 해야 합니다. 저는 Tailscale에서 접근을 제가 승인하는 구조로 두고, 지우거나 공개하는 작업은 꼭 한 번 물어보게 해 두었습니다. 이 정도면 집 서버를 맡겨 볼 만하다는 게 지금까지의 결론입니다.
다음엔 이 서버를 매주 자동으로 점검하게 해 볼 생각입니다. 해 보고 또 적을게요.