웹사이트 검색

CentOS 7에 Gogs Go Git 서비스를 설치하는 방법


이 페이지에서

  1. 1단계 - EPEL 저장소 설치
  2. 2단계 - PostgreSQL 데이터베이스 설치 및 구성
  3. 3단계 - Go 및 Git 설치
  4. 4단계 - Gogs Go Git 서비스 설치
  5. 5단계 - Gogs Go Git 서비스 구성
  6. 6단계 - CentOS 7에서 Gogs를 서비스로 실행\n
  7. 7단계 - Nginx를 Gogs용 리버스 프록시로 설치 및 구성\n
  8. 8단계 - 테스트
    1. 참조

    Gogs는 Go 언어로 작성된 무료 오픈 소스 Git 서비스입니다. 최소한의 하드웨어 서버에서 자체 Git 서버를 생성하고 실행할 수 있는 간편한 자체 호스팅 Git 서비스입니다. Gogs 웹 UI는 GitHub와 매우 유사하며 MySQL, PostgreSQL 및 SQLite 데이터베이스를 지원합니다.

    이 튜토리얼에서는 CentOS 7 서버에서 Gogs를 사용하여 자체 Git 서비스를 설치하고 구성하는 방법을 단계별로 보여줍니다. 이 튜토리얼에서는 CentOS 7 시스템에 Go 설치, PostgreSQL 설치, Go 애플리케이션용 리버스 프록시로 Nginx 웹 서버 설치/구성 등의 주제를 다룹니다.

    • CentOS 7 서버
    • 루트 권한\n

    1. EPEL 저장소 설치
    2. PostgreSQL 데이터베이스 설치 및 구성
    3. Go 및 Git 설치
    4. Gogs Go Git 서비스 설치
    5. Gogs Go Git 서비스 구성
    6. CentOS 7에서 Gogs를 서비스로 실행\n
    7. Nginx를 Gogs용 리버스 프록시로 설치 및 구성\n
    8. 설정 테스트

    1단계 - EPEL 저장소 설치

    이 가이드에서 수행할 첫 번째 단계는 EPEL 저장소를 설치하는 것입니다. 아래 명령을 사용하여 EPEL repo를 설치합니다.

    sudo yum -y install epel-release

    EPEL Repository가 CentOS 7 서버에 추가되었습니다.

    2단계 - PostgreSQL 데이터베이스 설치 및 구성

    Gogs는 MySQL, PostgreSQL, SQLite3, MSSQL 및 TiDB 데이터베이스 시스템을 지원합니다. 이 가이드에서는 PostgreSQL을 Gogs 설치용 데이터베이스로 사용합니다.

    아래 yum 명령을 사용하여 PostgreSQL 데이터베이스를 설치합니다.

    sudo yum -y install postgresql-server postgresql-contrib

    설치가 완료되면 데이터베이스를 초기화하고 PostgreSQL을 구성해야 합니다.

    아래 명령을 실행합니다.

    sudo postgresql-setup initdb

    다음으로 로컬 IP 주소 127.0.0.1에서 실행되도록 PostgreSQL을 구성하고 로컬 호스트 주소의 모든 사용자가 md5 인증으로 로그인할 수 있도록 합니다.

    Postgres 사용자로 로그인합니다.

    su - postgres

    이제 데이터 디렉토리로 이동하고 vim을 사용하여 postgresql.conf 파일을 편집하십시오.

    cd data/
    vim postgresql.conf

    listen_addresses 줄의 주석을 제거하고 값을 127.0.0.1로 변경합니다.

    listen_addresses = '127.0.0.1'

    저장 및 종료.

    인증 구성을 위해 pg_hba.conf를 편집합니다.

    vim pg_hba.conf

    로컬 127.0.0.1/32 호스트 구성에서 아래와 같이 인증 방식을 md5로 변경합니다.

    host    all             all             127.0.0.1/32            md5

    저장 및 종료.

    이제 PostgreSQL 서비스를 시작하고 시스템 부팅 시마다 실행되도록 설정합니다.

    sudo systemctl start postgresql
    sudo systemctl enable postgresql

    PostgreSQL 데이터베이스가 CentOS 7 서버에 설치되었습니다. netstat 명령을 사용하여 확인하십시오.

    netstat -plntu

    그리고 PostgreSQL이 포트 5432를 사용하여 로컬 IP 주소 127.0.0.1에서 실행되고 있는지 확인하십시오.

    다음으로 Gogs 설치를 위한 새 데이터베이스를 생성합니다. 사용자 git을 사용하여 gogs_production이라는 새 데이터베이스를 생성합니다.

    Postgres 사용자로 로그인하고 psql 셸에 액세스합니다.

    su - postgres
    psql

    아래 명령을 사용하여 새 git 사용자를 만듭니다.

    CREATE USER git CREATEDB;
    \password git

    이제 gogs_production 데이터베이스를 생성하고 소유자를 git user로 설정합니다.

    CREATE DATABASE gogs_production OWNER git;
    exit

    Gogs 설치를 위한 PostgreSQL 데이터베이스가 생성되었습니다.

    3단계 - Go 및 Git 설치

    아래의 yum 명령을 사용하여 리포지토리에서 Git을 설치합니다.

    sudo yum -y install git

    이제 새 사용자 git을 시스템에 추가하십시오.

    useradd -m -s /bin/bash git
    passwd git

    git 사용자로 로그인하고 새 로컬 디렉토리를 만듭니다.

    su - git
    mkdir -p /home/git/local

    로컬 디렉토리로 이동하고 wget 명령을 사용하여 최신 Go 버전을 다운로드합니다.

    cd ~/local
    wget https://dl.google.com/go/go1.9.2.linux-amd64.tar.gz

    go 압축 파일을 추출한 다음 아카이브 파일을 제거하십시오.

    tar -xf go1.9.2.linux-amd64.tar.gz
    rm -f go1.9.2.linux-amd64.tar.gz

    Go 바이너리 파일은 ~/local/go 디렉터리에 다운로드되었습니다. 이제 환경을 설정해야 하므로 git 사용자로 시스템에서 go 명령을 실행하기 위해 GOROOT 및 GOPATH 디렉터리를 정의해야 합니다.

    아래 명령을 실행하십시오.

    cd ~/
    echo 'export GOROOT=$HOME/local/go' >> $HOME/.bashrc
    echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc
    echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> $HOME/.bashrc

    그리고 아래와 같이 source ~/.bashrc 명령을 실행하여 bash를 다시 로드합니다.

    source ~/.bashrc

    기본 쉘로 bash를 사용하고 있는지 확인하십시오.

    이제 go 명령을 실행하여 버전을 확인하십시오.

    go version

    그리고 아래와 같이 결과가 나오는지 확인합니다.

    Go는 이제 git 사용자로 시스템에 설치됩니다.

    4단계 - Gogs Go Git 서비스 설치

    git 사용자로 로그인하고 아래와 같이 go 명령을 사용하여 GitHub에서 Gogs를 다운로드합니다.

    su - git
    go get -u github.com/gogits/gogs

    이 명령은 모든 Gogs 소스 코드를 GOPATH/src 디렉토리에 다운로드합니다.

    $GOPATH/src/github.com/gogits/gogs 디렉토리로 이동하고 아래 명령을 사용하여 gogs를 빌드합니다.

    cd $GOPATH/src/github.com/gogits/gogs
    go build

    그리고 오류가 없는지 확인하십시오.

    이제 아래 명령어를 사용하여 Gogs Go Git 서비스를 실행합니다.

    ./gogs web

    이 명령은 기본 포트 3000을 사용하여 공용 IP 주소에서 Gogs를 실행합니다.

    웹 브라우저를 열고 포트 3000으로 서버 IP 주소를 입력합니다.

    그리고 아래와 같은 결과를 얻어야 합니다.

    이제 Gogs가 CentOS 7 시스템에 설치됩니다. 이제 터미널로 돌아가 Ctrl + c를 눌러 종료합니다.

    5단계 - Gogs Go Git 서비스 구성

    이 단계에서는 Gogs에 대한 사용자 정의 구성을 생성합니다.

    gogs 설치 디렉토리로 이동하여 새 custom/conf 디렉토리를 만듭니다.

    cd $GOPATH/src/github.com/gogits/gogs
    mkdir -p custom/conf/

    기본 구성을 사용자 지정 디렉터리에 복사하고 vim을 사용하여 편집합니다.

    cp conf/app.ini custom/conf/app.ini
    vim custom/conf/app.ini

    [server] 섹션에서 서버 HOST_ADDR을 127.0.0.1로 변경합니다.

    [server]
    PROTOCOL = http
    DOMAIN = localhost
    ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
    HTTP_ADDR = 127.0.0.1
    HTTP_PORT = 3000

    [데이터베이스] 섹션에서 자신의 데이터베이스 정보로 모든 것을 변경하십시오.

    [database]
    DB_TYPE = postgres
    HOST = 127.0.0.1:5432
    NAME = gogs_production
    USER = git
    PASSWD =

    저장 및 종료.

    이제 다음 명령을 실행하여 구성을 확인하십시오.

    ./gogs web

    그리고 아래와 같이 결과가 나오는지 확인합니다.

    Gogs는 이제 맞춤형 구성과 포트 3000을 사용하는 로컬 IP 주소 127.0.0.1로 실행됩니다.

    6단계 - CentOS 7에서 Gogs를 서비스로 실행

    이 단계에서는 CentOS 7 시스템에서 Gogs를 서비스로 구성합니다. /etc/systemd/system 디렉토리 아래에 새로운 서비스 파일 구성 gogs.service를 생성합니다.

    /etc/systemd/system 디렉토리로 이동하고 vim 편집기를 사용하여 새 서비스 파일 gogs.service를 만듭니다.

    cd /etc/systemd/system
    vim gogs.service

    여기에 다음 gogs 서비스 구성을 붙여넣습니다.

    [Unit]
    Description=Gogs
    After=syslog.target
    After=network.target
    After=mariadb.service mysqld.service postgresql.service memcached.service redis.service

    [Service]
    # Modify these two values and uncomment them if you have
    # repos with lots of files and get an HTTP error 500 because
    # of that
    ###
    #LimitMEMLOCK=infinity
    #LimitNOFILE=65535
    Type=simple
    User=git
    Group=git
    WorkingDirectory=/home/git/go/src/github.com/gogits/gogs
    ExecStart=/home/git/go/src/github.com/gogits/gogs/gogs web
    Restart=always
    Environment=USER=git HOME=/home/git

    [Install]
    WantedBy=multi-user.target

    저장 및 종료.

    이제 systemd 서비스를 다시 로드합니다.

    systemctl daemon-reload

    gogs 서비스를 시작하고 systemctl 명령을 사용하여 시스템 부팅 시마다 실행되도록 활성화합니다.

    systemctl start gogs
    systemctl enable gogs

    Gogs는 이제 CentOS 7 시스템에서 서비스로 실행됩니다.

    다음 명령을 사용하여 확인하십시오.

    netstat -plntu
    systemctl status gogs

    그러면 아래와 같은 결과를 얻을 수 있습니다.

    7단계 - Nginx를 Gogs용 리버스 프록시로 설치 및 구성

    이 단계에서는 Nginx를 Gogs용 리버스 프록시로 설치 및 구성합니다. EPEL 저장소에서 Nginx 패키지를 설치합니다.

    아래 yum 명령을 실행하여 Nginx를 설치합니다.

    yum -y install nginx

    설치가 완료되면 Gogs에 대한 새 가상 호스트 구성을 생성해야 합니다.

    따라서 /etc/nginx 구성 디렉토리로 이동하여 conf.d 디렉토리 아래에 새 가상 호스트 파일 gogs를 만듭니다.

    cd /etc/nginx/
    vim conf.d/gogs.conf

    다음 구성을 거기에 붙여넣으십시오.

    server {
        listen 80;
        server_name git.hakase-labs.co;

        location / {
            proxy_pass http://127.0.0.1:3000;
        }
    }

    저장 및 종료.

    다음으로 nginx 구성을 테스트하고 오류가 없는지 확인해야 합니다.

    nginx -t

    Nginx 서비스를 시작하고 시스템 부팅 시 실행되도록 활성화합니다.

    systemctl restart nginx
    systemctl enable nginx

    이제 Nginx 웹 서버가 설치되었습니다. 아래 netstat 명령을 사용하여 확인하십시오.

    netstat -plntu

    그러면 목록에 HTTP 포트 80이 표시됩니다.

    8단계 - 테스트

    웹 브라우저를 열고 주소 표시줄에 Gogs 설치 URL을 입력합니다.

    상단 페이지에서 모든 PostgreSQL 데이터베이스 정보를 입력합니다.

    이제 맨 아래 페이지로 스크롤하여 관리자 계정 설정 드롭다운을 클릭합니다.

    관리 사용자, 암호 및 이메일을 입력합니다.

    그런 다음 Gogs 설치 버튼을 클릭합니다.

    그러면 아래와 같이 Gogs 사용자 대시보드로 리디렉션됩니다.

    아래는 Gogs 관리 대시보드입니다.

    Gogs는 이제 PostgreSQL 데이터베이스 및 Nginx 웹 서버와 함께 CentOS 7 서버에 설치됩니다.

    참조