Gitea Vs Gitlab
1. 목적 및 설계 철학
- Gitea: 경량화된 Git 서비스로, 빠른 성능과 낮은 리소스 요구 사항을 목표로 함.
- 간단한 설치와 유지 관리 제공, 주요 기능은 Git 저장소 관리에 집중
- Gitlab: 더 많은 기능과 통합 도구를 제공하는 풀 스택 DevOps 플랫폼.
- 코드 저장소외에도 CI/CD, 코드 리뷰, 이슈 추적, 위키, 보안 기능 등을 포함함.
2. 성능 및 리소스 요구 사항
- Gitea: 적은 메모리와 CPU를 사용하며 가벼운 서버 환경에서도 원활하게 동작함.
- 설치 및 배포가 매우 간단하고 Docker 이미지 또한 매우 가벼움.
- Gitlab: 다양한 기능을 제공하지만 그만큼 상대적으로 높은 리소스(메모리 & CPU)를 요구함.
- 특히 Gitlab의 다양한 통합 기능을 모두 사용한다면 더 많은 리소스가 필요함.
<br.
3. 기능 제공
- Gitea: 기본적인 Git 저장소 관리, 이슈 트래킹, 간단한 CI/CD 기능 등 주로 Github의 핵심 기능에 초점이 맞춰져 있음.
- Gitlab: GitLab CI/CD, Container Registry, 코드 품질 분석, 보안 스캔, 인프라 자동화 등 많은 DevOps 기능을 포함함.
- 이로 인해 단일 플랫폼에서 개발 라이프사이클을 관리하기에 매우 좋음.
4. 확장성
- Gitea: 단순하고 가벼운 구조로 인해 소규모 팀이나 프로젝트에 적합
- 대규모 환경에서는 기능 확장이나 플러그인 활용에 한계가 명확함.
- GitLab: 엔터프라이즈급 확장성과 기능을 제공하며, 다양한 확장 기능을 위한 앱과 플러그인을 지원함.
Gitea를 쓰는 이유
사내용 Git 서버를 도입하려고 오픈소스를 찾아보던 중에 Gitea
와 Gitlab
를 발견하게 되었다.
대규모 환경이 아니였고 단순히 버전 관리만을 목적으로 하고 있었기에
무거운 Gitlab 보다는 Gitea를 선택하였다.
관련 예제 또한 많이 나와있는 상태여서 나쁘지 않은 선택인 것 같다.
작고 경량화된 환경 에서 git 저장소 관리만 필요하고 빠른 설정 및 유지보수를 원한다면 Gitea
가 좋은 선택이고,
엔터프라이즈급 기능과 DevOps 통합 이 필요하고 높은 리소스를 감당할 수 있는 서버를 보유하고 있다면 Gitlab
이 더 나은 선택이다.
물론, 관리자의 재량에 달렸다.
설치
먼저 gitea 프로젝트를 위한 디렉토리 하나를 생성하자.
$ mkdir -p /home/$USER/gitea/data
그리고 vi
를 사용하여 docker-compose.yaml 파일을 아래와 같이 작성하자.
$ cd /home/$USER/gitea
$ vi docker-compose.yaml
docker-compose.yaml
networks:
gitea:
external: false
driver: bridge
volumes:
gitea-data: {}
services:
server:
image: gitea/gitea:1.22.2
container_name: gitea
depends_on:
- db
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=db:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
db:
image: mysql:8
restart: always
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
networks:
- gitea
volumes:
- type: volume
source: gitea-data
target: /var/lib/mysql
DB의 경우 MySQL
또는 PostgreSQL
을 선택할 수 있는데 자세한 yaml은 공식 설치 가이드를 참고하도록 하자.
실행
1. docker-compose up
$ docker-compose up -d --build
2. http://{gitea_server_ip}:3000 접속
3. 초기 설정 화면 확인 후 설치하기 클릭
시간이 조금 걸릴 수 있다. 문제가 생긴 것은 아니니 기다려보자.
불안하다면 docker-compose logs -f server
로 gitea 서버 로그를 확인해보도록 하자.
4. 계정 생성
5. 메인 화면