GitLab
이 문서는 Ubuntu 64비트 (특히 14.04)에 맞춰서 작성되었음.
32비트라면 아래 링크한 설치 문서를 통해 참고할 것.
32비트 우분투라면 이 문서대로 하면 안 됨.
설치
https://about.gitlab.com/downloads/
https://about.gitlab.com/downloads/#ubuntu1404
sudo apt-get install curl openssh-server ca-certificates postfix
// postfix 설치 시 'Internet Site'로 선택
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
초기 설정
sudo vi /etc/gitlab/gitlab.rb
// 외부 접속과 관련해서는 다음 부분 알맞게 수정
// external_url 'http://address:port';
sudo service apache2 stop
sudo gitlab-ctl reconfigure
sudo service apache2 start
sudo gitlab-ctl reconfigure
설정된 아이피, 포트로 웹을 통해 접속을 해서 GitLab 사이트가 뜨면 관리자 계정으로 접속 가능.
Username: root
Password: 5iveL!fe
80, 8080, 8081 등의 포트롤 선택할 경우 GitLab 접속 시 502 에러가 뜰 수 있음.
이때 포트 변경 후 reconfigure를 하게 되면 실패하게 되는데 apache2를 내린 뒤 다시 하면 해결 됨.
아파치와 함께 사용
sudo a2enmod proxy_http
sudo vi /etc/apache2/sites-available/gitlab.conf
파일 내용은 다음 내용을 참고하여 알맞게 입력.
<VirtualHost *:80>
ServerName your_foo_path_here.com
# gitlab passthrough
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:8080/
ProxyPassReverse http://localhost:8080/
</Location>
</VirtualHost>
아파치를 다시 올려주면 확인 가능.
sudo a2ensite gitlab.conf
sudo apachectl configtest
sudo service apache2 reload
GitLab의 설정에서 external_url
를 도메인 주소 등으로 조정하고 포트의 외부 접속 차단까지 해주면 깔끔하게 처리 완료.
(localhost나 아이피로 설정하면 드러나는 모든 주소가 저 주소로 표현되어 낭패를 겪을 수 있으므로 주의.)
GitLab Apache proxy 설정 시 주소, 포트 등이 잘못됨
GitLab의 설정 파일 /etc/gitlab/gitlab.rb
의 내용 중
external_url
의 포트값을 제거, 그리고
# unicorn['port'] = 8081
의 포트 값을 설정 후 주석을 해제
reconfigure
하면 됨.
하지만 이 경우 메일, 기타 표현되는 모든 주소는 깔끔하게 나오지만, HTTP를 통한 clone이 실패하게 됨.
GitLab HTTP 주소 통한 clone 실패 시
external_url
에 다시 포트 설정을 함.
sudo gitlab-ctl reconfigure
/var/opt/gitlab/gitlab-rails/etc/gitlab.yml
파일을 수정 (루트 권한)
(경로 입력 시 자동완성 되지 않음.)
ports 부분을 알맞은 값(80이나 443 등)으로 설정
sudo gitlab-ctl restart
끝.
단, reconfigure
하면 다시 gitlab.yml
을 수정 후 restart
해줘야함.
https + apache2 proxy + cloudflare 설정
GitLab의 설정 파일 /etc/gitlab/gitlab.rb
의 내용을 아래와 같이 수정.
external_url 'https://도메인:포트'
gitlab_rails['gitlab_ssh_host'] = '서버아이피'
nginx['listen_https'] = false
gitlab_ssh_host
는 cloudflare 때문에 추가한 항목.
만약 불필요하다면 굳이 하지 않아도 된다.
다음에 reconfigure를 수행하고 다시 다음 파일을 수정한다.
/var/opt/gitlab/gitlab-rails/etc/gitlab.yml
port는 443, https는 true.
sudo gitlab-ctl restart
vhost 파일은 80 포트에는 https로 리다이렉트 시켜주거나 하고,
443 포트에는 위에서 external_url
로 설정한 http://gitlab도메인:포트
로 proxy 돌려야한다.
https가 아님에 주의한다.