blavince's BLOG

Giving is a reward in itself.

0%

Ubuntu 18.04 LTS + Gitea 架設個人 Git 伺服器


從中央式的 SVN 用到分散式的 Git, 軟體版本控制已經成為我一種習慣!
但現職單位沒有任何軟體版本管理的機制, 所以選擇架設輕量化的 Git 伺服器來管理專案!

什麼是 Git

一種版本控制的軟體, 由 Linus 大神所開發, 最大的特點是 分散式版本控制 (distributed revision control 或 distributed version control,又譯為分布式版本控制),又稱 去中心化版本控制 (decentralized version control), 它允許軟體開發者可以共同參與一個軟體開發專案,但是不必在相同的網路系統下工作,而且每個開發者都可以擁有完整的開發歷程.

安裝環境

開始前將環境更新一下,

1
2
sudo apt update
sudo apt upgrade
  1. 安裝 Git

    1
    apt install git

    驗證版本

    1
    git --version

    得到 git version 2.17.1

  2. 設定 user.name

    1
    git config --global user.name "blavince"

    驗證 user.name

    1
    git config --global user.name

    得到 blavince

  3. 安裝 SQlite 資料庫
    Gitea 支持 SQLite、PostgreSQL和MySQL/MariaDB 為數據庫後端, 這裡選擇使用 SQLite.

    1
    2
    sudo apt update
    sudo apt install sqlite3
  4. 下載 Gitea 執行檔
    Gitea 提供多種安裝方式, 這裡選用直接下載執行檔(參考: 從執行檔安裝) 然後再修改執行權限.

    1
    2
    wget -O gitea https://dl.gitea.io/gitea/1.12.2/gitea-1.12.2-linux-amd64
    chmod +x gitea
  5. 執行 Gitea 執行檔

    1
    ./gitea

    從上圖可以看到我們是第一次運行, 所以忽略 app.ini not found 即可; 最後提示 server 開始在 tcp:0.0.0.0:3000 運行.

  6. 訪問測試
    打開瀏覽器輸入 http://localhost:3000/, 看到下圖畫面代表運行起來了.

客製化配置

  1. 初始化
    點右上角的 Sign In 看到下圖, 設定相關配置和註冊第一個使用者 (=管理者).
    (這裡僅列出我的配置, 其餘默認值. 後續變更在 /gitea/custom/conf/app.ini 能再調整)
    1. Database Type: SQLite3
    2. Site Title: blavince’s git server
    3. Gitea HTTP Listen Port: 80
    4. Gitea Base URL: http://172.21.140.140:80/
    5. Server and Third-Party Service Settings 底下:
    • Enable OpenID Sign-In
    • Disable Self-Registration
    • Require Sign-In to View Pages
    1. Administrator Account Settings 底下:
      Administrator Username: blavince
      Password: password

再次輸入 Administrator 資訊後, 點擊最下方 Install Gitea 按鈕.

app.ini 最下方補充:
[ui]
DEFAULT_THEME = arc-green
EXPLORE_PAGING_NUM = 0

  1. 連線測試
    如果是內網 IP 的話, 同網域任一裝置開啟瀏覽器輸入 http://172.21.140.140/ , 測試是否已上線, 連線成功如下圖:

到這裡就成功架設起個人的 Git 伺服器了! (Git 常用基礎指令)

app.ini 調整點

1
2
3
4
5
6
7
8
9
10
11
12
13
APP_NAME = "Gitea"

[server]
DOMAIN = 192.168.50.207
ROOT_URL = http://192.168.50.207:3000/

[service]
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = true
REQUIRE_SIGNIN_VIEW = true
DEFAULT_KEEP_EMAIL_PRIVATE = true
DEFAULT_ALLOW_CREATE_ORGANIZATION = false
DISABLE_USERS_PAGE = true

Linux 服務執行 Gitea

能夠運行 Gitea 之後, 可以參考 以 Linux 服務執行 Gitea 將其註冊為服務, 每次開機自動啟動, 這裡我選擇 使用 supervisor 的方式:

在終端機使用下列指令安裝 supervisor:

1
sudo apt install supervisor

為 supervisor 建立 log 資料夾:

1
2
# assuming Gitea is installed in /home/pi2204lts/gitea/
mkdir /home/pi2204lts/gitea/log/supervisor

附加以下範例代碼 (官方範例) 到 /etc/supervisor/supervisord.conf 的最底下,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[program:gitea]
directory=/home/pi2204lts/gitea/
command=/home/pi2204lts/gitea/gitea web
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/home/pi2204lts/gitea/stdout.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/home/pi2204lts/gitea/stderr.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
user = pi2204lts
environment = HOME="/home/pi2204lts/gitea", USER="pi2204lts"

最後設定在系統啟動時啟用並執行 supervisor:

1
2
sudo systemctl enable supervisor
sudo systemctl start supervisor

若您使用 systemd 220 或更新版本,您能以一行指令啟動並立即執行 supervisor:

1
sudo systemctl enable supervisor --now