SW/리눅스

Linux : Ubuntu 18.04 : Gitea 설치 방법, 예제, 명령어

얇은생각 2022. 6. 4. 07:30
반응형

Gitea는 Go로 작성된 자체 호스팅된 오픈 소스 깃 서버입니다. Gitea에는 리포지토리 파일 편집기, 프로젝트 문제 추적, 사용자 관리, 알림, 내장 위키 등이 포함되어 있습니다.

Gitea는 경량 애플리케이션으로 저전력 시스템에 설치할 수 있습니다. 훨씬 작은 메모리 공간을 가진 Gitlab의 대안을 찾고 있다면 Gitlab에서 제공하는 모든 벨과 휘파람이 필요하지 않다면 Gitea를 사용해 보아야 합니다.

Ubuntu 18.04에 Gitea를 설치하고 구성하는 방법을 설명합니다. Ubuntu 16.04 및 기타 Debian 기반 배포에도 동일한 지침이 적용됩니다.

 

 

 

필수 구성 요소

Gitea는 SQLite, Postgre를 지원합니다.데이터베이스 백엔드로 SQL 및 MySQL /MariaDB를 사용합니다.

Gitea의 데이터베이스로 SQLite를 사용할 것입니다. Ubuntu 시스템에 SQLite가 설치되어 있지 않으면 다음 명령을 sudo 사용자로 입력하여 설치할 수 있습니다.

sudo apt update
sudo apt install sqlite3

 

 

 

Gitea를 설치

Gitea는 도커 이미지를 제공하며 소스, 이진 및 패키지로 설치할 수 있습니다. 바이너리에서 Gitea를 설치하겠습니다.

sudo apt update
sudo apt install git

 

 

 

Git을 설치

첫 번째 단계는 서버에 Git을 설치하는 것입니다.

sudo apt update
sudo apt install git

 

 

 

Git 버전을 표시하여 설치를 확인합니다.

git --version

# git version 2.17.1

 

 

 

Git 사용자를 생성

다음을 입력하여 Gitea 애플리케이션을 실행할 새 시스템 사용자를 만듭니다.

sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git

# Adding system user `git' (UID 111) ...
# Adding new group `git' (GID 116) ...
# Adding new user `git' (UID 111) with group `git' ...
# Creating home directory `/home/git' ...

 

 

명령은 git라는 이름의 새 사용자와 그룹을 생성하고 홈 디렉토리를 /home/git로 설정합니다. 출력은 다음과 같습니다.

 

 

 

Gitea 바이너리를 다운로드

Gitea 다운로드 페이지를 방문하여 아키텍처에 맞는 최신 바이너리를 다운로드하십시오. 작성 당시 최신 버전은 1.10.2입니다. 사용 가능한 새 버전이 있으면 아래 명령에서 VERION 변수를 변경하십시오.

다음 wget 명령을 사용하여 /tmp 디렉터리에 있는 Gitea 바이너리를 다운로드하십시오.

VERSION=1.10.2
sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64

 

 

gitea 바이너리는 모든 위치에서 실행할 수 있습니다. 규약을 따라 바이너리를 /usr/local/bin 디렉토리로 이동합니다.

sudo mv /tmp/gitea /usr/local/bin

 

 

바이너리를 실행 파일로 만듭니다.

sudo chmod +x /usr/local/bin/gitea

 

 

아래 명령을 실행하여 디렉터리를 생성하고 필요한 사용 권한 및 소유권을 설정하십시오.

sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git: /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea

 

 

위의 디렉터리 구조는 Gitea 공식 문서에 의해 권장됩니다.

/etc/gitea 디렉터리의 사용 권한은 설치 마법사가 구성 파일을 생성할 수 있도록 770으로 설정됩니다. 설치가 완료되면 더 제한적인 권한을 설정합니다.

 

 

 

Systemd 단위 파일을 작성

Gitea는 이미 우리의 설정과 일치하도록 구성된 Systemd 유닛 파일을 제공합니다.

다음을 입력하여 파일을 /etc/systemd/system/ 디렉토리에 다운로드합니다.

sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/

 

 

완료되면 Gitea 서비스를 활성화하고 시작합니다.

sudo systemctl daemon-reload
sudo systemctl enable --now gitea

 

 

서비스가 성공적으로 시작되었는지 확인합니다.

sudo systemctl status gitea

# ● gitea.service - Gitea (Git with a cup of tea)
#    Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: enabled)
#    Active: active (running) since Sat 2020-01-04 21:27:23 UTC; 3s ago
#  Main PID: 14804 (gitea)
#     Tasks: 9 (limit: 1152)
#    CGroup: /system.slice/gitea.service
#            └─14804 /usr/local/bin/gitea web --config /etc/gitea/app.ini
# ...

 

 

 

Gitea를 구성

이제 Gitea가 다운로드되어 실행되었으므로 웹 인터페이스를 통해 설치를 완료해야 합니다.

기본적으로 Gitea는 모든 네트워크 인터페이스에서 포트 3000의 연결을 수신합니다.

서버에서 UFW 방화벽이 실행 중인 경우 Gitea 포트를 열어야 합니다.

포트 3000에서 트래픽을 허용하려면 다음 명령을 입력합니다.

sudo ufw allow 3000/tcp

 

 

브라우저를 열고 http://YOUR_DOMAIN_OR_IP:3000 및 다음과 유사한 화면이 나타납니다.

Linux : Ubuntu 18.04 : Gitea 설치 방법, 예제, 명령어

 

 

 

데이터베이스 설정:

- 데이터베이스 유형: SQLite3입니다.

