컴퓨터
시놀로지 NAS에 GitLab 서버 구성하기
커널패닉

Lv.1 커널패닉 (119.♡.59.225)

2025년 11월 2일 AM 02:20 · 수정됨(11. 03. 15:08)

조회 1,777 공감 0

GitHub에서 언리얼 프로젝트를 생성하면 주로 매가스캔과 같은 방대한 언리얼 에셋으로 인해 LFS 용량이 가득차기 마련입니다.

대안으로 NAS에 Perforce 서버를 구축해서 사용해 봤으나 Git과 구조가 달라 제대로 사용할 수 없었습니다.

게다가 Perforce 서버가 오프라인일 경우 p4 edit 명령이 작동하지 않아 읽기 전용으로 열린 파일을 단순히 구경만해야 하는 경우도 있었습니다.

따라서 이참에 NAS에 GitLab(이하 깃랩) 서버를 구축하는 방법을 정리할 겸 이 글을 작성해 봅니다.


Docker Hub 에서 이미지 다운로드하기

  1. 관리자 권한을 보유한 계정으로 NAS 홈페이지(DSM) 에 로그인합니다. (기본값은 admin 이지만 보안상 비활성화 되었을 수 있습니다)
  2. 바탕화면에 위치한 제어판 아이콘을 두번 눌러 실행한 후 "터미널 및 SNMP" 를 클릭하세요.
    • 이미지 태그를 명시하지 않아도 될 경우, Container Manager 에서 이미지를 다운로드해도 무방합니다.
    • Container Manager에서 진행할 경우 8항으로 이동하세요.
  3. "SSH 서비스 활성화" 체크박스를 체크합니다.
  4. PC에서 터미널 또는 명령 프롬프트를 실행합니다.
  5. 1항에서 로그인한 계정을 사용하여 SSH에 로그인합니다. (예: ssh admin@192.168.0.100)
  6. sudo -i 명령을 입력하고 현재 로그인한 계정의 암호를 입력하세요.
  7. docker pull gitlab/gitlab-ce:18.5.0-ce.0 명령을 사용해서 특정 태그의 이미지를 pull 합니다.

Docker 컨테이너 구성하기

  1. DSM 으로 돌아와서 Container Manager 내 이미지 탭에서 앞서 다운로드 받은 이미지를 "실행"합니다.
  2. 컨테이너 이름의 경우 gitlab 으로 입력하고 "자동 재시작 활성화" 체크박스를 체크합니다.
  3. 컨테이너 포트 설정을 진행합니다. 자세한 사항은 아래 표를 참고해 주세요.
    로컬 포트
    컨테이너 포트
    프로토콜
    30022
    22
    TCP
    30443
    443
    30080
    80
  4. 컨테이너의 볼륨 마운트를 진행합니다. 자세한 사항은 아래 표를 참고해 주세요
    파일/폴더
    마운트 경로
    /docker/gitlab/config
    /etc/gitlab
    /docker/gitlab/data
    /var/opt/gitlab
    /docker/gitlab/log
    /var/log/gitlab
  5. 컨테이너 생성이 완료되면 다시 SSH에서 작업합니다.
  6. docker exec -it gitlab /bin/bash 명령을 실행합니다.
  7. 컨테이너 내 쉘에서 cat /etc/gitlab/initial_root_password 명령을 통해 초기 root 비밀번호를 확인합니다.
  8. docker ps -a 명령을 실행 후 STATUS 가 healthy 로 표기되면 브라우저에서 192.168.0.100:30080 으로 접속합니다.


만약 외부에서 사용하고 싶으실 경우 Synology DDNS 등을 사용하여 외부에서 접속할 수 있습니다. 또한 이 경우 공유기의 포트 포워딩 설정을 변경해야 합니다. (30080, 443 등의 포트를 외부에서 접근 가능하도록 허용)

단, 이 강좌에서는 Synology DDNS 및 공유기 설정이 이미 완료되었다고 가정합니다.


HTTPS 인증서 적용 및 역방향 프록시 구성

  1. DSM 제어판에서 로그인 포털을 클릭한 후 고급 섹션으로 이동합니다.
  2. "역방향 프록시" 버튼을 눌러 프록시 규칙 편집기를 열고 아래와 같이 수정합니다.
    역방향 프록시 이름
    gitlab
    소스 프로토콜
    HTTPS
    소스 호스트 이름
    gitlab.example.synology.me
    소스 포트
    443
    HSTS 활성화
    대상 프로토콜
    HTTP
    대상 호스트 이름
    localhost
    대상 포트
    30080
  3. 모든 설정을 적용한 후 보안을 클릭한 후 인증서 섹션으로 이동합니다.
  4. 새 Let's Encrypt 인증서를 추가합니다 (도메인 이름에는 소스 호스트 이름을 입력합니다)
  5. 설정 내 구성에서 gitlab.example.synology.me 필드 옆 드롭다운에 전항에서 생성한 인증서를 지정합니다.
  6. 컨테이너 쉘 내에서 vi /etc/gitlab/gitlab.rb 명령을 실행합니다.
  7. external_url 을 다음과 같이 변경합니다. https://gitlab.example.synology.me
  8. gitlab-ctl reconfigure 명령을 실행하여 설정을 반영합니다.


추후 깃랩 서버 업데이트가 필요할 경우 Docker 이미지를 수동으로 교체하시거나, 자료실에 업로드한 업그레이드 자동화 스크립트를 활용해 주세요.

댓글 (5)

  • 닥스훈트

    닥스훈트 Lv.1

    25.11.03 · 58.♡.15.54

    시놀로지를 사용하고 있고 컴맹수준도 아니지만...
    무슨말인지 이해를 못하겠...ㅠㅠ
    가족 폰사진 백업, WebDev로 소장용 영화 시청, 아주 가끔 토렌트다운만 사용중이라는...ㅠㅠ

    개발자가 아니라면 모르는게 정상이겠죠? ㅎㅎ
    {emo:onion-024.gif:150}
  • 왜나를불렀지

    왜나를불렀지 Lv.1 → 닥스훈트

    25.11.03 · 203.♡.43.193

    'docker 에 jellyfin 설치' 추천 합니다.
    위 키워드로 나온대로 따라하면 딸깍 가능 합니다.
  • 닥스훈트

    닥스훈트 Lv.1 → 왜나를불렀지

    25.11.03 · 118.♡.84.32

    감사합니다..ㅎ
    도커사용법은 수박 겉핥기식만 알지만 시도 해보겠습니다. 남은하루도 알차게 보내세용~~^^
  • 얼레와이파이

    얼레와이파이 Lv.1

    05.26 · 223.♡.117.137

    gitlab이 메모리를 좀 많이 먹는것으로 아는데, 시놀로지에 고급모델이 아니면 메모리를 많이 꼽을 수 없었을텐데, 메모리는 얼마나 사용하나요?

  • 커널패닉

    커널패닉 Lv.1 → 얼레와이파이 작성자

    05.26 · 119.♡.59.225

    메모리 16GB (8GBx2) 사용중입니다. `DS218+` 랑 `DS918+` 전부 잘 작동하더라고요.

    ```bash

    󰋊 [DSM] hm@sweethome-nas:~$ free -h

    total used free shared buff/cache available

    Mem: 15Gi 6.5Gi 1.3Gi 300Mi 7.7Gi 8.4Gi

    Swap: 11Gi 117Mi 11Gi

    ```

댓글을 작성하려면 이 필요합니다.