0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Ubuntu 20.04安裝Gitea

CHANBAEK ? 來源:myfreax ? 作者:myfreax ? 2023-01-04 17:23 ? 次閱讀

Gitea是用Go語(yǔ)言編寫的自托管開源git服務(wù)器。它是Gogs的分支。Gitea包含有文件編輯器,項(xiàng)目問題跟蹤,用戶管理,通知,內(nèi)置Wiki等。

Gitea是輕型應(yīng)用程序,可以安裝在低配置系統(tǒng)。如果您正在尋找內(nèi)存占用量少得多的Gitlab替代產(chǎn)品,并且不需要Gitlab提供的所有功能,那么您絕對(duì)應(yīng)該嘗試Gitea。

教程介紹如何在Ubuntu 20.04安裝Gitea。相同的說明適用于基于Ubuntu 20.04的Linux發(fā)行版,例如Linux mint。

安裝Gitea 數(shù)據(jù)庫(kù)

Gitea支持SQLite,PostgreSQL和MySQL/MariaDB作為數(shù)據(jù)庫(kù)后端。

我們將使用SQLite作為Gitea的數(shù)據(jù)庫(kù)。如果您的Ubuntu 20.04未安裝SQLite,可以運(yùn)行命令sudo apt update && sudo apt install sqlite3安裝SQLite。

Gitea提供Docker映像,也可以使用源碼,二進(jìn)制文件的方式安裝。我們將使用二進(jìn)制文件安裝Gitea。

安裝Gitea的第一步是安裝git。運(yùn)行命令sudo apt install git。當(dāng)git安裝完成后運(yùn)行命令git --version驗(yàn)證git的安裝。

我們將創(chuàng)建一個(gè)普通用戶運(yùn)行Gitea。運(yùn)行命令adduser命令創(chuàng)建用戶git。命令將創(chuàng)建一個(gè)名為git的用戶和組,并將家目錄設(shè)置為/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下載頁(yè)面,并下載適用于您的系統(tǒng)架構(gòu)二進(jìn)制文件。在撰寫本文時(shí),最新版本為1.17.3。

如果有可用的新版本,請(qǐng)?jiān)谙旅娴拿钪懈?code>VERSION變量。然后運(yùn)行wget命令下載Gitea二進(jìn)制文件到/tmp目錄。

gitea二進(jìn)制文件可以在任何目錄運(yùn)行。我們將遵循Linux目錄約定并將二進(jìn)制文件移動(dòng)到/usr/local/bin目錄。

默認(rèn)情況下二進(jìn)制文件不具有可執(zhí)行權(quán)限。因此需要為gitea二進(jìn)制文件添加可執(zhí)行權(quán)限,運(yùn)行chmod命令。

運(yùn)行mkdir命令創(chuàng)建目錄并設(shè)置所需的權(quán)限和所有權(quán)。這是官方的Gitea文檔建議使用目錄結(jié)構(gòu)。

etc/gitea目錄的權(quán)限設(shè)置為770,在安裝向?qū)r(shí)可以創(chuàng)建配置文件。安裝完成后,我們將設(shè)置更多限制性權(quán)限。

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 服務(wù)

Gitea提供已配置的Systemd Unit文件??梢赃\(yùn)行wget命令將Systemd Unit文件下載到etc/systemd/system/目錄。

完成后,重新加載Systemd,運(yùn)行命令sudo systemctl daemon-reload。然后啟用并啟動(dòng)Gitea服務(wù)。

驗(yàn)證Gitea服務(wù)的運(yùn)行狀態(tài),運(yùn)行命令sudo systemctl status gitea。你將會(huì)看到Gitea服務(wù)已成功啟動(dòng)。

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)在我們成功運(yùn)行Gitea,是時(shí)候通過Web界面完成安裝。默認(rèn)情況下,Gitea監(jiān)聽所有接口端口3000的連接。

如果您Ubuntu 20.04正在運(yùn)行運(yùn)行UFW防火墻,則需要打開Gitea端口。允許端口3000的連接。運(yùn)行命令sudo ufw allow 3000/tcp。

sudo ufw allow 3000/tcp

打開瀏覽器,輸入http://127.0.0.1:3000。將數(shù)據(jù)庫(kù)設(shè)置的為以下參數(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服務(wù)正在監(jiān)聽其他端口,請(qǐng)更改它端口。

Server Domain: localhost。

Gitea HTTP Listen Port: 3000。

Gitea Base URL: http://localhost:3000/。

Log Path: /var/lib/gitea/log

您可以隨時(shí)通過編輯Gitea配置文件來更改設(shè)置。完成后,點(diǎn)擊install Gitea按鈕。安裝是實(shí)時(shí)的。

