搭建自己的Git服務器-Gitea安裝教程

0x01 爲啥要費勁的自己搭一個git服務器

本人空閒時間喜歡自己鼓搗一些項目,但是又不喜歡在本地存,所有都放到github上了,最近去Github看了一下,又多又亂,github儼然成了一個demohub了,所以有了建一個自己的代碼倉庫管理自己代碼的想法。另一方面,也由於Github的訪問速度有點慢,所以說幹就幹,在自己的服務器上搭了這麼一個gitea服務器。

調查了一些市面上的Git服務器,大概有這麼三個gogs、gitlab、gitea。

  • gogs是使用go語言開發的一個輕量級的git服務器。
  • gitlab算是目前企業使用較多,也比較火的一個git自建服務應用,但是對於個人來說,服務器的配置可能跟不上。
  • gitea是gogs的一個克隆版本,但是相比較gogs,是採用社區進行維護的,問題解決的也比較及時。

因此我這裏用gitea搭建了一個自己的git服務器,用來作爲自己的一個代碼倉庫,一個方便管理,另一個是方便裝逼

0x02 準備工作

我自己搭建的使用的存儲數據庫採用的是mysql,當然可以根據gitea的文檔自己選擇和搭建。

這裏放一下gitea的官網,有需要的可以參照英文文檔步驟自己搭建。

首先要安裝mysql數據庫,由於之前我已經安裝過了,這裏就不做安裝步驟的,有需要的自己上網搜索。

Mysql

1、 以root用戶登錄數據庫。

[root@renhj ~]# mysql -u root -p
Enter password:

2、 創建gitea所需的數據庫用戶,這裏我用的用戶名爲gitea,密碼爲!QAZ2wsx, 你可以用你熟悉的比較安全的密碼。

如果你的gitea和mysql是在同一臺服務器上,按照下面的創建:

mysql> CREATE USER 'gitea' IDENTIFIED BY '!QAZ2wsx';

對於不在一臺服務器上的,則可以按照下面的語句進行創建:

mysql> CREATE USER 'gitea'@'%' IDENTIFIED BY '!QAZ2wsx';

%是對於所有外部服務器進行匹配的,如果你只想限定某一臺服務器登錄mysql,可以把%換成你的gitea服務器的IP地址。

3、創建gitea所需的數據庫giteadb,編碼用utf8mb4.

mysql> CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';

4、授權數據庫的權限。

git服務和mysql在一臺服務器上的:

mysql> GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea';

git服務和mysql不在一臺服務器上的:

mysql> GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea'@'%';

可以把%換成你的gitea服務器的IP地址。

mysql> FLUSH PRIVILEGES;

Git

檢查服務器上是否安裝了git

[root@renhj ~]# git --version
git version 1.8.3.1

如果沒有安裝的話,用yum或者二進制包進行安裝

[root@renhj ~]# sudo yum install git -y

系統

1、創建運行gitea服務的系統用戶

[root@renhj ~]# groupadd git
[root@renhj ~]# adduser --system --shell /bin/bash --comment 'Git Version Control' --user-group --home-dir /home/git -m git

2、創建運行所需的目錄

[root@renhj ~]# mkdir -p /var/lib/gitea/{custom,data,log}
[root@renhj ~]# chown git:git /var/lib/gitea/{data,indexers,log}
[root@renhj ~]# mkdir /etc/gitea
[root@renhj ~]# chown root:git /etc/gitea/
[root@renhj ~]# chmod 770 /etc/gitea/

3、下載二進制文件

[root@renhj ~]# mkdir /usr/local/bin/
[root@renhj ~]# cd /usr/local/bin/
[root@renhj bin]# wget -O gitea https://dl.gitea.io/gitea/1.9.6/gitea-1.9.6-linux-amd64
[root@renhj bin]# chmod +x gitea

4、將gitea做成服務

[root@renhj ~]# vim /etc/systemd/system/gitea.service
[Unit]
Description=Gitea (Git with a cup of tea)
After=network.target
Requires=mysqld.service

[Service]
RestartSec=2s
Type=simple
User=git
Group=git
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

[Install]
WantedBy=multi-user.target

5、啓動gitea

[root@renhj ~]# systemctl daemon-reload 
[root@renhj ~]# systemctl enable gitea
[root@renhj ~]# systemctl start gitea

啓動之後可以通過http://[you ip]:3000進行訪問,或者可以通過nginx做一個反向代理,nginx的安裝這裏就不寫了,我把反向代理的配置貼出來。

6、nginx配置反向代理

[root@renhj bin]# vim /etc/nginx/conf.d/gitea.conf 
server {
	listen 80;
	server_name git.renhj.org;

	location / {
		proxy_pass http://127.0.0.1:3000/;
		proxy_set_header Host $http_host;
		proxy_set_header X-Forwarded-For $remote_addr;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection $http_connection;	
	}
}

同時不要忘了在你的域名解析上加上一條git的解析。

7、註冊git管理員及配置

這裏已經算是安裝完成了,但是gitea的管理員是沒有的,數據庫其他配置也沒有配置。

通過訪問/install頁面進行配置,這裏我的地址是http://git.renhj.org/install

我這裏已經配置完成了,所以就不展示了,這裏你配置上自己的數據庫信息就行之,之後會讓你進行註冊,第一個註冊的用戶是管理員賬戶。

8、配置倉庫地址

我查了很多網上的教程,很多教程到上一步就結束了,其實不是。還需要配置一下git代碼的地址,不然你git推送和拉取都是localhost的地址。

將/etc/gitea/app.ini文件裏server標籤下的SSH_DOMAIN、DOMAIN、ROOT_URL都改爲你自己配置的域名如下。

[root@renhj bin]# vim /etc/gitea/app.ini 
[server]
SSH_DOMAIN       = git.renhj.org
DOMAIN           = git.renhj.org
HTTP_PORT        = 3000
ROOT_URL         = http://git.renhj.org/

當然還有一些配置如禁止註冊、郵箱配置,我這裏也不需要,就不配置了。如果你需要可以到官網上去找,或者聯繫我。

原文鏈接:搭建自己的Git服務器-Gitea安裝教程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章