개인 Github 제작(Gitea) #1
프로젝트 진행 사유
해당 프로젝트는 작년에 동아리에서 사용할 깃허브가 있으면 정보 공유도 되고 좋을 것 같다는 선배에게 듣고 진행하였으나 어떠한 사유로 진행하지 못하였다.. 그래서 올해 다시 진행해보고 싶었다.
Git 자체 호스팅 서비스
Git 자체 호스팅 서비스들이 몇 가지 있다. 서비스는 클라우드형과 구축형으로 분류할 수 있다.
- 클라우드형 서비스: 깃헙(github), 깃랩(gitlab), 빗버킷(bitbucket)
- 구축형 서비스: 깃랩(gitlab), 곡스(gogs), 깃티(gitea)
서비스를 선택하기 위해 본 것은 무료로 사용할 수 있는지, Docs가 많이 있는지였다.
클라우드형 서비스는 전부 사용하는 비용이 발생한다. 그래서 구축형 서비스들을 선택하게 되었고 그 중에 무료로 사용할 수 있는 것은 gogs와 gitea이다.
결국 선택한 서비스는 gitea이다.
Gitea
gitea는 2016년 gogs에서 포크되어 발전된 서비스이다.
go를 사용하여 만들어졌기 때문에 go가 지원하는 모든 플랫폼(Windows, Linux, macOS 등)에서 사용할 수 있다.
gitea는 차 한 잔과 함께하는 git으로 컨셉을 잡으며 고통 없는 자체 호스팅 Git 서비스라고 되어 있어 설치하기 쉽다고 한다.
개발 환경 구성
Gitea는 Docker를 이용해 구성할 수도 있다.
그래서 docker-compose를 이용하면 로컬에서 테스트를 하고 동아리 서버에 옮기는 게 더 편하겠다 판단하여 도커를 이용하기로 했다.
설치 과정
- git 설치
sudo apt update
sudo apt install git
- gitea 설치
도커를 통해 이미지를 받을 것이기 때문에 gitea는 따로 설치할 필요가 없다.서비스를 호스팅할 디렉터리를 만들고 docker-compose.yml를 작성한다.mkdir ~/gitea cd ~/gitea nano docker-compose.yml
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.18.5
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
mysql의 계정과 패스워드는 자신의 것으로 설정하면 된다.
그리고 데이터베이스도 만들어놔줘야 한다.
docker-compose up -d
d옵션으로 백그라운드에서 실행하도록 한다.
```
실행이 성공적으로 마치게 되면 127.0.0.1:3000을 접속하면 된다.
위 페이지로 설정하고 나면 성공적으로 끝 마칠 수 있다.
앞으로 진행 계획
동아리 컨셉에 맞게 디자인을 수정하고 https를 적용시킬 계획이다.
마지막으로는 동아리 메인 사이트의 UI에 적용시킬 것이다.