Overview
Gitea를 선택한 이유
사내 Git 서버를 구축하려고 찾아보던 중, Gitea와 GitLab에 대해서 알게되었습니다. 단순히 비교를 했을때, GitLab이 더 보편적으로 사용되고 있고, 참고할 문서도 많아서 GitLab을 선택했습니다. GitLab을 구축하면서 최소 사양 4 cores CPU, 4GB RAM로 많이 무겁다는 것을 알았습니다. 많은 3rd Party 서비스들의 통합이 주된 이유로 보였습니다.
이에 반해, Gitea는 최소 사양 1 cores CPU, 1GB RAM로 경량화가 되어있고, 필요한 기능(CI, Repository, webhooks 등)들이 다 있어서 Gitea를 선택하였습니다.
설치
$ sudo su -
$ mkdir gitea && cd gitea
// Mysql로 설치 (DB는 개인에 맞게 선택하면 됩니다.)
$ vi gitea-compose.yml
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.22.0
container_name: gitea
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:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: mysql:8
restart: always
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
networks:
- gitea
volumes:
- ./mysql:/var/lib/mysql
$ docker-compose -f gitea-compose.yml up -d
* 웹 브라우저에서 테스트
1. http://{ip}:3000 접속
2. 에러가 발생한다면, docker-compose logs -f 명령어를 통해서 디버깅
3. 초기 설정 화면 확인 후 아래에 설치하기 누르면 완료
4. 계정 생성
HTTPS 설정 (Self Signed Certificate) (링크)
// Container ID 확인 (gitea)
$ docker ps -a
// Container 접속
$ docker exec -it {Container ID} /bin/bash
// self Signed Certificate
# cd /data/gitea
# gitea cert --host {ip}
# chmod 644 cert.pem
# chmod 644 key.pem
// Config 수정
# cd /data/gitea/conf
# vi app.ini
[server]
APP_DATA_PATH = /data/gitea
DOMAIN = {ip}
SSH_DOMAIN = {ip}
PROTOCOL = https // 추가
HTTP_PORT = 3000
ROOT_URL = https://{ip}:3000/ // 수정
CERT_FILE = cert.pem // 추가
KEY_FILE = key.pem // 추가
DISABLE_SSH = false
SSH_PORT = 22
SSH_LISTEN_PORT = 22
LFS_START_SERVER = true
LFS_JWT_SECRET = 5CREAJZg7gYi...
OFFLINE_MODE = true
# exit
// 변경사항 저장
$ docker restart {Container ID}
* 웹 브라우저에서 테스트
1. https://{ip}:3000 접속
2. 에러가 발생한다면, docker-compose logs -f 명령어를 통해서 디버깅
3. 새로운 레포지토리 생성 후, HTTPS로 링크가 생긴것을 확인
'Git' 카테고리의 다른 글
[Spring] 소나큐브(SonarQube) CI 파이프라인 구축 (with Gitea) (0) | 2024.07.05 |
---|---|
[Gitea] Gitea를 통한 CI 파이프라인 구축 (with Nexus) (0) | 2024.06.14 |
[Gitea] Gitea를 통한 CI 파이프라인 구축 (with Docker Hub) (0) | 2024.06.05 |