SW/리눅스

Linux : CentOS 8 : Gitea 설치 방법, 예제, 명령어

얇은생각 2022. 11. 22. 07:30
반응형

Gitea는 Go로 작성된 자체 호스팅 오픈 소스 Git 서버입니다. 저장소 파일 편집기, 프로젝트 문제 추적, 사용자 관리, 알림, 내장 Wiki 등이 제공됩니다.

Gitea는 경량 애플리케이션으로 성능이 낮은 시스템에 설치할 수 있습니다. 메모리 용량이 훨씬 작은 Gitlab 대체 제품을 찾고 있고 Gitlab에서 제공하는 모든 벨과 휘파람이 필요하지 않다면 Gitea를 사용해 보십시오.

이 자료에서는 CentOS 8에 Gitea를 설치하고 구성하는 방법을 보여 줍니다.

 

 

Linux : CentOS 8 : Gitea 설치 방법, 예제, 명령어

 

 

필수 구성 요소

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

SQLite를 사용할 것입니다. 단일 파일에 데이터를 저장하는 경량 데이터베이스입니다. CentOS 시스템에 SQLite가 설치되어 있지 않은 경우 sudo 사용자로 다음 명령을 실행하여 설치할 수 있습니다.

sudo dnf install sqlite

 

 

SELinux가 비활성화되었거나 허용 모드로 설정되어 있다고 가정합니다.

 

 

 

Gitea를 설치

Gitea는 원본, 이진 및 패키지로 설치할 수 있습니다. 도커 이미지로 배포할 수도 있습니다. 바이너리를 사용하여 Gitea를 설치할 것입니다.

 

 

 

Git을 설치

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

sudo dnf install git

 

 

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

git --version

# git version 2.18.4

 

 

 

Git 사용자 생성

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

sudo useradd \
   --system \
   --shell /bin/bash \
   --comment 'Git Version Control' \
   --create-home \
   --home /home/git \
   git

 

 

이 명령은 git라는 새 사용자 및 그룹을 생성하고 홈 디렉토리를 /home/git으로 설정합니다.

 

 

 

Gitea 바이너리를 다운로드

최신 Gitea 바이너리는 Gitea 다운로드 페이지에서 다운로드할 수 있습니다. 아키텍처에 맞는 바이너리를 다운로드하십시오.

작성 시점의 최신 버전은 1.12.3입니다. 사용 가능한 새 버전이 있으면 아래 명령에서 VERSION 변수를 변경하십시오.

wget을 사용하여 /tmp 디렉토리의 Gitea 바이너리를 다운로드합니다.

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

 

 

모든 위치에서 바이너리를 실행할 수 있습니다. 규칙에 따라 바이너리를 /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에서 연결을 수신합니다. Gitea 웹 인터페이스에 액세스할 수 있도록 방화벽을 구성해야 합니다.

sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
sudo firewall-cmd --reload

 

 

브라우저를 열고 http://YOUR_DOMAIN_IR_를 입력합니다.IP:3000/install 그러면 초기 구성 페이지가 나타납니다.

Linux : CentOS 8 : Gitea 설치 방법, 예제, 명령어 2

 

 

 

다음과 같이 필수 필드를 입력합니다.

 

데이터베이스 설정:

데이터베이스 유형: SQLite3

경로: 절대 경로 /var/lib/gitea/data/gitea.db를 사용

 

응용 프로그램 일반 설정:

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

리포지토리 루트 경로 - 기본 /home/git/gitea-repositories

Git LFS 루트 경로 - 기본 /var/lib/gitea/data/lfs

사용자 이름으로 실행 - git

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

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

Gitea HTTP 수신 대기 포트 - 3000

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

로그 경로 - 기본 /var/lib/gitea/log

나중에 Gitea 구성 파일을 편집하여 설정을 변경

 

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

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

설치를 보다 안전하게 하려면 다음을 사용하여 Gitea 구성 파일의 사용 권한을 읽기 전용으로 변경하십시오.

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

 

 

Gitea가 CentOS 컴퓨터에 설치되었습니다.

 

 

 

Nginx를 SSL 종료 프록시로 구성

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

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

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

# /etc/nginx/conf.d/git.example.com.conf

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;
    }
}

 

 

잊지 말고 Gitea 도메인으로 git.example.com를 대체하고 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

 

 

 

이메일 알림을 구성

통지 이메일을 보내려면 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 서버 정보를 사용해야 합니다.

app.ini 파일을 편집할 때마다 변경 내용을 적용하려면 Gitea 서비스를 다시 시작해야 합니다.

sudo systemctl restart gitea

 

 

설정을 확인하고 테스트 이메일을 보내려면 Gitea에 로그인하고 Site Administration(사이트 관리) > Configuration(구성) > SMTP Mailer Configuration(SMTP 메일러 구성)으로 이동하십시오.

Gitea는 웹 후크를 생성하여 Slack에 연결하고 Slack 채널에 알림을 보낼 수도 있습니다.

 

 

 

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

 

 

CentOS 8에 Gitea를 설치하는 방법을 보여드렸습니다. 이제 Gitea 설명서 페이지를 방문하여 설치를 구성하고 첫 번째 프로젝트를 만드는 방법을 배우십시오.

반응형