깃 저장소 관리 서비스
Git repositories 를 관리하는 서비스는 여러가지가 있는데 Github는 프라이빗 저장소에 제한이 있다. Gitlab은 시놀로지에 설치는 되는데 Docker를 지원하는 고가의 기종에서만 가능하다. 도커를 지원하는 시놀로지 모델은 다음과 같다.
- 19 시리즈 : RS1619xs+, RS1219+, DS1819+
- 18 시리즈 : FS1018, RS3618xs, RS2818RP+, RS2418RP+, RS2418+, RS818RP+, RS818+, DS3018xs, DS1618+, DS918+, DS718+, DS218+
- 17 시리즈 : FS3017, FS2017, RS18017xs+, RS4017xs+, RS3617xs+, RS3617RPxs, RS3617xs, DS3617xs, DS1817+, DS1517+
- 16 시리즈 : RS18016xs+, RS2416RP+, RS2416+, DS916+, DS716+, DS716+II, DS216+, DS216+II
- 15 시리즈 : RS815RP+, RS815+, RC18015xs+, DS3615xs, DS2415+, DS1815+, DS1515+, DS415+
- 14 시리즈 : RS3614xs+, RS3614RPxs, RS3614xs, RS2414RP+, RS2414+, RS814RP+, RS814+
- 13 시리즈 : RS10613xs+, RS3413xs+, DS2413+, DS1813+, DS1513+, DS713+
- 12 시리즈 : RS3412RPxs, RS3412xs, RS2212RP+, RS2212+, RS812RP+, RS812+, DS3612xs, DS1812+, DS1512+, DS712+, DS412+
- 11 시리즈 : RS3411RPxs, RS3411xs, RS2211RP+, RS2211+, DS3611xs, DS2411+, DS1511+, DS411+, DS411+II
- 10 시리즈 : RS810RP+, RS810+, DS1010+, DS710+
Gogs 선정
어쨌든 프라이빗 소스를 서비스회사에 맡기고 싶진 않아 개인서버에 git을 설치하고 웹에서 매니징을 할수 있게 해 주는 서비스를 찾아보니 Gogs와 Gogs에서 파생되어 나온 Gitea가 있다. 두 서비스의 차이점은 Slant에서 비교했는데 Gogs는 시놀로지 서버에 설치되므로 Gogs를 사용하기로 했다.
Benchmark of GitBucket / Gogs / Gitea / GitLab on Raspberry Pi 3 를 보면 속도도 다른 서비스들에 비해 충분히 빠른 것 같다.
Gogs 설치
git server 설치
시놀로지에서 git을 사용하기 위해 git server를 설치한다. 유저는 생성하지 않아도 된다.
gogs 설치하기
패키지 다운로드
Gogs 홈페이지에서 바이너리를 다운받아 설치한다.
-
gogs_0.11.86_linux_armv5를 풀어서 1_create_package 안에다 넣는다.
-
인증서에 git.주소 추가후, 역방향프록시를 설정한다.
-
시놀로지에서 데몬 사용자 계정은 무조건 root 이다.
파일업로드 제한 풀기
파일업로드 크기에 제한이 걸려있으니 다음 포스팅을 참고해 풀어준다. 참고로 시놀로지에서 app.ini 파일의 경로는 /volumeX/@appstore/Gogs/gogs/custom/conf/app.ini
이다.
Windows에서의 git 테스트를 위한 bash 설치
-
프로그램 및 기능 -> windows 기능 켜기/끄기 -> Linux용 Windows 하위 시스템 설치 -> window store에서 win10용 ubuntu 설치.
-
각 폴더에서 바로 실행하기 위해 wsltty 를 설치.
설치후 알게된 문제
-
Gogs는 시놀로지에서 root 계정으로밖에 설치할수 없다
-
시놀로지는 DSM 6.0이후로 root의 ssh접속을 금한다
-
Gogs의 ssh 주소는 루트를 기준으로 만들어지는데 시놀로지에서 유저계정을 만들어서 ssh에 접속해도 결국 루트에 액세스할수 없어 ssh를 사용할 수가 없다. 할수없이 https 주소를 써야한다.
-
Gogs의 remote주소를 https://도메인:포트/git주소 로 설정한뒤 로그인하는 방식으로는 인증에 실패한다. https://계정:패스워드@도메인:포트/git주소 로 설정하면 인증을 통과할 수 있다. 이때 계정은 @마크를 쓰는 이메일이 아닌 평문으로 해야 한다.