- 경로: 절대 경로 /var/lib/gitea/data/gitea.db를 사용합니다.

 

응용 프로그램 일반 설정: 

- 사이트 제목: 조직 이름을 입력

- 리포지토리 루트 경로: 기본 /home/git/gitea-repository를 그대로 사용

- Git LFS 루트 경로: 기본 /var/lib/gitea/data/lfs를 그대로 사용

- 사용자 이름으로 실행합니다: git

- SSH 서버 도메인입니다. 도메인 또는 서버 IP 주소를 입력

- SSH 포트: 22, SSH가 다른 포트에서 수신 중인 경우 변경

- Gitea HTTP 수신 대기 포트: 3000

- Gitea Base URL: http와 도메인 또는 서버 IP 주소를 사용

- 로그 경로: 기본 /var/lib/gitea/log를 그대로 사용

 

 

언제든지 Gitea 구성 파일을 편집하여 설정을 변경할 수 있습니다.

완료되면 "Install Gitea" 버튼을 누릅니다. 설치가 즉시 수행됩니다. 완료되면 로그인 페이지로 리디렉션됩니다.

"지금 등록" 링크를 클릭합니다. 처음 등록된 사용자는 자동으로 Admin 그룹에 추가됩니다.

다음을 사용하여 Gitea 구성 파일의 권한을 읽기 전용으로 변경합니다.

sudo chmod 750 /etc/gitea
sudo chmod 640 /etc/gitea/app.ini

 

 

여기까지입니다. Ubuntu 시스템에 Gitea가 설치되었습니다.

 

 

 

Nginx를 SSL 종료 프록시로 구성

이 단계는 선택 사항이지만 권장됩니다. Nginx를 역방향 프록시로 사용하려면 서버 공용 IP를 가리키는 도메인 또는 하위 도메인이 있어야 합니다. 이 튜토리얼에서는 git.example.com을 사용할 것입니다. 

먼저 Nginx를 설치하고 아래 안내에 따라 무료 SSL 인증서를 생성합니다. 

완료되면 텍스트 편집기를 열고 도메인 서버 블록 파일을 편집합니다.

# /etc/nginx/sites-enabled/git.example.com

server {
    listen 80;
    server_name git.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://git.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name git.example.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    client_max_body_size 50m;

    # Proxy headers
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/git.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/git.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/git.example.com/chain.pem;
    include snippets/letsencrypt.conf;
    include snippets/ssl.conf;

    # log files
    access_log /var/log/nginx/git.example.com.access.log;
    error_log /var/log/nginx/git.example.com.error.log;

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://127.0.0.1:3000;
    }
}

 

 

git.example.com을 Gitea 도메인으로 바꾸고 SSL 인증서 파일에 대한 올바른 경로를 설정해야 합니다. HTTP 트래픽이 HTTPS로 리디렉션됩니다.

Nginx 서비스를 다시 시작하여 변경 내용을 적용합니다.

sudo systemctl restart nginx

 

 

다음으로 Gitea 도메인과 루트 URL을 변경합니다. 이렇게 하려면 구성 파일을 열고 다음 줄을 편집하십시오.

# /etc/gitea/app.ini

[server]
DOMAIN           = git.example.com
ROOT_URL         = https://git.example.com/

 

 

다음을 입력하여 Gitea 서비스를 다시 시작합니다.

sudo systemctl restart gitea

 

 

이때 Gitea 프록시가 구성되며 다음 사이트에서 액세스할 수 있습니다. https://git.example.com

 

 

 

이메일 알림을 구성

Gitea가 알림 이메일을 보낼 수 있도록 Postfix를 설치하거나 SendGrid, MailChimp, MailGun 또는 SES와 같은 일부 트랜잭션 메일 서비스를 사용할 수 있습니다.

이메일 알림을 사용하려면 구성 파일을 열고 다음 줄을 편집합니다.

# /etc/gitea/app.ini

[mailer]
ENABLED = true
HOST    = SMTP_SERVER:SMTP_PORT
FROM    = SENDER_EMAIL
USER    = SMTP_USER
PASSWD  = YOUR_SMTP_PASSWORD

 

 

올바른 SMTP 서버 정보를 입력했는지 확인하십시오.

Gitea 서비스를 다시 시작하여 변경 내용을 적용합니다.

sudo systemctl restart gitea

 

 

설정을 확인하고 테스트 이메일을 보내려면 Gitea에 로그인하고 사이트 관리 > 구성 > SMTP 메일러 구성으로 이동합니다.

Gitea를 사용하면 웹 후크를 만들어 슬랙에 연결하고 슬랙 채널에 알림을 보낼 수도 있습니다.

 

 

 

Gitea 업그레이드

최신 Gitea 버전으로 업그레이드하려면 바이너리를 다운로드하고 교체하기만 하면 됩니다.

Gitea 서비스를 중지합니다.

sudo systemctl stop gitea

 

 

최신 Gitea 버전을 다운로드하여 /usr/local/bin 디렉토리로 이동합니다.

VERSION=<THE_LATEST_GITEA_VERSION>
wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
sudo mv /tmp/gitea /usr/local/bin

 

 

바이너리를 실행 파일로 만듭니다.

sudo chmod +x /usr/local/bin/gitea

 

 

Gitea 서비스를 다시 시작합니다.

sudo systemctl restart gitea

 

Ubuntu 18.04에 Gitea를 설치하는 과정을 안내했습니다.

이제 Gitea 설명서 페이지를 방문하여 Gitea 인스턴스를 구성하고 첫 번째 프로젝트를 생성하는 방법에 대해 알아봅니다.

반응형