gitea 설치로 git 웹호스팅 서버 구축하기

Updated:

Git 서버는 SW 개발자에게 필수로 여겨지는 버전 관리 시스템 중 하나입니다. gitea를 사용하면 매우 쉽게 git 웹호스팅 서버를 설치할 수 있습니다. 이번 글에서는 라즈베리파이3 b+에서 git 웹호스팅 서버를 구축하는 방법을 살펴보겠습니다.

1. gitea 소개하기

git는 버전 관리 시스템 중의 한 종류입니다. 버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템입니다. 소스 코드를 개발하다가 작업하고 있는 내용이 잘못되었다고 여겨질때는 버전 관리 시스템을 사용하여 다시 이전 상태로 되돌아 갈 수 있는 것이지요.

꼭 Git 서버를 설치하여야 버전 관리를 할 수 있을까요? 그건 아닙니다. 근래에 여러 GIT 호스팅 사이트들이 운영되고 있고, repository를 공개로 설정하면 무료로 이용할 수 있습니다. 대표적으로 github, gitlab, bitbucket 등이 있으며, Git 서버를 설치하는 등의 일을 하고 싶지 않으면 이러 호스팅 사이트를 이용하면 됩니다. 다만, 이런 호스팅 사이트들은 private repository를 생성하려면 유료 가입을 해야합니다.

개발자들이 언제나 공개하고 싶을만큼의 좋은 코드를 작성하는 것은 아니지요. 공개하기 애매한 코드나 개인 문서도 git에 저장하고 싶을 경우가 있습니다. 이런 경우, 개인용 git 웹호스팅 서버를 구축해서 사용해보는 것은 어떨지요. git 호스팅 사이트인 gitlab은 개인 컴퓨터에서 셀프 호스팅할 수 있게 소스를 공개하고 있습니다. gitlab를 개인 컴퓨터에 설치할 수 있는 것이지요. 다만, gitlab의 기능이 강력해서 오히려 라즈베리파이에서 구동하기에 너무 무겁습니다. (라즈베리파이3 B모델에서의 GitBucket, Gogs, Gitea, GitLab 벤치마크 측정결과 포스팅(영문)을 참고하세요.)

라즈베리파이3 B+ 모델에서 구동시킬 git 서비스로 gitea가 괜찮은 선택지입니다. gitea는 gogs에서 fork 된 오픈소스로 가볍고 빠르며, 설치가 간편합니다. 그리고, 개인용 프로젝트를 저장하기에 충분한 기능을 제공합니다.

2. gitea 설치하기

gitea는 라즈베리파이에서 구동할 수 있는 바이너리를 공식 릴리즈 합니다. 아래 링크에서 linux-arm-7용 최신 버전의 파일명을 확인합니다.

그리고, 파일명을 토대로 바이너리를 아래와같이 다운로드 받습니다.

pi@raspberrypi:~ $ mkdir gitea
pi@raspberrypi:~ $ cd gitea/
pi@raspberrypi:~/gitea $ wget https://dl.gitea.io/gitea/1.5.1/gitea-1.5.1-linux-arm-7 -O gitea
--2018-09-17 23:14:03--  https://dl.gitea.io/gitea/1.5.1/gitea-1.5.1-linux-arm-7
Resolving dl.gitea.io (dl.gitea.io)... 104.27.142.155, 104.27.143.155, 2400:cb00:2048:1::681b:8e9b, ...
...
2018-09-17 23:14:22 (2.75 MB/s) - ‘gitea’ saved [52308840/52308840]

pi@raspberrypi:~/gitea $ ls -l
total 51084
-rw-r--r-- 1 pi pi 52308840 Sep  3 03:46 gitea

바이너리 형태로 배포하기 때문에, 실행권한을 부여하고 바로 실행가능합니다. web 옵션은 git 웹서버를 실행하는 명령입니다.

pi@raspberrypi:~/gitea $ chmod 755 gitea
pi@raspberrypi:~/gitea $ ./gitea web
2018/09/17 23:16:13 [W] Custom config '/home/pi/gitea/custom/conf/app.ini' not found, ignore this if you're running first time
2018/09/17 23:16:13 [T] AppPath: /home/pi/gitea/gitea
2018/09/17 23:16:13 [T] AppWorkPath: /home/pi/gitea
2018/09/17 23:16:13 [T] Custom path: /home/pi/gitea/custom
...
[Macaron] 2018-09-17 23:16:25: Completed GET / 200 OK in 380.758022ms
[Macaron] 2018-09-17 23:16:25: Started GET /vendor/assets/font-awesome/css/font-awesome.min.css for 192.168.25.9

gitea 웹서버의 기본 포트는 3000번 입니다. 저는 라즈베리파이 ip에 기본 포트 번호를 붙여서, http://192.168.25.18:3000/에 접속하였습니다. 접속하면 gitea 메인 페이지를 볼 수 있습니다.

아직은 아무 설정이 되어 있지 않지요. 가입하기나 로그인을 누르면 Initial Configuration 화면이 나옵니다. 초기 설정을 해야합니다. 몇가지 항목만 유의할 수 있게 설명을 적었습니다.

  • 데이터베이스 유형 : sqlite3 를 선택하면 설치가 필요없고, 간편합니다.
  • Run As Username : gitea를 구동할 라즈베리파이 내 사용자 ID 입니다.

gitea 설치가 완료되면 가입하기를 눌러서 gitea에서 사용할 계정을 생성합니다.

생성한 계정 정보로 로그인해서, 로그인되면 완료입니다.

모든 사용 준비는 완료되었습니다. 이제 repository를 추가하고 git를 사용하여 코딩을 시작하면 됩니다.

3. gitea 자동 실행

위에서 gitea를 실행하는 방법을 살펴보았는데요. 부팅 시에도 매번 명령어를 기재해야 할까요? cron에 gitea 실행을 등록해서 부팅시 자동 실행되도록 설정합니다. cron에 자세한 사용 방법은 13. 설치가이드(13) cron 설정하기(예약 작업)를 참고합니다. crontab에 아래와같이 부팅 후 자동 실행을 등록합니다. gitea는 실행 시, USER 정보가 필요하여서 USER 정보를 export 해주었습니다.

@reboot USER=$(whoami) && export USER && sleep 30 && /home/pi/gitea/gitea web > /dev/null 2>&1

부팅 후에도 gitea 웹서버가 동작하는지 접속해봅니다.


더 많은 라즈베리파이 이야기 Pi Guide 보러가기


Leave a Comment