설치형 Gitea는 GitHub, Bitbucket 및 GitLab과 유사한 솔루션이다.
Gitea는 Go로 이루어져 있고 Lite한 환경에서도 운영이 가능하다.
각 Git 형상 관리 솔루션의 장단점 비교는 해당 페이지에서 가능하다.
Gitea compared to other Git hosting options - Docs
다음은 ubuntu 20.04 에서 Gitea를 설치하는 방법이다.
우선 패키지를 업데이트하고 Gitea의 필요 Release를 다운로드 받고 권한을 할당한다.
해당 Release 정보는 해당 페이지에서 가능하다.
sudo apt update
wget -O gitea https://dl.gitea.io/gitea/1.15.4/gitea-1.15.4-linux-amd64
chmod +x gitea
Gitea를 사용하기 위해서는 Git과 DB가 필요하다.
기본적으로 DB는 SQLite를 Default로 설치하지만
예제에서는 mariadb를 사용하여 설치하도록 진행한다.
우선 GIt을 설치하고 버전을 확인하여 설치를 확인한다.
sudo apt -y install git
git --version
이후 DB를 설치한다. 현재 Ubuntu 20.04 apt 최신 패키지에서 지원하는 Mariadb 10.3을 설치하도록 하겠다.
설치 후 기본 보안을 셋팅한다. root의 비밀번호 설정 후 원격 접속을 제거하고 test Database 관련을 제거하여 Clean 하도록 한다.
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
설정 후 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;
해당 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/으로 둔다.
'IT ETC' 카테고리의 다른 글
UML 및 ERD를 편리하게 관리해보자 (0) | 2021.11.09 |
---|---|
설치형 Git 인 Git Lab을 설치해보자 (0) | 2021.10.19 |
Snapd - Linux 통합 패키지 관리 툴 (0) | 2021.07.30 |
Windows 패키지 관리 프로그램 Chocolatey (0) | 2021.07.29 |
Windows Terminal 소개 (0) | 2021.07.29 |
최근댓글