메뉴 닫기

Gogs 설치 및 설정 (Ubuntu 22.04)

Gogs란 Go Git Service 의 약자로, Go 언어로 개발된 오픈소스 Git 서버입니다.

Gogs 는 경량 어플리케이션이며 Gitlab에 비해 저사양 환경에서 구축 가능하다는 장점이 있습니다.

Git 이란 분산버전관리시스템(DVCS)이며 파일의 변경사항을 추적하며 여러명이 하나의 프로젝트를 관리하며 조율하는데 사용합니다.

 

[Gogs 특징]

  • 경량성 : 경량 어플리케이션이며 빠른 실행속도를 제공함
  • 사용 편의성 : 사용자 친화적 인터페이스를 제공하여 git 레포지터리 관리에 용이함
  • 다국어 지원
  • 이슈 트래킹 : 간단한 이슈 트래킹 시스템이 내장되어 관리에 용이함
  • 플러그인 지원 : 다양한 플러그인을 통해 Gogs 기능 확장 가능

 

1. DB 설치 및 계정 생성

Gogs 를 사용하기 위해서는 Mysql 5.7 버전 이상이거나 SQLite, PostgreSQL 이 서버에 설치되어 있어야 합니다.

Ubuntu 22.04 환경에서 기본적으로 제공되는 Mysql 8.0 버전으로 설치를 진행하겠습니다.

 

# apt-get -y update

# apt install -y mysql-server

# mysql -V

 

# mysql -u root -p

mysql > create database gogs character set utf8mb4 collate utf8mb4_general_ci;

mysql > show databases;

 

mysql > use mysql;

mysql > alter user root@localhost identified by ‘[DB root 패스워드]’;

mysql > flush privileges;

 

mysql > create user gogs@localhost identified by ‘[DB gogs 패스워드]’;

mysql > grant all privileges on gogs.* to gogs@localhost;

mysql > flush privileges;

 

2. Git 설치 (1.8.3 버전 이상 설치)

# apt-get -y install git

# git version

 

3. Gogs 설치 및 실행

Gogs은 바이너리와 소스파일을 통해 설치 진행가능하며 바이너리로 테스트 진행하겠습니다.

바이너리 설치 : https://gogs.io/docs/installation/install_from_binary

소스파일 설치 : https://gogs.io/docs/installation/install_from_source

 

# wget https://dl.gogs.io/0.13.0/gogs_0.13.0_linux_amd64.tar.gz

# tar xvzf gogs_0.13.0_linux_amd64.tar.gz

 

# cd gogs

# ./gogs web .

    -> 해당 명령어 실행 후 3000번 포트를 통해 웹 콘솔 접근이 가능합니다. (ex http://192.168.0.193:3000)

    -> 명령어 중지시 Gogs 실행이 중단되며 명령어를 서비스화시켜 백그라운드 작동을 권장합니다.

 

4. 웹 콘솔 페이지 설정

gogs 실행 후 설정페이지에서 일부 설정의 수정이 필요하며 수정할 부분은 아래와 같습니다.

[데이터베이스 설정]

데이터베이스 유형 : MySQL

비밀번호 : [DB Gogs 패스워드]

 

[애플리케이션 일반 설정]

데몬 사용자 계정 : root

도메인 : 임의의 도메인

애플리케이션 URL : http://서버 IP:3000/

 

이후 하단의 [Gogs 설치하기] 버튼을 클릭 후 잠시 대기하면 설치가 진행됩니다.

** 페이지를 찾을 수 없다는 문구 출력시 애플리케이션 URL 부분이 수정되지 않아 발생하는 문제로, 해당 부분을 수정후 다시 접근합니다.

 

5. 사용자 계정 생성 및 저장소 생성

사용자 계정을 생성 후 로그인하여 대시보드 우측 “+” 버튼을 통해 저장소를 추가합니다.

저장소 생성시 다음과 같이 저장소의 주소를 확인가능합니다.

http://192.168.0.193:3000/[사용자계정명]/sample.git

 

 

6. 파일 업로드 (Client)

클라이언트 측에서 저장소로 파일을 업로드 하는 방법입니다.

업로드시 git을 사용하므로 클라이언트 측에도 git 설치가 필요합니다.

이후 php 샘플 파일 업로드와 대용량 파일 업로드를 진행해보겠습니다.

 

# dnf install -y git

# git version

# mkdir php-sample && cd php-sample

# echo “<?php echo ‘Good Job !!’; phpinfo(); ?>” > index.php

# dd if=/dev/zero of=file.bin bs=100M count=10

 

# git init -b main

   -> 로컬 main 저장소를 초기화 합니다. (/root/php-smaple/.git)

# git remote add origint http://192.168.0.193:3000/[사용자 계정명]/sample.git

   -> 원격 저장소를 origin 이라는 이름을 사용하여 로컬 저장소에 추가합니다.

# git remote -v

   -> 현재 연결된 원격 저장소를 확인합니다.

   -> 연결 해제시 git remote remove [저장소 이름]

# git add .

   -> 현재 디렉터리의 변경사항을 로컬 저장소의 스테이징 영역에 추가합니다.

   -> . 은 현재 디렉터리의 모든 파일을 의미하며 git push 를 입력해야 서버로 전송됩니다.

 

# git config –global user.email “[client 메일]”

# git config –global user.name “[client 이름]”

   -> 해당 과정을 진행하지 않을 시 신원확인이 되지 않아 commit 과정에서 진행되지 않습니다.

# git commit -m “[커밋메세지]”

   -> m 옵션을 추가하여 커밋의 의도를 명확하게 파악할 수 있게 메세지를 입력합니다.

 

# git push -u origin main

   -> git push 를 통해 로컬저장소에서 원격저장소(서버)로 전송합니다.

   -> u 옵션은 원격 저장소의 branch에 로컬 branch를 연결하는 옵션이며 이후 git push 만 사용해도 됩니다.

 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x