共計(jì) 4375 個(gè)字符,預(yù)計(jì)需要花費(fèi) 11 分鐘才能閱讀完成。
ubuntu 20.04 如何安裝 Gitea 自建 Git 服務(wù)器環(huán)境?Gitea 是一個(gè)用 Go 編寫的快速且易于使用的自托管 Git 服務(wù)器應(yīng)用。Gitea 包括存儲(chǔ)庫(kù)文件編輯器、項(xiàng)目問(wèn)題跟蹤、用戶管理、通知、內(nèi)置 wiki 等等。Gitea 是一個(gè)輕量級(jí)的應(yīng)用程序,可以安裝在低功耗系統(tǒng)上。如果我們有在尋找具有更小的內(nèi)存占用的 Gitlab 替代品,并且您不需要 Gitlab 提供復(fù)雜的功能的,那我們可以使用比較簡(jiǎn)單的 Gitea。
在這篇文章中,我們搬瓦工中文網(wǎng)介紹了如何在 Ubuntu 20.04 上安裝和配置 Gitea。
第一、必備兼容環(huán)境
Gitea 安裝環(huán)境需要我們當(dāng)前服務(wù)器支持 SQLite、PostgreSQL 和 MySQL /MariaDB 作為數(shù)據(jù)庫(kù)后端。如果我們的數(shù)據(jù)比較小,可以用 SQLite 數(shù)據(jù)庫(kù),如果我們的數(shù)據(jù)較大建議使用 MySQL 或 PostgreSQL。
sudo apt update
sudo apt install sqlite3
第二、安裝 Gitea 服務(wù)
Gitea 提供 Docker 鏡像,可以從源代碼、二進(jìn)制文件和包安裝。我們將從二進(jìn)制安裝 Gitea。
1、安裝 Git:
sudo apt update
sudo apt install git
這里我們采用的是 Ubuntu 鏡像。
git –version
安裝完畢之后,我們用命令檢查版本。如果有反饋的數(shù)據(jù)版本說(shuō)明安裝完畢。
2、創(chuàng)建用戶
sudo adduser \
–system \
–shell /bin/bash \
–gecos ‘Git Version Control’ \
–group \
–disabled-password \
–home /home/git \
git
上面的命令創(chuàng)建了一個(gè)名為 git 的新用戶和組,并將主目錄設(shè)置為 /home/git。輸出將如下所示:
Adding system user `git’ (UID 112) …
Adding new group `git’ (GID 118) …
Adding new user `git’ (UID 112) with group `git’ …
Creating home directory `/home/git’ …
3、下載文件
前往 Gitea 下載頁(yè)面并下載適用于您的架構(gòu)的最新二進(jìn)制文件。在撰寫本文時(shí),最新版本為 1.10.2。如果有可用的新版本,請(qǐng)?jiān)谙旅娴拿钪懈?VERSION 變量。
使用 wget 下載 /tmp 目錄下的 Gitea 二進(jìn)制文件:
VERSION=1.14.1
sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
我們可以從任何位置運(yùn)行 gitea 二進(jìn)制文件。我們將遵循約定并將二進(jìn)制文件移動(dòng)到 /usr/local/bin 目錄:
sudo mv /tmp/gitea /usr/local/bin
使二進(jìn)制可執(zhí)行文件:
sudo chmod +x /usr/local/bin/gitea
運(yùn)行以下命令以創(chuàng)建目錄并設(shè)置所需的權(quán)限和所有權(quán):
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
上面的目錄結(jié)構(gòu)是 Gitea 官方文檔推薦的。/etc/gitea 目錄的權(quán)限設(shè)置為 770,以便安裝向?qū)Э梢詣?chuàng)建配置文件。安裝完成后,我們將設(shè)置更嚴(yán)格的權(quán)限。
4、創(chuàng)建系統(tǒng)單元文件
我們將 Gitea 作為系統(tǒng)服務(wù)運(yùn)行。
通過(guò)鍵入以下命令將示例 systemd 單元文件下載到 /etc/systemd/system 目錄:
sudo wget https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/systemd/gitea.service -P /etc/systemd/system/
然后我們需要啟動(dòng)。
sudo systemctl daemon-reload
sudo systemctl enable –now gitea
驗(yàn)證狀態(tài)。
sudo systemctl status gitea
看看返回值。
gitea.service – Gitea (Git with a cup of tea)
Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-05-06 05:32:04 UTC; 7s ago
Main PID: 77781 (gitea)
Tasks: 6 (limit: 470)
Memory: 130.6M
CGroup: /system.slice/gitea.service
└─77781 /usr/local/bin/gitea web –config /etc/gitea/app.ini
…
5、配置 Gitea
現(xiàn)在 Gitea 已下載并運(yùn)行,我們可以通過(guò) Web 界面完成安裝。默認(rèn)情況下,Gitea 在所有網(wǎng)絡(luò)接口上偵聽端口 3000 上的連接。如果我們的服務(wù)器上運(yùn)行著 UFW 防火墻,則需要打開 Gitea 端口。要允許端口 3000 上的流量,請(qǐng)輸入以下命令:
sudo ufw allow 3000/tcp
打開瀏覽器,輸入 http://YOUR_DOMAIN_IR_IP:3000,會(huì)出現(xiàn)類似如下畫面:
對(duì)應(yīng)我們需要填寫數(shù)據(jù)信息,才可以安裝,比較類似我們安裝網(wǎng)站 CMS 一樣。
如果不好安裝需要給文件授權(quán):
sudo chmod 750 /etc/gitea
sudo chmod 640 /etc/gitea/app.ini
第三、Nginx 配置為 SSL
對(duì)于是否安裝 SSL,我們是可選的,但是建議還是安裝。SSL 安裝后意味著 Nginx 將充當(dāng) Gitea 應(yīng)用程序和 Web 客戶端之間的中介點(diǎn),因此您可以通過(guò) HTTPS 訪問(wèn) Gitea。
首先,安裝 Nginx 并使用以下指南生成免費(fèi)的 Let’s Encrypt SSL 證書:
完成后,打開文本編輯器并編輯域服務(wù)器塊文件:
sudo nano /etc/nginx/sites-enabled/git.example.com
配置:
server {
listen 80;
server_name git.example.com;
include snippets/letsencrypt.conf;
return 301 https://git.example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name git.example.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
client_max_body_size 50m;
# Proxy headers
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/git.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/git.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/git.example.com/chain.pem;
include snippets/letsencrypt.conf;
include snippets/ssl.conf;
# log files
access_log /var/log/nginx/git.example.com.access.log;
error_log /var/log/nginx/git.example.com.error.log;
# Handle / requests
location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:3000;
}
}
根據(jù)需要修改。不要忘記用我們的 Gitea 域替換 git.example.com 并設(shè)置 SSL 證書文件的正確路徑。
最后要重啟 Nginx 生效。
sudo systemctl restart nginx
實(shí)際上我們安裝 SSL,最好是用免費(fèi)或者付費(fèi)證書,然后我們配置 SSL 文件即可。
接下來(lái),更改 Gitea 域和根 url。我們需要打開配置文件并編輯以下行:
sudo nano /etc/gitea/app.ini
編輯:
[server]
DOMAIN = git.example.com
ROOT_URL = https://git.example.com/
保存后重啟生效
sudo systemctl restart gitea
第四、配置郵件通知
如果我們希望我們的 Gitea 實(shí)例發(fā)送通知電子郵件,我們可以安裝 Postfix 或使用一些事務(wù)性郵件服務(wù),例如 SendGrid、MailChimp、MailGun 或 SES。
要啟用電子郵件通知,打開配置文件并編輯以下行:
sudo nano /etc/gitea/app.ini
編輯:
[mailer]
ENABLED = true
HOST = SMTP_SERVER:SMTP_PORT
FROM = SENDER_EMAIL
USER = SMTP_USER
PASSWD = YOUR_SMTP_PASSWORD
然后重啟生效
sudo systemctl restart gitea
第五、如何升級(jí) Gitea
如果有新版本,我們?nèi)绾紊?jí) Gitea。
1、先關(guān)閉服務(wù)
sudo systemctl stop gitea
2、下載最新文件到 /usr/local/bin 目錄
VERSION=
wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
sudo mv /tmp/gitea /usr/local/bin
3、執(zhí)行文件
sudo chmod +x /usr/local/bin/gitea
4、重啟生效
sudo systemctl restart gitea
這樣,我們就可以完成在服務(wù)器中部署 Gitea,如果我們是個(gè)人或者小團(tuán)隊(duì)使用是夠用的。