git + https server setup..

아무래도 몹시 심심한 모양이다. 라스베리파이에 DAV server 기능을 추가한 다음에 이번엔 git을 추가했다. git은 이미 설치되서 나오는 배포판도 있고 apt나 pacman을 쓰면 바로 설치가 되는 건데 뭘 또 작업할게 있냐 할 것 같다.

로컬망에서 하는 거라면 git 하나로 다 끝난다. ssh로 git을 해도 되고 말이지. 그런데, 이게 외부에서 접속할 수 있게 하려면 ssh를 다른 포트로 뚫어놓거나 하지 않으면 안된다. 가장 편한(?) 방법이 https를 이용해서 git을 쓸 수 있게 하는 것인데, 이게 생각보다 헤딩이 요구된다. 사실 고작 취미로 진행하는 개인 프로젝트 코드라든가 모아놓은 자료들 관리하는 것인데, 왜 github이나 bitbucket을 안쓰느냐고 할 것 같다. 그러게 말이다. 시간과 잉여력이 남아도는 모양이다. 더구나 라스베리파이로하면 처리속도도 느리고 가정용 인터넷이라 외부에서 연결하려면 여전히 불편한데 말이다.

어쨌든 방법을 대충 정리해보면 다음과 같다.

1) apache나 nginx 같은 http server가 설치되어야 한다.

2) httpd.conf (혹은 그 비슷한 것들)을 적당히 바꿔준다.

3) git repository의 permission을 적당히 설정한다.

과정은 딱 3단계인데 내가 찾아본 그 어떤 인터넷 문서에도 구체적인 작업에 대해선 언급이 없다. 실제로 헤딩(시행착오)은 2, 3번 과정에서 엄창나게 하게 된다.

2번 과정은 http server가 클라이언트가 요청해오는 URL을 변형해서 git-http-backend에 전달해주는 방법을 정의하는 것이다. rewrite module을 이용해서 적당히 바꿔주는 작업을 하는 것과 동시에 익명 접속을 막아야 하니 htpasswd로 암호를 걸어주는 것을 포함한다.

3번 과정은 git으로 작업을 하려면 읽고 쓰기가 전부 되어야하니까 http에게도 쓰기 권한을 주는 작업이다. 작게나마 node.js로 web socket으로 인터페이스를 짜넣으면 외부에서 repository를 create/remove 하도록 할 수도 있다. (잉여력이 돋나보다 정말로)