完成后,您將被重定向到登錄頁(yè)面。點(diǎn)擊立即注冊(cè)。第一個(gè)注冊(cè)用戶將自動(dòng)添加到管理員組。

然后運(yùn)行命令sudo chmod 750 etc/gitea將Gitea配置文件的權(quán)限更改為只讀。至此, 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和反向代理服務(wù)器

myfreaxmyfreax

如何在Ubuntu 20.04 安裝 Nginx

如何在Ubuntu 20.04配置Nginx虛擬主機(jī) | myfreax

server是Nginx指令,用于定義特定域的設(shè)置,從而使您可以在一臺(tái)服務(wù)器上運(yùn)行多個(gè)網(wǎng)站

myfreaxmyfreax

如何在Ubuntu 20.04配置Nginx虛擬主機(jī)

此步驟是可選的,但強(qiáng)烈建議您這樣做。要將Nginx用作反向代理,您需要有一個(gè)指向服務(wù)器IP域名。在本教程中,我們將使用git.example.com。

使用你喜歡的文本編輯器創(chuàng)建文件Nginx配置文件git.example.com.conf。在本教程中,我們將使用vim創(chuàng)建文件。

復(fù)制Nginx配置內(nèi)容文件到文件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

你應(yīng)該在每次編輯Nginx配置文件后,使用nginx -t命令測(cè)試Nginx配置的語(yǔ)法是否正確。然后重新啟動(dòng)Nginx服務(wù),以使更改生效。

為了能夠正確解釋域名domain1.com。因此我們還需要映射domain1.com到本地回環(huán)地址127.0.0.1。

運(yùn)行命令echo "127.0.0.1 git.example.com" | sudo tee -a etc/hosts。

接下來,更改Gitea域和根URL。繼續(xù)使用你喜歡編輯器,打開Gitea配置文件修改DOMAIN和ROOT_URL。

完成gitea的配置更改后,重啟gitea服務(wù)運(yùn)行命令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虛擬主機(jī),請(qǐng)參考我們的教程如何在Ubuntu 20.04 Nginx配置Let's Encrypt SSL證書。

如何在Ubuntu 20.04 Nginx配置Let’s Encrypt SSL證書 | myfreax

Web進(jìn)行安全通信依賴于HTTPS,這需要使用數(shù)字證書,以便瀏覽器驗(yàn)證Web服務(wù)器的身份

myfreaxmyfreax

如何在Ubuntu 20.04 Nginx配置Let's Encrypt SSL證書

電子郵件通知

為了使Gitea能夠發(fā)送通知電子郵件,您可以安裝Postfix或使用某些事務(wù)性郵件服務(wù),例如SendGrid,MailChimp,MailGun或SES。

要啟用電子郵件通知,繼續(xù)使用你喜歡編輯器,打開Gitea配置文件app.ini。修改以下內(nèi)容。

請(qǐng)確保您輸入了正確的SMTP服務(wù)器信息。重新啟動(dòng)Gitea服務(wù)以使更改生效。

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

升級(jí)Gitea

要升級(jí)到最新的Gitea版本,只需下載并替換二進(jìn)制文件。首先是停止Gitea服務(wù)。

下載最新的Gitea版本并將其移動(dòng)到/usr/local/bin目錄。運(yùn)行chmod命令使Gitea二進(jìn)制具有可執(zhí)行權(quán)限。

最后重啟Gitea服務(wù),運(yùn)行命令sudo systemctl restart gitea。

sudo systemctl stop gitea
VERSION=
sudo chmod +x /usr/local/bin/gitea
sudo systemctl restart gitea

結(jié)論

