用 Docker Compose 一鍵部署私有 Git 伺服器:由零到用得嘅完整教學
成日聽人講「私有 Git 伺服器」,但係咪真係要裝部機、開個 GitLab 咁大工程先得?其實用 Docker Compose 幾分鐘就搞掂。今次同你講下點樣用 Gitea 搭一個輕量、慳資源嘅私有 Git 伺服器,仲要開埋 SSH、Webhook 同備份,一條龍。
點解揀 Gitea 而唔係 GitLab?
Gitea 係一個用 Go 寫嘅輕量 Git 服務,好處係:
– 食 RAM 少:一個 container 已經跑得鬱,比起 GitLab 要 4GB RAM 起步,Gitea 幾百 MB 就夠。
– 單一二進制檔:維護簡單,升級就換個 image。
– 功能齊:PR、Issue、Wiki、Webhook、CI 整合樣樣有。
如果你只係想屋企或者中小團隊自用,Gitea 真係夠用有餘。
環境準備
先確認你部機有齊兩樣嘢:
docker --version
docker compose version
冇嘅話就先去裝 Docker Desktop(Mac/Win)或者 `apt install docker.io docker-compose-plugin`(Linux)。
建立 docker-compose.yml
開一個資料夾,放個 compose file:
mkdir -p ~/gitea && cd ~/gitea
編輯 `docker-compose.yml`:
services:
gitea:
image: gitea/gitea:1.21
container_name: gitea
restart: always
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:22"
depends_on:
- db
db:
image: postgres:16-alpine
container_name: gitea-db
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea_secret
- POSTGRES_DB=gitea
volumes:
- ./postgres:/var/lib/postgresql/data
留意兩點:SSH port 我 map 咗去 2222,因為你部機本身可能已經有 SSH 用緊 22。咁樣撞唔到。
啟動同初始化
docker compose up -d
之後打開瀏覽器去 `http://localhost:3000`,會見到 Gitea 嘅初次設定頁。揀返 PostgreSQL 做資料庫,Host 填 `db:5432`(因為 container 內部 network 用 service name 連),帳號密碼照返上面 environment。
撳「Install Gitea」,等佢建立 database 同埋第一個 admin 帳號。
設定 SSH 免密碼 push
Gitea 內置 SSH server,行喺 2222 port。你喺 local 機想用 `git@localhost:2222` 咁 clone,要先將你嘅 public key 加入去。
# 喺 Gitea 網頁 → 設定 → SSH/GPG Keys → 貼上你嘅 public key
cat ~/.ssh/id_ed25519.pub
冇 key 就 generate 一個:
ssh-keygen -t ed25519 -C "you@example.com"
加完之後,clone 一個 repo 試下:
git clone ssh://git@localhost:2222/username/repo.git
開 Webhook 接 CI
Gitea 內置 webhook,可以接 Jenkins、Drone 或者 GitHub Actions。喺 repo → Settings → Webhooks → Add Webhook → Gitea,貼返你 CI 嘅 endpoint 同 secret。
一個常用做法係接 Drone CI,咁就可以喺 push 之後自動跑測試同 build。
每日備份(一定要做)
私有 Git 伺服器最驚就係 data 冇咗。加個 cron job 每晚 backup:
crontab -e
加入:
0 2 * * * docker exec gitea gitea dump -c /data/gitea/conf/app.ini --file /tmp/gitea-backup.zip
咁每日凌晨兩點就會出一份完整 backup(連 repo + database + config 一齊)。
總結
用 Docker Compose 搭 Gitea,全程唔使半個鐘,就有個穩定嘅私有 Git 伺服器。比起租 GitHub 私人 repo,自建勝在數據完全自己掌握,而且零月費。細團隊或者想學嘢嘅朋友,今晚就可以試下。
#SSH #備份 #技術分享 #IT教學 #部署




