git 은 기본적으로 synology 에서 Git Server 를 제공 한다.
다만 GUI를 이용한 관리 환경을 제공 하지 않기 때문에 어렵고 불편 하다.
그래서 Synology 서버에 docker 를 설치 하고 gitea 도커이미지를 이용해서 간단히 Container 를 이용해 내부용 레포지토리를 운영 한다.
클라우드 – ARM 환경에서도 잘 되기 때문에 신규 사용자의 Amazon CodeCommit 이 중지된 지금 시점에서 클라우드내에 IaaS 으로 구축해 사용하기도 좋다.
- Synology NAS 에서 docker 또는 Container Manager 를 설치 한다.(DSM 버전에 따라 패키지 명이 다를 수 있다.)
- gitea/gitea 이미지를 다운로드 받는다.
- 다운로드가 완료 되면 이미지를 실행해 시킨다.
내 경우엔 리소스를 제한하고 자동 재시작 옵션을 활성화 했다.
(gitea 는 golang 으로 만들어져 가볍지만 레포가 늘어 나면 메모리 사용량이 꾸준히 증가할 수 있다.)
- 다음 화면에서 연결될 포트를 선언 한다.
gitea 은 기본적으로 ssh, http 프로토콜을 사용한다.
DSM의 ssh 와 충돌 하지 않도록 포트는 2222 으로 지정 하고 웹 포트는 3000을 사용 하도록 했다.
- 파일 스테이션에서 연결할 폴더를 생성 한다.
Synology 에서 연결되는 폴더는 docker 를 설치시 생성 되는 /docker 공유 폴더 아래에 있어야 한다.
- 연결할 볼륨 및 환경을 추가 한다.
USER_UID, USER_GID 는 위 스크린샷과 같이 지정 해도 된다.
다만 정확히 하려면 사용중인 synology 의 관리자 ID 의 uid, gid를 확인해서 대입 한다.
1 2 |
nas-admin@synology01:/$ id nas-admin uid=1026(nas-admin) gid=100(users) groups=100(users),101(administrators) |
참고로 내 Synology 의 관리자 아이디는 nas-admin 이 아니다. (쓸모 없는 =_= 공격금지)
- 최종 점검 후 실행 한다.
- gitea 으로 접속해 설치를 진행 한다. ( http://[Synology-Nas-IP]:3000 )
관리자 계정 설정의 ▶ 를 눌러서 관리자 정보를 입력 하는것을 잊지 말자.
중간에 빨간색, 파란색 칸은 Container 를 실행 할때 ssh, http 포트를 입력해야 하는 부분으로 맞추어 주어야 한다.
- 테스트로 github 에 있는 레포지토리를 mirror 으로 생성 해본다.
미러로 생성 하는 경우 원본 에서 8시간 데이터 싱크를 해온다 ‘ㅅ’a
gitea 는 github 과 사용 방법이 비슷 하니 어렵지 않을 것이다.