최근.. 그리 오래되지 않았다. github 는 세계최대 오픈소스커뮤니티 이다. github 는 git을 기반으로 git 호스팅을 한다. 회원수가 몇백만명이라나?(개발자만 몇백만명이라고 생각하면 엄청나다.) github 는 public 프로젝트 생성시는 무료로 제공된다(GNU 프로젝트에 앞장서고 있다). private 프로젝트는 비용을 지불하여야 한다. 그렇게 비싼금액은 아니다.

 비용을 지불하고 github 를 사용할수도 있겟지만. 비용에 따라 프로젝트 생성에 제약이 따르고 외국서버라 속도도 매우 느리다. 그래서 찾아본게 gitlab 이다. 

 gitlab 은 설치형 git 이다. 웹 UI 를 제공할 뿐만 아니라 github 와 유사하여 사용하기 쉽다. 다만 나온지 얼마 되지 않았기에 github 보단 기능이 약간 없다(커뮤니티부분에서 조금 안타깝다). 

 설치형이라 물리적인 서버가 필요하다. 이또한 요즘 핫한 클라우드 서비스를 이용하기로 하였다. 어짜피 github 에 돈을 지불하고 호스팅을 받나 클라우드 서버로 받나 금액대는 비슷하다.


https://about.gitlab.com/downloads/


 다운로드 경로이다. 설치가 매우 쉽게 설명되어있다. v7.0.0 이전에는 직접 ruby 부터 소스컴파일로 설치하여야 해서 설치법이 복잡한데 7.0.0 부터는 omnibus 를 이용하여 한방에 설치가 된다. (postgresql, nginx포함) gitlab 또한 오픈소스화 되어 github 에 올라와 있는데 commit log 나 issue log 를 보면 활발히 개발히 진행중인거 같다. 



- 서버 요구사항 - 

CPU

  • 1 core works supports up to 100 users but the application will not be responsive
  • 2 cores is the recommended number of cores and supports up to 500 users
  • 4 cores supports up to 2,000 users
  • 8 cores supports up to 5,000 users
  • 16 cores supports up to 10,000 users
  • 32 cores supports up to 20,000 users
  • 64 cores supports up to 40,000 users
CPU 요구사항이다. 소스를 위한 프로젝트나 개인적인 프로젝트 서버라면 2 cores 로 충분하다. 어차피 요즘엔 2 cores 이상이니.. 싱글코어 에서도 잘굴러간다. 



Memory

  • 512MB is the absolute minimum but we do not recommend this amount of memory. You will either need to configure a minimum swap of 256MB and this will only allow you to run one slow unicorn worker. One unicorn worker will cause only git ssh access to work because the git http access requires two running workers. It requires one worker to receive the user request and one worker for the authorization check. Or if you use SSD you can configure 2GB of swap to use two Unicorn workers and have slow operation with http access.
  • 1GB supports up to 100 users (with individual repositories under 250MB, otherwise git memory usage necessitates configuring swap space)
  • 2GB is the recommended memory size and supports up to 500 users
  • 4GB supports up to 2,000 users
  • 8GB supports up to 5,000 users
  • 16GB supports up to 10,000 users
  • 32GB supports up to 20,000 users
  • 64GB supports up to 40,000 users
memory 요구사항이다. 현재 1GB 서버에 혼자사용중인데. Swap memory 를 300mb 를 사용하고 있다. 물론 apache 와 mysql 이 돌아가고 있으나 1GB 로는 약간 부족하다. 물론 그렇게 심하게 느리진 않다. 혼자만 사용할시 1GB 로도 충분할듯 한데 다수가 참여했을땐 필히 2GB 이상으로 올려줘야 할듯 싶다. 위에도 나와 있듯이 SSD 사용할시 2GB 까지는 Swap 으로 퉁쳐도 될듯 싶다. 




 스샷은 올리지 못했지만. 코드엔진 에서 gitlab 을 이용하여 호스팅을 제공한다. 아무래도 나만의 gitlab 이 필요했던지라 쓰진 않는다. 한번 어떻게 생겻는지 둘러볼만 하다.