從中央式的 SVN 用到分散式的 Git, 軟體版本控制已經成為我一種習慣!
但現職單位沒有任何軟體版本管理的機制, 所以選擇架設輕量化的 Git 伺服器來管理專案!
什麼是 Git
一種版本控制的軟體, 由 Linus 大神所開發, 最大的特點是 分散式版本控制 (distributed revision control 或 distributed version control,又譯為分布式版本控制),又稱 去中心化版本控制 (decentralized version control), 它允許軟體開發者可以共同參與一個軟體開發專案,但是不必在相同的網路系統下工作,而且每個開發者都可以擁有完整的開發歷程.
安裝環境
開始前將環境更新一下,
1 | sudo apt update |
安裝 Git
1
apt install git
驗證版本
1
git --version
得到 git version 2.17.1
設定 user.name
1
git config --global user.name "blavince"
驗證 user.name
1
git config --global user.name
得到 blavince
安裝 SQlite 資料庫
Gitea 支持 SQLite、PostgreSQL和MySQL/MariaDB 為數據庫後端, 這裡選擇使用 SQLite.1
2sudo apt update
sudo apt install sqlite3下載 Gitea 執行檔
Gitea 提供多種安裝方式, 這裡選用直接下載執行檔(參考: 從執行檔安裝) 然後再修改執行權限.1
2wget -O gitea https://dl.gitea.io/gitea/1.12.2/gitea-1.12.2-linux-amd64
chmod +x gitea執行 Gitea 執行檔
1
./gitea
從上圖可以看到我們是第一次運行, 所以忽略 app.ini not found 即可; 最後提示 server 開始在 tcp:0.0.0.0:3000 運行.
訪問測試
打開瀏覽器輸入 http://localhost:3000/, 看到下圖畫面代表運行起來了.
客製化配置
- 初始化
點右上角的 Sign In 看到下圖, 設定相關配置和註冊第一個使用者 (=管理者).
(這裡僅列出我的配置, 其餘默認值. 後續變更在 /gitea/custom/conf/app.ini 能再調整)- Database Type: SQLite3
- Site Title: blavince’s git server
- Gitea HTTP Listen Port: 80
- Gitea Base URL: http://172.21.140.140:80/
- Server and Third-Party Service Settings 底下:
- Enable OpenID Sign-In
- Disable Self-Registration
- Require Sign-In to View Pages
- Administrator Account Settings 底下:
Administrator Username: blavince
Password: password
再次輸入 Administrator 資訊後, 點擊最下方 Install Gitea 按鈕.
app.ini 最下方補充:
[ui]
DEFAULT_THEME = arc-green
EXPLORE_PAGING_NUM = 0
- 連線測試
如果是內網 IP 的話, 同網域任一裝置開啟瀏覽器輸入http://172.21.140.140/
, 測試是否已上線, 連線成功如下圖:
到這裡就成功架設起個人的 Git 伺服器了! (Git 常用基礎指令)
app.ini 調整點
1 | APP_NAME = "Gitea" |
Linux 服務執行 Gitea
能夠運行 Gitea 之後, 可以參考 以 Linux 服務執行 Gitea 將其註冊為服務, 每次開機自動啟動, 這裡我選擇 使用 supervisor 的方式:
在終端機使用下列指令安裝 supervisor:
1 | sudo apt install supervisor |
為 supervisor 建立 log 資料夾:
1 | # assuming Gitea is installed in /home/pi2204lts/gitea/ |
附加以下範例代碼 (官方範例) 到 /etc/supervisor/supervisord.conf
的最底下,
1 | [program:gitea] |
最後設定在系統啟動時啟用並執行 supervisor:
1 | sudo systemctl enable supervisor |
若您使用 systemd 220 或更新版本,您能以一行指令啟動並立即執行 supervisor:
1 | sudo systemctl enable supervisor --now |