Gitea 설치법

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 를 이용하도록 설정하면 된다.