Gitea 설치법

일을 하다보면 github 의 Public repository 에는 업로드할 수 없는, 개인적인 프로젝트를 저장할 Private repository 가 필요할 수 있다. github 에서 제공하는 Private repository 를 사용할 수도 있지만, 제한된 기능이 마음에 안 들거나 내부망에서 작업이 필요한 경우 gitea 를 설치하여 이용할 수 있다.
- Go 언어로 작성되어 모든 플랫폼을 지원.
- 가볍고 빠름.
설치
Windows 설치
go-gitea 레포지토리의 release 에서 Windows 용 설치 파일을 다운로드한다. Assets
에서 Show all assets
를 클릭하면 생략된 인스톨 파일들 목록이 나타난다.

이 글에서는 gitea-1.22.2-windows-4.0-amd64.exe
버전을 사용했다.

추가 정보
클릭 후, 실행
버튼 클릭.

실행하면 127.0.0.1:3000
주소에 gitea 가 호스팅되는 것을 확인할 수 있다. 해당 주소로 접속하면 gitea 설치를 위한 초기 설정을 요구하는 것을 볼 수 있다. 사용자 상황에 맞게 적절한 설치 설정을 입력해주자.
기존에 사용 중인 데이터베이스가 있다면 데이터베이스 유형, 호스트, 유저명, 비밀번호, 등을 입력하여 연결하여 사용할 수 있다. 잘 모르겠고, 셋팅하기 귀찮다면 데이터베이스 유형을 SQLite3
로 변경하면 단일 SQLite 파일을 경로에 생성하여 사용할 수 있다.

모두 설정했다면 하단의 Gitea 설치하기
버튼을 클릭하여 설치를 진행한다.
"git 명령 테스트 실패: exec: "git": executable file not found in %PATH%" 라는 에러가 발생한다면 시스템에 git이 설치되어 있지 않을 가능성이 높다. git 홈페이지에서 Windows 용 git 을 설치하고 실행 파일을 PATH 경로에 추가해주자. git 을 설치하면 터미널을 닫고 실행 파일을 다시 실행하자.
설치가 완료되면 설치 시 입력한 주소와 포트 번호(기본 127.0.0.1:3000)로 접속하여 gitea 서비스를 이용할 수 있다.

gitea 는 디폴트 관리자 계정을 제공하지 않으며, 최초로 등록한 계정이 관리자 계정이다. 계정 등록
버튼을 클릭하여 적절한 관리자 계정을 생성하자.

생성한 계정으로 접속하면 gitea 의 기능들을 이용할 수 있다. 대부분의 기본 기능이 github, gitlab 과 유사하니 금방 익숙해질 수 있다.

서비스 등록
관리자 권한으로 cmd.exe 를 실행하여 다음과 같은 명령어를 실행해 gitea 를 실행하는 서비스를 등록한다. app.ini
파일은 설치 경로의 /custom/conf/
폴더 밑에 있다.
sc.exe create {서비스 이름} start= auto binPath= "{gitea 실행 파일 경로} web --config {gitea app.ini 파일 경로}"
참고로 binPath
의 인자 값을 입력할 때 쌍따옴표 내에서 다시 쌍따옴표를 쓸 때 \
를 적절하게 추가해 escape 해야 한다. 아래 예시를 참고하자.
sc.exe create gitea start= auto binPath= "\"C:\Program Files\Gitea\gitea-1.22.2-gogit-windows-4.0-amd64.exe\" web --config \"C:\Program Files\Gitea\custom\conf\app.ini\""
정상적으로 서비스 생성에 성공하면 CreateService 성공
메시지가 출력된다.

Window 키 + R 버튼을 눌러 실행
창을 띄우고, services.msc
를 실행하면 생성한 서비스가 등록된 것을 확인할 수 있다.

Linux
이 단락에서는 Linux OS 에서 Docker, Docker Compose 를 이용해 gitea 를 설치하는 방법을 설명한다. 설치 OS 는 Kali Linux 로 테스트했다.
Docker 설치
다음 명령어를 실행하여 Docker, Docker Compose 를 설치한다.
$ sudo apt-get install docker.io
$ sudo apt-get install docker-compose
Docker Compose 를 이용한 설치
적당한 경로에 아래와 같은 docker-compose.yaml
파일을 생성한다.
포트 번호, DB 이름, volume 경로는 필요에 따라 적절하게 변경한다. 필자는 /home/kali/Desktop/gitea
경로에 /data
,/config
,/timezone
, /localtime
, /postgres
폴더를 생성 후 volume을 설정했다.
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.22-nightly-rootless
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER={사용자명}
- GITEA__database__PASSWD={database 암호}
restart: always
networks:
- gitea
volumes:
- /home/kali/Desktop/gitea/data:/data
- /home/kali/Desktop/gitea/config:/etc/gitea
- /home/kali/Desktop/gitea/timezone:/etc/timezone:ro
- /home/kali/Desktop/gitea/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: postgres:14
restart: always
environment:
- POSTGRES_USER={사용자명}
- POSTGRES_PASSWORD={database 암호}
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- /home/kali/Desktop/gitea/postgres:/var/lib/postgresql/data
docker-compose.yaml
파일 작성 후 해당 파일이 있는 경로에서 다음 명령어를 실행한다.
$ sudo docker-compose up -d
sudo docker ps
명령어로 docker-compose.yaml
파일에서 정의한 컨테이너가 생성된 것을 확인할 수 있다.

웹으로 127.0.0.1:3000
에 접속하면 Windows 설치 과정과 동일한 초기 설정 페이지가 출력되는 것을 확인할 수 있다. 이 경우 docker-compose.yaml
에서 PostgreSQL 컨테이너를 정의했으므로 해당 DB 를 이용하도록 설정하면 된다.
