使用Gitea搭建自己的git遠程倉庫

Gitea

爲什麼需要自建倉庫

原因只有一個:折騰。其實國內的碼雲加上github已經足夠用了。

官方原話

Gitea 的首要目標是創建一個極易安裝,運行非常快速,安裝和使用體驗良好的自建 Git 服務。我們採用 Go 作爲後端語言,這使我們只要生成一個可執行程序即可。

並且他還支持跨平臺,支持 Linux, macOS 和 Windows 以及各種架構,除了 x86,amd64,還包括 ARM 和 PowerPC

爲什麼不選gitlab

之前就是用的gitlab做私有倉庫,但gitlab實在太臃腫了,啓動並運行大概需要4G的內存,即使你精簡一些服務的話,至少也得2G內存。後來發現了Gitea,測試了下很輕量,我一個使用作爲自己的代碼倉庫很方便,資源需求也不高。

官方地址

https://github.com/go-gitea/gitea

https://docs.gitea.com/zh-cn/

運行容器

我這裏使用docker來安裝,方便安裝也方便遷移。

docker鏡像

官方的鏡像名稱是gitea/gitea,我一般會去dockerhub看一下它支持的架構和最新的版本,因爲我是在arm機器上跑的。下載鏡像:

docker pull gitea/gitea:1.21-nightly

運行

創建一個存放數據的目錄

mkdir ~/gitea-data

啓動:

docker run --name gitea \
    -e USER_UID=$(id -u) \
    -e USER_GID=$(id -g) \
    -v ~/gitea-data:/data \
    -p 3000:3000 \
    -p 22:22 \
    -d gitea/gitea:1.21-nightly 
  • --name: 指定容器名稱,如果不指定默認會隨機一個。
  • -e: 指定容器內使用的環境變量,我將容器內的uid和主機的uid指定成一樣的,這樣避免一些權限問題(id -u顯示當前用戶的uid)。
  • -v: 指定主機目錄和容器目錄的映射,:前面是主機的目錄,後面是容器內的目錄。
  • -p: 指定端口映射,前面表示主機的端口,後面是容器的
  • -d: 表示後臺運行

查看運行狀態和日誌

docker ps 查看當前運行的容器,如果沒有顯示剛纔創建的,應該是停止運行了。可以使用docker ps -a查看所有容器。

在用docker logs gitea查看容器的運行日誌(截圖中的容器名稱是gitea-test)

安裝

打開瀏覽器並訪問ip和端口(記得放通防火牆),端口是上面-p 8081:3000 \指定的8081。

這些基本不用改,數據庫就用SQLite最方便。不然還得安裝MySQL或Postgresql

主要修改的是這三個,注意HTTP服務端口不能改,要和-p 8081:3000 \後面容器內的端口一樣,如果改了會進不去Web。

SSH服務端口是指git推送ssh時的端口,推送http的端口和web端口一樣。就是到時候複製倉庫地址的時候顯示的兩個端口

如果你之後用NGINX做了反向代理,想修改顯示的這兩個端口,就需要進入到容器shell,修改/data/gitea/conf/app.ini配置文件裏的字段了

可選設置也可以看一下。比如先添加管理員賬號,不然第一個註冊的賬號就是管理員賬號

如果你不想讓他們人註冊的話,可以勾選禁止註冊。另外最好使用本地模式,因爲可能有些頭像加載不出來導致一直在轉圈

點擊立即安裝等待個10s就進到登錄頁面了,再用剛纔添加的管理員賬號登錄即可

實用功能-倉庫遷移

可以從github遷移項目,並且勾選鏡像倉庫,就會每8小時自動同步一次(時間可以設置),這樣就能避免刪庫跑路了

體驗地址

http://www.pygrower.cn:21180/

本文由博客一文多發平臺 OpenWrite 發佈!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章