Gitea是用Go編寫的自托管開源git服務(wù)器。 這是Gogs的分叉。 Gitea包括存儲(chǔ)庫文件編輯器,項(xiàng)目問題跟蹤,用戶管理,通知,內(nèi)置Wiki等。
Gitea是輕量級(jí)的應(yīng)用程序,可以安裝在低功率系統(tǒng)上。 如果您正在尋找內(nèi)存占用量少得多的Gitlab替代產(chǎn)品,并且不需要Gitlab提供的所有功能,那么您絕對(duì)應(yīng)該嘗試Gitea。
本教程說明了如何在Ubuntu 18.04上安裝和配置Gitea。 相同的說明適用于Ubuntu 16.04和任何其他基于Debian的發(fā)行版。
必要條件
Gitea支持SQLite,PostgreSQL和MySQL/MariaDB作為數(shù)據(jù)庫后端。
我們將使用SQLite作為Gitea的數(shù)據(jù)庫。 如果您的Ubuntu系統(tǒng)上未安裝SQLite,則可以通過以sudo用戶身份輸入以下命令來安裝它:
[linuxidc@linux:~/www.linuxidc.com]$ sudo apt update
[linuxidc@linux:~/www.linuxidc.com]$ sudo apt install sqlite3
安裝Gitea
Gitea提供了Docker映像,可以從源代碼,二進(jìn)制文件或作為軟件包安裝。
我們將從二進(jìn)制文件安裝Gitea。 完成以下步驟,在Ubuntu上安裝Gitea。
安裝Git
第一步是在您的服務(wù)器上安裝Git:
[linuxidc@linux:~/www.linuxidc.com]$ sudo apt install git
通過顯示Git版本來驗(yàn)證安裝:
[linuxidc@linux:~/www.linuxidc.com]$ git –version
git version 2.17.1
創(chuàng)建一個(gè)Git用戶
創(chuàng)建一個(gè)新的系統(tǒng)用戶,將通過鍵入以下內(nèi)容來運(yùn)行Gitea應(yīng)用程序:
該命令將創(chuàng)建一個(gè)名為git的新用戶和組,并將主目錄設(shè)置為/home/git。 輸出如下所示:
[linuxidc@linux:~/www.linuxidc.com]$ sudo adduser –system –group –disabled-password –shell /bin/bash –home /home/git –gecos ‘Git Version Control’ git
正在添加系統(tǒng)用戶”git” (UID 122)…
正在添加新組”git” (GID 127)…
正在將新用戶”git” (UID 122)添加到組”git”…
創(chuàng)建主目錄”/home/git”…
下載Gitea二進(jìn)制文件
訪問Gitea下載頁面,并下載適用于您的體系結(jié)構(gòu)的最新二進(jìn)制文件。 在撰寫本文時(shí),最新版本為1.10.2。 如果有可用的新版本,請(qǐng)?jiān)谙旅娴拿钪懈腣ERSION變量。
使用以下wget命令在/tmp目錄中下載Gitea二進(jìn)制文件:
[linuxidc@linux:~/www.linuxidc.com]$ VERSION=1.10.2
[linuxidc@linux:~/www.linuxidc.com]$ sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
gitea二進(jìn)制文件可以在任何位置運(yùn)行。 我們將遵循約定并將二進(jìn)制文件移至/usr/local/bin目錄:
[linuxidc@linux:~/www.linuxidc.com]$ sudo mv /tmp/gitea /usr/local/bin
賦予二進(jìn)制文件可執(zhí)行權(quán)限:
[linuxidc@linux:~/www.linuxidc.com]$ sudo chmod +x /usr/local/bin/gitea
運(yùn)行以下命令以創(chuàng)建目錄并設(shè)置所需的權(quán)限和所有權(quán):
[linuxidc@linux:~/www.linuxidc.com]$ sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
[linuxidc@linux:~/www.linuxidc.com]$ sudo chown git: /var/lib/gitea/{data,indexers,log}
[linuxidc@linux:~/www.linuxidc.com]$ sudo chmod 750 /var/lib/gitea/{data,indexers,log}
[linuxidc@linux:~/www.linuxidc.com]$ sudo mkdir /etc/gitea
[linuxidc@linux:~/www.linuxidc.com]$ sudo chown root:git /etc/gitea
[linuxidc@linux:~/www.linuxidc.com]$ sudo chmod 770 /etc/gitea
/etc/gitea目錄的權(quán)限設(shè)置為770,以便安裝向?qū)Э梢詣?chuàng)建配置文件。 安裝完成后,我們將設(shè)置更多限制性權(quán)限。
創(chuàng)建Systemd Unit位文件
Gitea提供了已配置為與我們的設(shè)置匹配的Systemd Unit文件。
通過鍵入以下命令將文件下載到/etc/systemd/system/目錄:
[linuxidc@linux:~/www.linuxidc.com]$ sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/
完成后,啟用并啟動(dòng)Gitea服務(wù):
[linuxidc@linux:~/www.linuxidc.com]$ sudo systemctl daemon-reload
[linuxidc@linux:~/www.linuxidc.com]$ sudo systemctl enable –now gitea
Created symlink /etc/systemd/system/multi-user.target.wants/gitea.service → /etc/systemd/system/gitea.service.
配置Gitea
現(xiàn)在已經(jīng)下載并運(yùn)行了Gitea,是時(shí)候通過Web界面完成安裝了。
默認(rèn)情況下,Gitea會(huì)偵聽所有網(wǎng)絡(luò)接口上端口3000上的連接。
如果您的服務(wù)器上運(yùn)行著UFW防火墻,則需要打開Gitea端口:
要允許端口3000上的流量,請(qǐng)輸入以下命令:
[linuxidc@linux:~/www.linuxidc.com]$ sudo ufw allow 3000/tcp
[sudo] linuxidc 的密碼:
防火墻規(guī)則已更新
規(guī)則已更新(v6)
打開瀏覽器,輸入http://git.linuxidc.com:3000/然后將顯示類似以下的屏幕:
數(shù)據(jù)庫設(shè)置:
- 數(shù)據(jù)庫類型:SQLite3
- 路徑:使用絕對(duì)路徑/var/lib/gitea/data/gitea.db
應(yīng)用程序常規(guī)設(shè)置:
- 站點(diǎn)名稱:您可以在此輸入您公司的名稱。
- 存儲(chǔ)庫根路徑:保留默認(rèn)的/home/git/gitea-repositories。
- Git LFS根路徑:保留默認(rèn)的/var/lib/gitea/data/lfs。
- 以用戶名運(yùn)行:git
- SSH服務(wù)器域:輸入您的域或服務(wù)器IP地址。
- SSH端口:22,如果SSH正在偵聽其他端口,請(qǐng)更改它
- Gitea HTTP偵聽端口:3000
- Gitea基本URL:使用http和您的域或服務(wù)器IP地址。
- 日志路徑:保留默認(rèn)的/var/lib/gitea/log
您可以隨時(shí)通過編輯Gitea配置文件來更改設(shè)置。
完成后,點(diǎn)擊“安裝Gitea”按鈕。安裝是即時(shí)的。完成后,您將被重定向到登錄頁面。
點(diǎn)擊“立即注冊(cè)”鏈接。第一個(gè)注冊(cè)用戶將自動(dòng)添加到Admin組。
使用以下命令將Gitea配置文件的權(quán)限更改為只讀:
[linuxidc@linux:~/www.linuxidc.com]$ sudo chmod 750 /etc/gitea
[linuxidc@linux:~/www.linuxidc.com]$ sudo chmod 640 /etc/gitea/app.ini
就這樣。 Gitea已安裝在您的Ubuntu計(jì)算機(jī)上。
將Nginx配置為SSL/TLS代理(termination proxy)
此步驟是可選的,但強(qiáng)烈建議這樣做。要將Nginx用作反向代理,您需要具有一個(gè)指向服務(wù)器公共IP的域或子域。在本教程中,我們將使用git.linuxidc.com。
首先,安裝Nginx并使用以下指南生成免費(fèi)的“加密SSL”證書:
http://www.sfodin.cn/Linux/2018-05/152257.htm
http://www.sfodin.cn/Linux/2020-02/162228.htm
完成后,打開文本編輯器并編輯域服務(wù)器塊文件:
sudo nano /etc/nginx/sites-enabled/git.example.com
server { listen 80; server_name git.linuxidc.com; include snippets/letsencrypt.conf; return 301 https://git.linuxidc.com$request_uri; } server { listen 443 ssl http2; server_name git.linuxidc.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.linuxidc.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/git.linuxidc.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/git.linuxidc.com/chain.pem; include snippets/letsencrypt.conf; include snippets/ssl.conf; # log files access_log /var/log/nginx/git.linuxidc.com.access.log; error_log /var/log/nginx/git.linuxidc.com.error.log; # Handle / requests location / { proxy_redirect off; proxy_pass http://127.0.0.1:3000; } }
不要忘記用您的Gitea域替換git.linuxidc.com,并為SSL證書文件設(shè)置正確的路徑。 HTTP流量重定向到HTTPS
重新啟動(dòng)Nginx服務(wù)以使更改生效:
$sudo systemctl restart nginx
接下來,更改Gitea域和根URL。 為此,請(qǐng)打開配置文件并編輯以下行:
$sudo nano /etc/gitea/app.ini
[server]
DOMAIN = git.linuxidc.com
ROOT_URL = https://git.linuxidc.com/
通過鍵入以下命令重新啟動(dòng)Gitea服務(wù):
sudo systemctl restart gitea
至此,已經(jīng)配置了Gitea代理,您可以在以下位置訪問它:https://git.linuxidc.com
配置電子郵件通知
為了使Gitea能夠發(fā)送通知電子郵件,您可以安裝Postfix或使用某些事務(wù)性郵件服務(wù),例如SendGrid,MailChimp,MailGun或SES。
要啟用電子郵件通知,請(qǐng)打開配置文件并編輯以下行:
$sudo nano /etc/gitea/app.ini
[mailer]
ENABLED = true
HOST = SMTP_SERVER:SMTP_PORT
FROM = SENDER_EMAIL
USER = SMTP_USER
PASSWD = YOUR_SMTP_PASSWORD
確保您輸入了正確的SMTP服務(wù)器信息。
重新啟動(dòng)Gitea服務(wù)以使更改生效:
sudo systemctl restart gitea
要驗(yàn)證設(shè)置并發(fā)送測(cè)試電子郵件,請(qǐng)登錄Gitea,然后轉(zhuǎn)到:站點(diǎn)管理>配置> SMTP郵件程序配置。
Gitea還允許您通過創(chuàng)建Web Webhook連接到Slack并將通知發(fā)送到您的Slack頻道。
升級(jí)Gitea
要升級(jí)到最新的Gitea版本,只需下載并替換二進(jìn)制文件即可。
01、停止Gitea服務(wù):
sudo systemctl stop gitea
02、下載最新的Gitea版本并將其移至/home/git目錄:
VERSION=<THE_LATEST_GITEA_VERSION>
wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
sudo mv /tmp/gitea /usr/local/bin
03、賦予二進(jìn)制文件可執(zhí)行權(quán)限:
sudo chmod +x /usr/local/bin/gitea
04、啟動(dòng)Gitea服務(wù):
sudo systemctl restart gitea
就這樣。
總結(jié)
本教程將引導(dǎo)您完成在Ubuntu 18.04上安裝Gitea的過程。現(xiàn)在,您應(yīng)該訪問Gitea文檔頁面,并學(xué)習(xí)如何配置Gitea實(shí)例并創(chuàng)建第一個(gè)項(xiàng)目。
如有疑問,請(qǐng)?jiān)谙旅姘l(fā)表評(píng)論。