시놀로지에 gitlab 완벽 설치하기
시놀로지 DS918+
로 넘어오면서 이것저것 알아가고 있는 중 입니다. 첫차를 중고차로 시작하듯 DS211+
를 중고로 시작해서 지금까지 3번의 기기변경이 있었습니다.
이전 기기에서는 git서버를 운영하기 위해서git서버 패키지
와 gogs
를 설치하여 사용을 했었는데요.
DS918+
로 넘어오니 gitLab
패키지를 Docker
형태로 공식 제공하고 있어서 설치를 해 봤습니다.
GitLab
은 Github
처럼 내 시놀로지 나스를 활용해서 웹브라우저에서 GitLab GUI
형태로 사용할 수 있게 해주는 Git Server 입니다.
Gitlab 패키지 설치하기
▲ 먼저 패키지 센터에 접속을 하면 유틸리티 쪽에 GitLab
을 볼 수가 있습니다. GitLab은 Docker로 제공되기 때문에 Git Server
을 별도로 설치할 필요는 없습니다.
▲ 기본으로 세팅되어 있는 공유 폴더 이름
과 HTTP 포트 번호
, SSH 포트 번호
에 대해서 잘 모르겠으면 그냥 그대로 설치를 해도 됩니다.
해당 포트를 시놀로지 나스의 제어판
> 보안
> 방화벽
에서 오픈을 해줘야 합니다. (아래에 포트오픈하는 방법을 기록했습니다.)
외부에서 접속을 하기 위해서는 공유기
에서도 해당 포트를 오픈해 줘야 합니다.
- 공유 폴더 이름 : 물리적으로 git파일들이 저장되는 폴더의 이름입니다.
- HTTP 포트 번호 : 설치가 완료되면 GitLab에 접속할때 필요한 포트번호입니다. (예:
http://xxxxx.myds.me:30000
) - SSH 포트번호 : 보안설정 접속포트번호 입니다. (예:
https://xxxxx.myds.me:30001
)
▲ 도메인 이름은 기본적으로 localhost로 되어 있는데 localhost로 설정을 하면 내부에서는 접근이 가능하나 외부에서는 접근이 불가능하게 됩니다.
자신이 설정한 DDNS의 주소를 적어주는 것을 추천합니다.
- 도메인 이름 : 설치한 GitLab에 접속하는 주소입니다. 이전에 설치한 포트번호와 같이 사용하게 됩니다. (예:
http://xxxxx.myds.me:30000
) - 이메일 : 관리자 이메일을 입력합니다.
▲ SMTP
는 GitLab에서 이메일을 발송할때 사용하는 메일서버입니다.
저는 개인적으로 사용하는 Git Server라서 이부분은 세팅하지 않았습니다. 세팅하지 않아도 다음단계로 넘어갈 수 있습니다.
▲ 기본적인 로그인에 대한 아이디와 비밀번호를 알려줍니다. 굳이 사용되지 않더라구요. 그냥 다음으로 넘어가면 됩니다.
▲ 이번은 데이터베이스에 대한 설정입니다. 데이터베이스는 MariaDB 10
을 사용합니다. MariaDB 10
이 설치되어 있지 않다면 이 패키지도 자동으로 설치가 됩니다.
MariaDB 10
에 접근할 수 있는 관리자 아이디/패스워드
를 설정하시면 됩니다.
- 중요!! gitlab업데이트 후에 MariaDB에서 Postgresql로 변경이 되었습니다. (변경되면서 주의할 점은 이글 아래에 추가한 내용을 참고하세요)
▲ Gitlab에서 사용할 데이터베이스이름을 설정합니다. 기본값을 그대로 사용해도 됩니다.
▲ 이제 모두세팅된 정보를 보여줍니다. 아직 설치된 것은 아니고 적용
버튼을 누르면 설치하기 시작합니다. 대략 2분~5분 정도 설치가 됩니다
▲ 설치가 완료되면 프로그램 리스트에 이렇게 GitLab 아이콘
을 볼 수 가 있습니다.
이렇게 설치가 완료됩니다.
설치가 완료되고 GitLab을 실행시켰을 때 짠~하고 gitlab 초기화면이 나오면 좋겠지만 경우에 따라 502 에러
가 발생했다는 화면을 먼저 볼 수 가 있습니다.
P.S. 시놀로지 나스에서 포트여는 방법
502 에러
를 해결하기 위해서는 포트를 열고 방화벽을 오픈해 줘야 합니다.
- 먼저 방화벽을 활성화 시켜야 합니다.
- 방화벽 프로파일을 엽니다.
- 생성 및 편집을 실행시킵니다.
- 포트 중 두번째에 있는 응용프로그램 목록에서 선택합니다.
- 응용프로그램 목록에서 Docker synology_gitlab의 포트를 선택하고
확인
또 P.S. 중요!!!!! gitlab 업데이트 후 자꾸 죽는 문제 해결
gitlab이 업데이트 하면서 데이터베이스가 MariaDB에서 Postgresql로 바뀌었습니다. 그러면서 오류가 발생한 것 같은데.. 개고생하다가 결국 시놀로지 지원센터를 통해 문제를 해결 했습니다.
**증상**
: synology_gitlab을 실행시키면 1분정도 로딩을 하다가 죽어버리는 문제 발생.
**원인**
: Docker의 synology_gitlab이 시동을 걸면서 60초정도 Postgresql의 응답을 기다리는데 Postgresql이 방화벽에 막혀 있어서 응답이 없자 synology_gitlab이 죽어버리는 현상
**해결방법**
: Postgresql(5432)와 redis(6379)의 방화벽이 닫혀있었던 것이 문제. 이 두개의 포트를 수동으로 오픈을 시켜줘야 함.
먼저 방화벽 규칙편집에서 방화벽 규칙을 새로 하나 추가 합니다.
- 사용자 지정을 선택합니다.
- 프로토콜을 TCP로 선택하고 포트
5432
,6379
를 추가합니다.
다시 gitlab을 실행시키면 정상적으로 실행이 됩니다.