本篇要解決的問題
去年有寫過一篇〈用 OneDev 在本機架 Git Server 功能〉,不過 OneDev 的介面都是英文的,如果要公司同事之間可以互相使用,能有中文會比較方便。加上一般我們習慣用 GitHub 介面的話,用 OneDev 會覺得差異很大。
所以,前幾天 August 花了一個晚上爬文,找到了 Gitea 這套,有中文介面,介面也比較像熟悉的 GitHub 或 GitLab,而且用 Docker 安裝在本機也很快(實測還可以裝在 NAS 上)。
安裝 Docker
Gitea 提供的安裝方式有蠻多種的:
- From binary
- From package
- From source
- Linux service
- Windows Service
- With Docker Rootless
- With Docker
- Kubernetes
- On cloud provider
但最快的還是 Docker 安裝,因為 docker-compose.yml 的內容官方文件都提供了,之後複製貼上改一改就行。
安裝 Docker 也很簡單,從 Docker 官方網站 下載 Docker Desktop,然後就一路無腦點擊下一步。
不過,如果是用 Windows 的朋友,安裝完後可能會遇到開不起來的問題,直接 Google「docker bios 設定」就會找到蠻多解法,August 後來是用重開機進到 BIOS 去設定解決的。
安裝 Gitea 的 dokcer-compose.yml
就跟安裝 OneDev 一樣簡單,只是這次我們有 docker-compose.yml 檔了,就不用下看起來落落長的指令。
先進到官方用 Docker 的說明文件:With Docker。
文件裡有提供幾段 docker-compose.yml 的內容,主要差別在資料庫要用 MySQL 還是 PostgreSQL。
因為前陣子在裝 Wiki.js 時,那邊的文件一直推薦 PostgreSQL,說又快又好還是什麼的,所以以下提供的檔案範例,用的資料庫是 PostgreSQL。
先在本機新增一個資料夾,因為資料夾名稱會是 Docker 上 Container 的名稱,所以取一個認得出是在 Gitea 用的,想不到取什麼的話就直接取「Gitea」就好。
接著在資料夾中新增檔案,檔名叫「docker-compoese.yml」。
以下是 August 整理了 Gitea 文件的範例,最後在本機安裝時有啟用成功的 docker-compose.yml 檔內容。
version: "3"
networks:
gitea:
external: false
volumes:
gitea_db:
driver: local
services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
- gitea_db:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "13000:3000" # 13000 改成你們要的 port
- "10022:22" # 10022 改成你們要的 port
depends_on:
- db
db:
image: postgres:latest
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data
大家 Copy 完這個內容貼到你們的 docker-compose.yml 檔後,有幾個地方會需要修改。
看到 USER、PASSWORD 的字眼,就是在設定帳密,因為這邊 Gitea 用的是 PostgresSQL 資料庫,所以一邊改了,另一邊也要跟著改。
以下二行,實測裝在 NAS 等主機時可能會報錯,可以刪掉:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
以下二行,請改成你們自己要用的 Port:
- "13000:3000" # 13000 改成你們要的 port
- "10022:22" # 10022 改成你們要的 port
安裝 Gitea 流程
開啟 Docker Desktop,Docker 必須要是 running 的狀態。
用終端機開啟我們剛放了 docker-compose.yml 的資料夾。
輸入指令:
$ docker-compose up -d
按下 Enter 後,就可以去泡杯咖啡或跟家人聊個天,或是去教寵物握手跟坐下,因為第一次安裝,需要的 Images 都要 pull 下來,要等一下,大概花的時間是這樣:
嗯……不到 1 分鐘,喔不,不能教會貓咪握手了~~
打開 Docker Desktop,Containers 裡會看到新增了一個「gitea」:
gitea 裡面的 gitea,在 Port(s) 裡會出現我們設定的 Port 連結,點擊後面是 3000 的,就會看到最後的設定畫面:
這邊就是設定資料庫跟 Gitea 的基本訊息。
資料庫的部份不用動,因為我們在 docker-compose.yml 上都寫好了。
可選設定建議「管理員帳戶設定」的部份先把管理員帳號設定好,不設的話就會是第一個註冊的人是管理員。
最後按下「安裝 Gitea」,就會看到一個喝茶畫面:
茶喝完後,就安裝好了,因為 August 有先設定管理員帳號,所以安裝完成會自動登入:
鏘鏘~這樣就安裝完成了,是不是很簡單?
預設開啟的網址會是 localhost,如果是安裝好要跟其它同事共用,同區網下把 localhost 改成本機的 IP 就行。
刪除跟彩蛋
最後補一段怎麼刪除我們剛用 Docker 安裝的 Gitea。
一樣用終端機開啟我們 Gitea 的資料夾,命令為:
$ docker-compose down
按下 Enter 後……你沒時間去泡咖啡的,因為刪除比安裝還快:
不到 5 秒。
Docker 會刪除用到的 Containers、Images,但,but,西卡西,Volumes 是不會刪除的,記得到 Volumes 裡刪掉「gitea_gitea_db」。
最後的最後,補一個彩蛋,是 Docker 的擴充功能,可以清掉安裝或沒清乾淨的快取:Disk usage。
安裝好後點開選單上的 Disk usage,就會看到可以清理的東西:
點擊「Reclaim space」,選擇要刪掉的東西,就可以完整刪除,是不是很簡單很方便?
Top comments (0)