共計 4943 個字符,預計需要花費 13 分鐘才能閱讀完成。
centos8 如何安裝 Gitea 自建 Git 服務器環境?Gitea 是一個極易安裝,運行非常快速,安裝和使用體驗良好的自建 Git 服務。采用 Go 作為后端語言,這使得只要生成一個可執行程序即可。
Gitea 還支持跨平臺,支持 Linux、macOS 和 Windows 以及各種架構,除了 x86,amd64,還包括 ARM 和 PowerPC。本文介紹如何在 centos 8 上安裝和配置 Gitea。
先決條件
Gitea 支持 SQLite、PostgreSQL 和 MySQL /MariaDB 作為數據庫后端。
我們將使用 SQLite。它是一個輕量級數據庫,在單個文件中存儲數據。如果 CentOS 計算機上未安裝 SQLite,您可以通過以 sudo 用戶方式運行以下命令來安裝它:
sudo dnf install sqlite
我們假設 SELinux 已禁用或設置為允許模式。
安裝 Gitea
Gitea 可以從源、二進制和作為包安裝。它也可以部署為 Docker 映像。我們將使用 thr 二進制安裝 Gitea。
安裝 Git
第一步是在 CentOS 上安裝 Git:
sudo dnf install git
通過顯示 Git 版本來驗證安裝:
git –version
git version 2.18.4
創建 Git 用戶
創建新的系統用戶以運行 Gitea 應用程序:
sudo useradd \ –system \ –shell /bin/bash \ –comment ‘Git Version Control’ \ –create-home \ –home /home/git \ git
該命令將創建一個名為 的新用戶和組,并將主目錄設置為。git/home/git
下載 Gitea 二進制文件
最新的 Gitea 二進制文件可以從 Gitea 下載頁面下載。請確保下載適合體系結構的二進制文件。
在編寫本文時,最新版本為 1.12.3。如果有新版本可用,請更改下面的命令中的變量。VERSION
使用 wget 下載目錄中的 Gitea 二進制文件:/tmp
VERSION=1.12.3sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
可以從任何位置運行二進制文件。我們將遵循約定,將二進制文件移動到目錄:/usr/local/bin
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/giteasudo chown root:git /etc/giteasudo chmod 770 /etc/gitea
上述目錄結構由官方 Gitea 文檔推薦。
目錄的權限設置為以便安裝向導可以創建配置文件。安裝完成后,我們將設置更嚴格的權限。/etc/gitea770
創建系統單元文件
Gitea 提供了一個系統單元文件,該文件配置為與我們的設置相匹配。
通過鍵入以下類型將文件下載到目錄:/etc/systemd/system/
sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/
完成后,啟用并啟動 Gitea 服務:
sudo systemctl daemon-reloadsudo systemctl enable –now 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
現在 Gitea 已啟動并運行,是時候通過 Web 界面完成安裝了。
默認情況下,Gitea 偵聽所有網絡接口上的端口上的連接。您需要配置防火墻才能訪問 Gitea Web 界面:3000
sudo firewall-cmd –permanent –zone=public –add-port=3000/tcpsudo firewall-cmd –reload
打開瀏覽器,輸入,初始配置頁面將顯示:http://YOUR_DOMAIN_IR_IP:3000/install
Gitea Install Hu0fef48a1a4fc23c829fe9e7f27f3c37c 115259 768×0 Resize Q75 Lanczos
填寫所需的字段,如下:
數據庫設置:
數據庫類型:SQLite3
路徑:使用絕對路徑,/var/lib/gitea/data/gitea.db
應用程序常規設置:
網站標題 – 輸入組織名稱。
存儲庫根路徑 – 保留默認值。/home/git/gitea-repositories
Git LFS 根路徑 – 保留默認值。/var/lib/gitea/data/lfs
以用戶名運行 – git
SSH 服務器域 – 輸入您的域或服務器 IP 地址。
SSH 端口 – 22,如果 SSH 正在偵聽其他端口,請更改它
Gitea HTTP 偵聽端口 – 3000
Gitea 基本 URL – 使用 http 和您的域或服務器 IP 地址。
日志路徑 – 保留默認值 /var/lib/gitea/log
稍后,您可以通過編輯 Gitea 配置文件來更改設置。
完成后,點擊”安裝 Gitea”按鈕。安裝是即時的。完成后,您將被重定向到登錄頁面。
點擊”立即注冊”鏈接。第一個注冊用戶將自動添加到管理組。
若要使安裝更安全,請使用以下方法將 Gitea 配置文件的權限更改為只讀:
sudo chmod 750 /etc/giteasudo chmod 640 /etc/gitea/app.ini
就是這樣。Gitea 已安裝在 CentOS 計算機上。
將 Nginx 配置為 SSL 終止代理
此步驟是可選的,但強烈建議這樣做。若要使用 Nginx 作為反向代理,需要有指向服務器公共 IP 的域或子域。在本教程中,我們將使用。git.example.com
首先,安裝 Nginx 并使用以下指南生成免費的”讓我們加密 SSL 證書”:
完成后,打開文本編輯器并編輯域服務器塊文件:
sudo nano /etc/nginx/conf.d/git.example.com.conf
/etc/nginx/conf.d/git. 示例.com.conf
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;
}
}
不要忘記將計算機替換為 gitea git.example.com,并設置 SSL 證書文件的正確路徑。HTTP 流量重定向到 HTTPS。
完成后,重新啟動 Nginx 服務以使更改生效:
sudo systemctl restart nginx
接下來,更改 Gitea 域和根 URL。為此,請打開配置文件并編輯以下行:
sudo nano /etc/gitea/app.ini
/ 等 / 吉泰亞 / 應用程序.ini
[server]
DOMAIN = git.example.com
ROOT_URL = https://git.example.com/
通過鍵入:
sudo systemctl restart gitea
此時,Gitea 代理已配置,您可以在:https://git.example.com
配置電子郵件通知
對于要發送的通知電子郵件,您可以安裝 Postfix 或使用事務性郵件服務,如 SendGrid、MailChimp、MailGun 或 SES。
若要啟用電子郵件通知,請打開配置文件并編輯以下行:
sudo nano /etc/gitea/app.ini
/ 等 / 吉泰亞 / 應用程序.ini
[mailer]
ENABLED = true
HOST = SMTP_SERVER:SMTP_PORT
FROM = SENDER_EMAIL
USER = SMTP_USER
PASSWD = YOUR_SMTP_PASSWORD
請確保使用正確的 SMTP 服務器信息。
每次編輯文件時,都需要重新啟動 Gitea 服務才能使更改生效:app.ini
sudo systemctl restart gitea
要驗證設置并發送測試電子郵件,請登錄到 Gitea 并轉到:站點管理 > 配置 > SMTP 郵件配置。
Gitea 還允許您通過創建 Webhook 連接到 Slack,并向 Slack 通道發送通知。
升級吉泰亞
升級到最新的 Gitea 版本是一項簡單的任務。您只需要下載并替換二進制文件。
停止 Gitea 服務:
sudo systemctl stop gitea
下載最新的 Gitea 二進制文件并移動到目錄:/usr/local/bin
VERSION=wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64sudo mv /tmp/gitea /usr/local/bin
使二進制可執行:
sudo chmod +x /usr/local/bin/gitea
重新啟動 Gitea 服務:
sudo systemctl restart gitea
就是這樣。