Git 솔루션 Gitea 설치하기
설치형 Gitea는 GitHub, Bitbucket 및 GitLab과 유사한 솔루션이다.
Gitea는 Go로 이루어져 있고 Lite한 환경에서도 운영이 가능하다.
각 Git 형상 관리 솔루션의 장단점 비교는 해당 페이지에서 가능하다.
Gitea compared to other Git hosting options - Docs
다음은 ubuntu 20.04 에서 Gitea를 설치하는 방법이다.
우선 패키지를 업데이트하고 Gitea의 필요 Release를 다운로드 받고 권한을 할당한다.
해당 Release 정보는 해당 페이지에서 가능하다.
1. apt update 이후 gitea-1.15.4 버전을 설치 합니다. 권한과 함께 ~
sudo apt update
wget -O gitea https://dl.gitea.io/gitea/1.15.4/gitea-1.15.4-linux-amd64
chmod +x gitea
2. 아래 실제로 설치 하는 화면 구성입니다.
Gitea를 사용하기 위해서는 Git과 DB가 필요하며, 기본적으로 DB는 SQLite를 Default로 설치하지만
예제에서는 mariadb를 사용하여 설치하도록 진행합니다.
우선 GIt을 설치하고 버전을 확인하여 설치를 확인합니다.
3. apt 로 git 을 install 후 git 버전을 확인합니다.
sudo apt -y install git
git --version
이후 DB를 설치한다. 현재 Ubuntu 20.04 apt 최신 패키지에서 지원하는 Mariadb 10.3을 설치하도록 하겠다.
설치 후 기본 보안을 셋팅한다. root의 비밀번호 설정 후 원격 접속을 제거하고 test Database 관련을 제거하여 Clean 하도록 한다.
4. 아래는 mariadb-server client 버전을 확인합니다.
sudo apt install -y mariadb-server mariadb-client
sudo mysql_secure_installation
Enter current password for root (enter for none): 엔터
Set root password? [Y/n]: Y
New password: 설정할비밀번호
Re-enter new password: 설정할비밀번호
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
sudo systemctl restart mysql
5. MariaDB 생성해서 database를 생성해 봅니다.
설정 후 mariadb에 접속하여 gitea Database 및 관리 계정을 만들어 권한을 준다.
CREATE DATABASE gitea CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'gitea^epdlxjxla789';
GRANT ALL ON gitea.* TO 'gitea'@'localhost';
FLUSH PRIVILEGES;
6.해당 DB 설정 후 Gitea를 실행할 계정을 만들고 해당 계정에 Gitea 관련 폴더를 생성하여 권한을 설정한다.
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/gitea \
gitea
sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown gitea:gitea /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir /etc/gitea
sudo chown root:gitea /etc/gitea
sudo chmod 770 /etc/gitea

다운로드 받은 gitea를 bin 폴더로 복사한다.
cp gitea /usr/local/bin/gitea
위 작업이 끝나면 Gitea를 Service로 등록하여 편하게 관리하도록 Service를 구축한다.
sudo vi /etc/systemd/system/gitea.service
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
#After=mysqld.service
#After=postgresql.service
#After=memcached.service
#After=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
RestartSec=2s
Type=simple
User=gitea
Group=gitea
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024 uncomment
# the two values below
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target

저장 후 service demon을 reload하고 Gitea Service를 시작한다.
sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea
sudo systemctl status gitea

http://서버아이피:3000 으로 접속한 후 회원가입 버튼을 누른다.
아래와 같은 화면이 뜰것인데, 아까 Mysql을 설정하였으니 DB를 Mysql로 바꾼 후 설정했던 DB 계정의 아이디와 비밀번호를 입력한다.
ssh서버 도메인은 아이피 또는 자신이 쓸 도메인을 입력하고,
gitea base url은 http://localhost:3000/으로 둔다.

서버IP : / port 는 3000 입력하면 아래와 같은 화면이 뜨게 된다.
http://192.168.100.10:3000/