本教程向您介紹了在Ubuntu 20.04安裝Gitea的過程。您現(xiàn)在應(yīng)該訪問Gitea文檔頁(yè)面,并學(xué)習(xí)如何配置Gitea實(shí)例并創(chuàng)建第一個(gè)項(xiàng)目。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207912
  • Ubuntu
    +關(guān)注

    關(guān)注

    5

    文章

    553

    瀏覽量

    29301
  • go語(yǔ)言
    +關(guān)注

    關(guān)注

    1

    文章

    156

    瀏覽量

    8996
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    何在ubuntu安裝gcc?

    何在ubuntu安裝gcc?
    發(fā)表于 04-19 09:02

    Ubuntu 20.04上使用Systemback

    Ubuntu 20.04運(yùn)行。我就花了點(diǎn)時(shí)間對(duì)Systemback進(jìn)行了開發(fā)使其支持在Ubuntu 20.04上工作。同時(shí)添加了軟件對(duì)大文件的支持?,F(xiàn)在軟件生成的系統(tǒng)鏡像ISO不再受
    發(fā)表于 05-16 19:12

    怎樣利用Ubuntu20.04安裝Mentor Calibre 2020?

    怎樣利用Ubuntu20.04安裝Mentor Calibre 2020?有沒有人遇到過這個(gè)問題啊
    發(fā)表于 06-23 07:19

    何在Ubuntu20.04上的STM32CubeIDE中安裝STM32CubeL5?

    我已經(jīng)在Ubuntu 20.04安裝了STM32CubeIDE,并為NUCLEO L552ZE-Q設(shè)置了一個(gè)項(xiàng)目,我想嘗試STM32L5的例子,發(fā)現(xiàn)它需要STM32CubeL5。如何安裝
    發(fā)表于 01-06 09:06

    S32DS 3.5 Ubuntu 20.04安裝卡住了怎么解決?

    S32DS 3.5 Ubuntu 20.04 安裝卡住
    發(fā)表于 04-21 08:07

    何在Ubuntu桌面環(huán)境上安裝Google Chrome ?

    作為全球最受歡迎的網(wǎng)頁(yè)瀏覽器,新的 Linux 用戶經(jīng)常會(huì)問如何在 Ubuntu安裝谷歌瀏覽器。 這不是一個(gè)愚蠢的問題。圍繞構(gòu)建 Linux 的困境,大多數(shù)用戶試圖從 Ubuntu
    發(fā)表于 05-05 14:00 ?2167次閱讀

    Ubuntu 20.04默認(rèn)附帶Snap版本

    Ubuntu開發(fā)團(tuán)隊(duì)的郵件列表顯示,即將發(fā)布的Ubuntu 20.04將默認(rèn)附帶Snap版本的應(yīng)用商店。ubuntu-desktop和ubuntu
    的頭像 發(fā)表于 03-06 14:20 ?3622次閱讀

    Ubuntu 20.04調(diào)查結(jié)果已發(fā)布

    Ubuntu 20.04 隨附了最新的 GNOME 3.36 版本。除其他事項(xiàng)外,此版本還具有改進(jìn)的shell theme、新的鎖定屏幕、請(qǐng)勿打擾切換功能和改進(jìn)的設(shè)置面板。
    的頭像 發(fā)表于 05-19 17:04 ?2023次閱讀

    如何制作ubuntu20.04的文件系統(tǒng)

    firefly自帶的文件系統(tǒng),由于缺少一些基本功能模塊,因此,我們可以自己手動(dòng)制作一個(gè)ubuntu20.04的文件系統(tǒng)。
    的頭像 發(fā)表于 10-17 12:12 ?3508次閱讀

    何在Ubuntu 20.04安裝和配置FTP服務(wù)器

    本教程介紹如何在Ubuntu 20.04安裝和配置,用于在設(shè)備之間共享文件的FTP服務(wù)器。
    的頭像 發(fā)表于 12-05 16:04 ?4473次閱讀

    何在Ubuntu安裝RPM文件

    Ubuntu軟件源包含數(shù)千個(gè)deb軟件包,可以從Ubuntu軟件中心或使用`apt`命令行安裝
    的頭像 發(fā)表于 12-07 17:28 ?1.2w次閱讀

    何在Ubuntu 22.04上安裝Microsoft Edge瀏覽器

    其他瀏覽器,如 Microsoft edge 瀏覽器。 在本教程中,我們將在 Ubuntu 20.04 完成 Microsoft edge 下載和安裝(包括穩(wěn)定版、測(cè)試版和開發(fā)版)的過程?,F(xiàn)在讓我們開始吧。 Edge
    的頭像 發(fā)表于 02-20 11:13 ?1.2w次閱讀

    Windows11 wsl2安裝Ubuntu-20.04

    Windows11 wsl2安裝Ubuntu-20.04
    的頭像 發(fā)表于 08-16 10:04 ?958次閱讀
    Windows11 wsl2<b class='flag-5'>安裝</b><b class='flag-5'>Ubuntu-20.04</b>

    ubuntu20.04安裝教程

    Ubuntu 20.04安裝步驟如下: 制作啟動(dòng)U盤。首先下載Ubuntu 20.04的鏡像文件和UltraISO(鏡像制作工具)。然后
    的頭像 發(fā)表于 11-13 16:59 ?1688次閱讀

    Ubuntu 20.04如何更改用戶名

    產(chǎn)品簡(jiǎn)介本文適用于所有RK3568/RK3588平臺(tái)產(chǎn)品在Ubuntu20.04系統(tǒng)上如何更改用戶名,本文以IDO-EVB3588開發(fā)板為例,在ubuntu20.04系統(tǒng)上修改用戶名industio
    的頭像 發(fā)表于 01-26 08:34 ?625次閱讀
    <b class='flag-5'>Ubuntu</b> <b class='flag-5'>20.04</b>如何更改用戶名