SW/리눅스

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

얇은생각 2023. 1. 23. 07:30
반응형

Gitea Go로 작성된 빠르고 사용하기 쉬운 자체 호스팅 Git 서버입니다. 여기에는 리포지토리 파일 편집기, 프로젝트 문제 추적, 사용자 관리, 알림, 내장 Wiki 등이 포함됩니다.

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

Ubuntu 20.04 Gitea를 설치하고 구성하는 방법을 설명합니다.

 

 

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

 

 

전제 조건

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

SQLite는 소규모 설치에만 권장됩니다. 대규모 설치에서는 MySQL 또는 Postgre를 사용해야 합니다.SQL입니다.

SQLite Gitea의 데이터베이스로 사용할 것입니다. Ubuntu 시스템에 SQLite가 설치되어 있지 않은 경우 sudo user로 다음 명령을 입력하여 SQLite를 설치합니다.

sudo apt update
sudo apt install sqlite3

 

 

 

Gitea를 설치

Gitea Docker 이미지를 제공하며 소스, 바이너리 및 패키지로 설치할 수 있습니다. 2진법으로 Gitea를 설치하겠습니다.

 

 

Git을 설치

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

sudo apt update
sudo apt install git

 

 

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

git --version

# git version 2.25.1

 

 

 

Git 사용자를 생성

다음을 입력하여 Gitea 응용 프로그램을 실행할 새 시스템 사용자를 만듭니다.

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos 'Git Version Control' \
   --group \
   --disabled-password \
   --home /home/git \
   git
   
# Adding system user `git' (UID 112) ...
# Adding new group `git' (GID 118) ...
# Adding new user `git' (UID 112) with group `git' ...
# Creating home directory `/home/git' ...

 

 

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

 

 

 

Gitea 이진 파일을 다운로드

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

wget을 사용하여 /tmp 디렉터리에 Gitea 이진 파일을 다운로드합니다.

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

 

 

Gita 바이너리는 모든 위치에서 실행할 수 있습니다. 규칙을 따르고 /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,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea

 

 

위의 디렉터리 구조는 공식 Gitea 설명서에서 권장하고 있습니다.

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

 

 

 

Systemd 단위 파일 생성

Gitea systemd 서비스로 운영하겠습니다.

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

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

 

 

파일을 편집할 필요가 없습니다. 이 파일은 우리의 설정과 일치하도록 구성되어 있습니다.

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

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

 

 

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 Thu 2021-05-06 05:32:04 UTC; 7s ago
#    Main PID: 77781 (gitea)
#       Tasks: 6 (limit: 470)
#      Memory: 130.6M
#      CGroup: /system.slice/gitea.service
#              └─77781 /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_IR_을 입력합니다.IP:3000이 표시되고 다음과 유사한 화면이 나타납니다.

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

 

 

데이터베이스 설정:

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

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

 

응용 프로그램 일반 설정:

사이트 제목: 조직 이름을 입력합니다.

리포지토리 루트 경로: 기본 var/lib/gitea/data/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

 

 

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

Nginx SSL 종료 프록시로 구성하는 중입니다.

이 단계는 선택 사항이지만 권장됩니다. SSL 종료는 Nginx HTTPS를 통해 Gitea에 액세스할 수 있도록 Gitea 응용 프로그램과 웹 클라이언트 사이의 중간 지점 역할을 한다는 의미입니다.

Nginx를 역방향 프록시로 사용하려면 서버의 공용 IP를 가리키는 도메인 또는 하위 도메인이 있어야 합니다. 이 예에서는 git.example.com을 사용합니다.

먼저 Nginx를 설치하고 아래 안내를 사용하여 무료 SSL 암호화 인증서를 생성합니다.

 

 

 

Ubuntu 20.04 Nginx를 설치하는 방법

Ubuntu 20.04에서 암호화하여 Nginx를 보호합니다.

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

# /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 20.04 Gitea를 설치하는 과정을 안내합니다. Gitea 인스턴스를 구성하고 첫 번째 프로젝트를 생성하는 방법에 대한 자세한 내용은 Gitea 설명서 페이지를 참조하십시오.

반응형