Git을 사용하면서 대용량 파일의 효율적인 관리를 고민해본 적이 있나요? Git Granary는 바로 이러한 고민을 해결해줄 개인용 Git LFS 서버입니다. TypeScript로 작성된 이 서버는 개인이 셀프 호스팅 환경에서 대용량 파일을 관리할 수 있도록 설계되었습니다. 특히, 다양한 런타임 환경(Bun, Deno, Node)에서 실행 가능하다는 점이 큰 장점입니다.
셀프 호스팅의 이점
셀프 호스팅의 가장 큰 장점은 데이터를 완벽하게 제어할 수 있다는 점입니다. Git Granary는 멀티 사용자 지원이 가능하며, 기본 HTTP 인증을 통해 보안을 유지할 수 있습니다. 이를 통해 사용자들은 자신만의 안전한 환경에서 작업할 수 있습니다. Caddy나 Traefik 같은 HTTPS 프록시와 함께 사용하면 더욱 안전하게 서버를 운영할 수 있습니다.
다양한 런타임 지원
Git Granary는 여러 런타임 환경에서 실행이 가능합니다. 이 서버는 주로 Deno에서 실행되도록 설계되었지만, Bun과 Node에서도 최소한의 구현만으로도 작동할 수 있습니다. 각 런타임마다 고유한 HTTP 서버를 사용하며, 이는 사용자에게 다양한 선택지를 제공합니다.
- Deno의 표준 라이브러리인 `serveFile`을 통해 다운로드 작업을 처리
- 업로드 시 `Web Crypto`를 사용해 SHA-256 계산과 파일 스트리밍을 동시에 수행
- 각 런타임마다 고유한 HTTP 서버: `Bun.serve`, `Deno.serve`, `Node의 createServer`
손쉬운 설정과 관리
Git Granary의 설정은 매우 간단합니다. 기본적인 HTTP 인증을 사용하며, 환경 변수(GGLFS_USERNAME, GGLFS_PASSWORD)를 통해 사용자명과 비밀번호를 설정할 수 있습니다. 또한 HTTPS 역방향 프록시를 설정할 때는 GGLFS_ORIGIN 변수를 사용하여 전체 URL을 지정해 주어야 합니다.
클라이언트는 .lfsconfig 파일 또는 git config 명령어를 통해 쉽게 설정할 수 있습니다.
[lfs]
url = http://user:pass@localhost:8000/repo
이와 같은 간단한 설정만으로도, Git Granary는 강력하고 안전한 Git LFS 서버로 변신할 수 있습니다.
결론
Git Granary를 통해 여러분의 프로젝트에 진정한 자유를 선사해 보세요. 셀프 호스팅 환경에서 자신만의 Git LFS 서버를 운영하면, 여러분의 데이터를 완전히 제어하면서도, 대용량 파일을 효과적으로 관리할 수 있습니다. 안전하고 효율적인 개발 환경을 원하신다면, 지금 바로 Git Granary를 시작해 보세요!
참고 자료: github, “Git Granary”