GitLab VPS 호스팅, 코드와 CI/CD를 내 서버에서
- 공식 gitlab/gitlab-ce Docker 이미지로 설치
- 16 GB 이상 메모리 플랜 추천
- root 권한과 공개 IPv4·IPv6 주소
HELPER VPS의 GitLab VPS는 Git 저장소와 CI/CD를 한곳에서 다루는 GitLab Community Edition을 직접 올려 쓰는 리눅스 클라우드 서버로, 월 $25.00부터 인보이스로 결제해요. 서버를 만들 때 Docker 앱 이미지를 고르고, SSH로 접속해 공식 gitlab/gitlab-ce 이미지를 실행하면 팀의 코드, 이슈, 파이프라인을 내 서버에서 관리할 수 있어요.
GitLab이란 무엇인가요?
GitLab은 Git 저장소 관리, 코드 리뷰, 이슈 관리, CI/CD 파이프라인, 컨테이너 레지스트리를 하나로 묶은 개발 플랫폼이에요. GitLab Community Edition(CE)은 오픈소스로 공개된 무료 판으로, 팀이 자기 서버에 설치해 코드와 개발 기록을 직접 보관할 수 있어요. 머지 리퀘스트, 위키, 마일스톤 같은 협업 기능이 기본으로 들어 있어요.
공식 gitlab/gitlab-ce Docker 이미지에는 GitLab 본체와 함께 PostgreSQL, Redis, Nginx, Puma, Sidekiq이 모두 들어 있어서 컨테이너 하나로 전체 서비스가 돌아가요. 설정, 로그, 데이터는 볼륨으로 서버 디스크에 따로 저장되기 때문에 컨테이너를 새 버전으로 바꿔도 저장소와 사용자 정보가 그대로 남아요.
GitLab VPS로 무엇을 할 수 있나요?
GitLab 셀프 호스팅 서버 한 대로 개발 흐름 전체를 내 서버에 모아요.
사내 Git 저장소
비공개 프로젝트를 원하는 만큼 만들고, 그룹과 역할로 팀원마다 읽기와 쓰기 권한을 나눠요.
CI/CD 파이프라인
.gitlab-ci.yml 파일 하나로 테스트, 빌드, 배포를 자동으로 돌리고 결과를 머지 리퀘스트에서 바로 확인해요.
컨테이너 레지스트리
빌드한 Docker 이미지를 GitLab 레지스트리에 올려 두고, 배포 서버에서 바로 받아 쓰게 해요.
이슈와 프로젝트 관리
이슈 보드, 라벨, 마일스톤, 위키로 일정과 문서를 코드 옆에서 함께 관리해요.
GitLab 서버 구매는 어떻게 하나요?
첫 결제부터 첫 로그인까지 세 단계예요.
1단계. 16 GB 이상 플랜 고르기
결제 방법을 선택하고 팀과 가까운 도시를 고른 뒤, 메모리 16 GB 이상인 플랜을 선택해요.
2단계. Docker 앱 이미지로 만들기
이미지 목록에서 Docker를 고르면 Docker Engine과 Docker Compose가 준비된 Ubuntu 24.04 서버가 만들어져요.
3단계. SSH로 접속해 명령 실행
root로 SSH 접속해 아래 명령을 실행하고, 몇 분 뒤 브라우저에서 서버 주소를 열어 root 계정으로 로그인해요.
GitLab CE는 어떻게 설치하나요?
Docker 앱 이미지로 만든 서버에 SSH로 접속해 아래 명령을 실행하세요. gitlab.example.com 은 내 도메인이나 서버 IP로 바꾸고, 서버 SSH가 22 포트를 쓰기 때문에 GitLab의 Git SSH는 2222 포트로 열어요. 처음 시작에는 몇 분이 걸리고, 마지막 줄 명령으로 root 첫 비밀번호를 확인할 수 있어요(이 파일은 24시간 뒤 지워져요).
export GITLAB_HOME=/srv/gitlab
sudo mkdir -p $GITLAB_HOME
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 443:443 --publish 80:80 --publish 2222:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ce:latest
sudo docker logs -f gitlab
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_passwordGitLab을 VPS에 직접 설치하면 무엇이 좋나요?
GitLab VPS를 직접 운영하면 코드와 파이프라인을 내 기준으로 다뤄요.
코드가 내 서버에 있어요. 저장소, 이슈, CI 기록이 내가 고른 도시의 서버 디스크에 저장되고 접근 권한도 내가 정해요.
사용자 수에 따른 요금이 없어요. GitLab CE는 무료 판이라 서버 요금 하나로 팀원 계정을 필요한 만큼 만들어요.
CI 시간을 마음껏 써요. 내 서버에 GitLab Runner를 붙이면 파이프라인 실행 시간을 서버 성능 안에서 자유롭게 써요.
메모리 큰 플랜을 골라요. 메모리형 플랜은 16~128 GB 메모리를 갖춰 저장소와 사용자가 많은 GitLab도 넉넉히 받쳐요.
디스크를 쉽게 늘려요. 만들 때 추가 디스크를 50~1000 GB로 더해 저장소와 레지스트리 이미지를 오래 보관해요.
자동 백업으로 지켜요. 자동 백업 옵션과 gitlab-backup 명령을 함께 쓰면 서버와 GitLab 데이터를 두 겹으로 보관해요.
GitLab과 함께 쓰는 기술
공식 GitLab CE 이미지는 아래 기술을 안에 담아 GitLab VPS 위에서 함께 돌려요.
- Docker
- PostgreSQL
- Redis
- NGINX
- Ubuntu
손님과 가까운 곳에 서버를 두세요
31개 나라 40개 도시 어디에서나 같은 가격으로 GitLab 서버를 만들어요.
GitLab VPS는 몇 GB 메모리가 필요한가요?
GitLab은 웹 서버, 백그라운드 작업, 데이터베이스, 캐시를 함께 돌리기 때문에 최소 4 GB 메모리가 필요하고, 실제 팀이 쓸 때는 16 GB 이상을 권해요. 12 GB에서는 동시에 몇 사람만 써도 화면이 느려질 수 있어서, HELPER VPS에서는 4 vCPU, 16 GB 플랜부터 추천해요. NVMe 디스크를 쓰는 고성능 플랜을 고르면 저장소 클론과 검색이 더 빨라져요.
같은 서버에서 GitLab Runner로 CI 작업까지 돌린다면 빌드가 메모리를 함께 쓰기 때문에 16 GB 플랜이 알맞아요. 사용자와 프로젝트가 많은 팀은 메모리형 m32처럼 메모리가 큰 플랜을 고르고, Runner는 별도 서버로 나누면 GitLab 화면이 늘 가볍게 움직여요. 계정 하나에 서버를 10대까지 만들 수 있어 이렇게 나누기도 쉬워요.
GitLab 셀프 호스팅을 시작한 뒤 무엇을 설정하나요?
첫 로그인 뒤에는 root 비밀번호를 바꾸고, 관리 영역에서 회원 가입을 승인제로 바꾸거나 닫아 두면 팀원만 들어올 수 있어요. 도메인을 쓴다면 /srv/gitlab/config/gitlab.rb 의 external_url 을 https 주소로 정하고 letsencrypt 설정을 켠 뒤 sudo docker exec -it gitlab gitlab-ctl reconfigure 를 실행하면 HTTPS 인증서가 자동으로 붙어요.
알림 메일은 gitlab.rb 의 SMTP 설정에 587 포트를 쓰는 메일 발송 서비스를 넣어 보내요. Git SSH 주소가 2222 포트로 보이게 하려면 gitlab_rails['gitlab_shell_ssh_port'] 값을 2222로 정해 주세요. 정기적으로 sudo docker exec -t gitlab gitlab-backup create 로 백업을 만들고, 새 버전으로 올릴 때는 공식 업그레이드 경로를 확인한 뒤 이미지를 바꾸면 안전해요.
GitLab 호스팅 자주 묻는 질문
GitLab VPS를 고르고 설치할 때 많이 묻는 질문이에요.
GitLab VPS는 원클릭으로 설치되나요?
Docker 앱 이미지로 서버를 만든 뒤 공식 gitlab/gitlab-ce 이미지를 docker run 명령 하나로 실행해요. 위 명령을 붙여 넣고 몇 분 기다리면 브라우저에서 GitLab 로그인 화면이 열려요.
GitLab은 최소 몇 GB 메모리가 필요한가요?
GitLab은 최소 4 GB 메모리가 필요하고, 팀이 편하게 쓰려면 16 GB 이상을 권해요. 그래서 4 vCPU, 16 GB 플랜(g16, n16)부터 추천하고, CI Runner까지 함께 돌린다면 32 GB 플랜이 좋아요.
Ubuntu 이미지에 Omnibus 패키지로 설치해도 되나요?
네, Ubuntu로 만든 서버에 GitLab 공식 패키지 저장소를 추가해 설치하는 방법도 있어요. Docker 방식은 설정, 로그, 데이터가 볼륨으로 나뉘어 업데이트와 옮기기가 편해서 이 페이지에서는 Docker 방식을 안내해요.
root 첫 비밀번호는 어디서 보나요?
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password 명령으로 확인해요. 이 파일은 처음 설정 후 24시간 뒤 지워지니, 로그인하면 바로 새 비밀번호로 바꿔 주세요.
Git SSH는 어떤 포트를 쓰나요?
서버 자체 SSH가 22 포트를 쓰기 때문에 위 명령은 GitLab의 Git SSH를 2222 포트로 열어요. gitlab.rb 에 gitlab_shell_ssh_port 를 2222로 정하면 저장소 화면의 SSH 주소도 맞게 보여요.
HTTPS 인증서는 어떻게 붙이나요?
도메인이 서버 IP를 가리키게 한 뒤 gitlab.rb 의 external_url 을 https 주소로 바꾸고 letsencrypt 를 켠 다음 gitlab-ctl reconfigure 를 실행하면 인증서가 자동으로 발급되고 갱신돼요.
GitLab Runner도 같은 서버에 둘 수 있나요?
네, gitlab/gitlab-runner 이미지를 같은 서버에 컨테이너로 올려 등록하면 돼요. 빌드가 메모리와 CPU를 함께 쓰니 16 GB 플랜을 고르거나, Runner를 작은 서버 한 대로 따로 두는 것을 권해요.
GitLab에서 메일 알림을 보낼 수 있나요?
네, gitlab.rb 의 SMTP 설정에 587 포트를 쓰는 메일 발송 서비스를 넣으면 머지 리퀘스트와 이슈 알림이 나가요. HELPER VPS 서버는 바깥으로 나가는 25 포트가 닫혀 있어서 이 방식으로 보내요.
GitLab 업데이트는 어떻게 하나요?
gitlab-backup 으로 백업을 만든 뒤 새 이미지를 받고 컨테이너를 같은 볼륨으로 다시 만들면 돼요. 큰 버전을 건너뛸 때는 GitLab 공식 업그레이드 경로에 맞춰 중간 버전을 거쳐 올려 주세요.
저장소가 많아지면 디스크를 늘릴 수 있나요?
서버를 만들 때 추가 디스크를 50~1000 GB 사이로 더할 수 있어요. GITLAB_HOME 을 추가 디스크 경로로 정해 두면 저장소, 레지스트리, 백업을 넉넉한 공간에 보관해요.
GitLab 서버 구매는 어떻게 결제하나요?
결제 방법을 선택하고 서버를 만들면 바로 사용할 수 있어요. 기간이 끝나기 전에 갱신 인보이스를 결제하면 개발이 끊기지 않아요.
GitLab은 GitLab Inc.와 커뮤니티가 만드는 오픈소스 프로젝트이며, GitLab 이름과 로고의 권리는 그 소유자에게 있어요. GitLab CE 설치, 업데이트, 설정과 사용 지원은 손님이 직접 맡아요. GitLab CE는 추가 비용 없이 쓰고, 서버 요금은 고른 플랜의 가격 그대로예요.
GitLab 서버 가이드
서버를 받은 뒤 먼저 해 두면 좋은 일이에요.
