Gitea是用Go語言編寫的自托管開源git服務器。它是Gogs的分支。Gitea包含有文件編輯器,項目問題跟蹤,用戶管理,通知,內置Wiki等。
Gitea是輕型應用程序,可以安裝在低配置系統(tǒng)。如果您正在尋找內存占用量少得多的Gitlab替代產品,并且不需要Gitlab提供的所有功能,那么您絕對應該嘗試Gitea。
本教程介紹如何在Ubuntu 20.04安裝Gitea。相同的說明適用于基于Ubuntu 20.04的Linux發(fā)行版,例如Linux mint。
安裝Gitea 數(shù)據(jù)庫
Gitea支持SQLite,PostgreSQL和MySQL/MariaDB作為數(shù)據(jù)庫后端。
我們將使用SQLite作為Gitea的數(shù)據(jù)庫。如果您的Ubuntu 20.04未安裝SQLite,可以運行命令sudo apt update && sudo apt install sqlite3
安裝SQLite。
Gitea提供Docker映像,也可以使用源碼,二進制文件的方式安裝。我們將使用二進制文件安裝Gitea。
安裝Gitea的第一步是安裝git。運行命令sudo apt install git
。當git安裝完成后運行命令git --version
驗證git的安裝。
我們將創(chuàng)建一個普通用戶運行Gitea。運行命令adduser
命令創(chuàng)建用戶git。命令將創(chuàng)建一個名為git
的用戶和組,并將家目錄設置為/home/git
。
sudo apt update
sudo apt install sqlite3 git
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
Adding system user `git' (UID 111) ...
Adding new group `git' (GID 116) ...
Adding new user `git' (UID 111) with group `git' ...
Creating home directory `/home/git' ...
下載 Gitea
訪問Gitea下載頁面,并下載適用于您的系統(tǒng)架構二進制文件。在撰寫本文時,最新版本為1.17.3。
如果有可用的新版本,請在下面的命令中更改VERSION
變量。然后運行wget命令下載Gitea二進制文件到/tmp
目錄。
gitea
二進制文件可以在任何目錄運行。我們將遵循Linux目錄約定并將二進制文件移動到/usr/local/bin
目錄。
默認情況下二進制文件不具有可執(zhí)行權限。因此需要為gitea二進制文件添加可執(zhí)行權限,運行chmod命令。
運行mkdir命令創(chuàng)建目錄并設置所需的權限和所有權。這是官方的Gitea文檔建議使用目錄結構。
將etc/gitea
目錄的權限設置為770
,在安裝向導時可以創(chuàng)建配置文件。安裝完成后,我們將設置更多限制性權限。
VERSION=1.17.3
sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
sudo mv /tmp/gitea /usr/local/bin
sudo chmod +x /usr/local/bin/gitea
sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git: /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir etc/gitea
sudo chown root:git etc/gitea
sudo chmod 770 etc/gitea
創(chuàng)建Systemd 服務
Gitea提供已配置的Systemd Unit文件??梢赃\行wget命令將Systemd Unit文件下載到etc/systemd/system/
目錄。
完成后,重新加載Systemd,運行命令sudo systemctl daemon-reload
。然后啟用并啟動Gitea服務。
驗證Gitea服務的運行狀態(tài),運行命令sudo systemctl status gitea
。你將會看到Gitea服務已成功啟動。
sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl start gitea
sudo systemctl enable gitea
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 Sat 2020-01-04 21:27:23 UTC; 3s ago
Main PID: 14804 (gitea)
Tasks: 9 (limit: 1152)
CGroup: /system.slice/gitea.service
└─14804 /usr/local/bin/gitea web --config etc/gitea/app.ini
...
配置 Gitea
現(xiàn)在我們成功運行Gitea,是時候通過Web界面完成安裝。默認情況下,Gitea監(jiān)聽所有接口在端口3000
的連接。
如果您Ubuntu 20.04正在運行運行UFW防火墻,則需要打開Gitea端口。允許端口3000
的連接。運行命令sudo ufw allow 3000/tcp
。
sudo ufw allow 3000/tcp
打開瀏覽器,輸入http://127.0.0.1:3000
。將數(shù)據(jù)庫設置的為以下參數(shù)。
Database Type
: SQLite3。
Path
:/var/lib/gitea/data/gitea.db
,必須是絕路徑。
Site Title
可是你喜歡的任意名稱。
Repository Root Path
: /home/git/gitea-repositories
。
Git LFS Root Path
: /var/lib/gitea/data/lfs
。
Run As Username
: git。
SSH Server Port
: 22,如果SSH服務正在監(jiān)聽其他端口,請更改它端口。
Server Domain
: localhost。
Gitea HTTP Listen Port
: 3000。
Gitea Base URL
: http://localhost:3000/。
Log Path
: /var/lib/gitea/log
。
您可以隨時通過編輯Gitea配置文件來更改設置。完成后,點擊install Gitea
按鈕。安裝是實時的。
完成后,您將被重定向到登錄頁面。點擊立即注冊
。第一個注冊用戶將自動添加到管理員組。
然后運行命令sudo chmod 750 etc/gitea
將Gitea配置文件的權限更改為只讀。至此, Gitea已安裝在您的Ubuntu 20.04。
sudo chmod 750 etc/gitea
Nginx反向代理 Gitea
如何在Ubuntu 20.04安裝Nginx | myfreax
本教程介紹了如何在Ubuntu 20.04上安裝和管理Nginx。Nginx發(fā)音為engine x,是一種開源的高性能HTTP和反向代理服務器
myfreaxmyfreax
如何在Ubuntu 20.04 安裝 Nginx
如何在Ubuntu 20.04配置Nginx虛擬主機 | myfreax
server是Nginx指令,用于定義特定域的設置,從而使您可以在一臺服務器上運行多個網(wǎng)站
myfreaxmyfreax
如何在Ubuntu 20.04配置Nginx虛擬主機
此步驟是可選的,但強烈建議您這樣做。要將Nginx用作反向代理,您需要有一個指向服務器IP域名。在本教程中,我們將使用git.example.com
。
使用你喜歡的文本編輯器創(chuàng)建文件Nginx配置文件git.example.com.conf。在本教程中,我們將使用vim創(chuàng)建文件。
復制Nginx配置內容文件到文件etc/nginx/conf.d/git.example.com.conf。完成后保存文件并退出vim。
sudo vim etc/nginx/conf.d/git.example.com.conf
server {
listen 80;
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;
# 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;
}
}
etc/nginx/conf.d/git.example.com.conf
你應該在每次編輯Nginx配置文件后,使用nginx -t
命令測試Nginx配置的語法是否正確。然后重新啟動Nginx服務,以使更改生效。
為了能夠正確解釋域名domain1.com
。因此我們還需要映射domain1.com
到本地回環(huán)地址127.0.0.1
。
運行命令echo "127.0.0.1 git.example.com" | sudo tee -a etc/hosts
。
接下來,更改Gitea域和根URL。繼續(xù)使用你喜歡編輯器,打開Gitea配置文件修改DOMAIN和ROOT_URL。
完成gitea的配置更改后,重啟gitea服務運行命令sudo systemctl restart gitea
。至此,已配置Gitea代理,您可以在以下位置訪問它:https://git.example.com
sudo systemctl restart nginx
echo "127.0.0.1 git.example.com" | sudo tee -a etc/hosts
sudo vim etc/gitea/app.ini
sudo systemctl restart gitea
[server]
DOMAIN = git.example.com
ROOT_URL = https://git.example.com/
etc/gitea/app.ini
如果你需要配置SSL為你的Nginx虛擬主機,請參考我們的教程如何在Ubuntu 20.04 Nginx配置Let's Encrypt SSL證書。
如何在Ubuntu 20.04 Nginx配置Let’s Encrypt SSL證書 | myfreax
Web進行安全通信依賴于HTTPS,這需要使用數(shù)字證書,以便瀏覽器驗證Web服務器的身份
myfreaxmyfreax
如何在Ubuntu 20.04 Nginx配置Let's Encrypt SSL證書
電子郵件通知
為了使Gitea能夠發(fā)送通知電子郵件,您可以安裝Postfix或使用某些事務性郵件服務,例如SendGrid,MailChimp,MailGun或SES。
要啟用電子郵件通知,繼續(xù)使用你喜歡編輯器,打開Gitea配置文件app.ini。修改以下內容。
請確保您輸入了正確的SMTP服務器信息。重新啟動Gitea服務以使更改生效。
sudo vim etc/gitea/app.ini
sudo systemctl restart gitea
[mailer]
ENABLED = true
HOST = SMTP_SERVER:SMTP_PORT
FROM = SENDER_EMAIL
USER = SMTP_USER
PASSWD = YOUR_SMTP_PASSWORD
etc/gitea/app.ini
升級Gitea
要升級到最新的Gitea版本,只需下載并替換二進制文件。首先是停止Gitea服務。
下載最新的Gitea版本并將其移動到/usr/local/bin
目錄。運行chmod命令使Gitea二進制具有可執(zhí)行權限。
最后重啟Gitea服務,運行命令sudo systemctl restart gitea
。
sudo systemctl stop gitea
VERSION=
sudo chmod +x /usr/local/bin/gitea
sudo systemctl restart gitea
結論
本教程向您介紹了在Ubuntu 20.04安裝Gitea的過程。您現(xiàn)在應該訪問Gitea文檔頁面,并學習如何配置Gitea實例并創(chuàng)建第一個項目。
-
Linux
+關注
關注
87文章
11296瀏覽量
209353 -
Ubuntu
+關注
關注
5文章
563瀏覽量
29732 -
go語言
+關注
關注
1文章
158瀏覽量
9047
發(fā)布評論請先 登錄
相關推薦
評論