DEV Community

Cover image for 用 Gitea 在本機架 Git Server 功能
Let's Write
Let's Write

Posted on • Edited on • Originally published at letswrite.tw

用 Gitea 在本機架 Git Server 功能

本篇要解決的問題

去年有寫過一篇〈用 OneDev 在本機架 Git Server 功能〉,不過 OneDev 的介面都是英文的,如果要公司同事之間可以互相使用,能有中文會比較方便。加上一般我們習慣用 GitHub 介面的話,用 OneDev 會覺得差異很大。

所以,前幾天 August 花了一個晚上爬文,找到了 Gitea 這套,有中文介面,介面也比較像熟悉的 GitHub 或 GitLab,而且用 Docker 安裝在本機也很快(實測還可以裝在 NAS 上)。


安裝 Docker

Gitea 提供的安裝方式有蠻多種的:

但最快的還是 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
Enter fullscreen mode Exit fullscreen mode

大家 Copy 完這個內容貼到你們的 docker-compose.yml 檔後,有幾個地方會需要修改。

看到 USER、PASSWORD 的字眼,就是在設定帳密,因為這邊 Gitea 用的是 PostgresSQL 資料庫,所以一邊改了,另一邊也要跟著改。

以下二行,實測裝在 NAS 等主機時可能會報錯,可以刪掉:

- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
Enter fullscreen mode Exit fullscreen mode

以下二行,請改成你們自己要用的 Port:

- "13000:3000" # 13000 改成你們要的 port
- "10022:22" # 10022 改成你們要的 port
Enter fullscreen mode Exit fullscreen mode

安裝 Gitea 流程

開啟 Docker Desktop,Docker 必須要是 running 的狀態。

用終端機開啟我們剛放了 docker-compose.yml 的資料夾。

輸入指令:

$ docker-compose up -d
Enter fullscreen mode Exit fullscreen mode

按下 Enter 後,就可以去泡杯咖啡或跟家人聊個天,或是去教寵物握手跟坐下,因為第一次安裝,需要的 Images 都要 pull 下來,要等一下,大概花的時間是這樣:

用 docker-compose 安裝 Gitea

嗯……不到 1 分鐘,喔不,不能教會貓咪握手了~~

打開 Docker Desktop,Containers 裡會看到新增了一個「gitea」:

新增 gitea container

gitea 裡面的 gitea,在 Port(s) 裡會出現我們設定的 Port 連結,點擊後面是 3000 的,就會看到最後的設定畫面:

最後的安裝步驟

這邊就是設定資料庫跟 Gitea 的基本訊息。

資料庫的部份不用動,因為我們在 docker-compose.yml 上都寫好了。

可選設定建議「管理員帳戶設定」的部份先把管理員帳號設定好,不設的話就會是第一個註冊的人是管理員。

最後按下「安裝 Gitea」,就會看到一個喝茶畫面:

喝茶安裝中

茶喝完後,就安裝好了,因為 August 有先設定管理員帳號,所以安裝完成會自動登入:

安裝完成

鏘鏘~這樣就安裝完成了,是不是很簡單?

預設開啟的網址會是 localhost,如果是安裝好要跟其它同事共用,同區網下把 localhost 改成本機的 IP 就行。


刪除跟彩蛋

最後補一段怎麼刪除我們剛用 Docker 安裝的 Gitea。

一樣用終端機開啟我們 Gitea 的資料夾,命令為:

$ docker-compose down
Enter fullscreen mode Exit fullscreen mode

按下 Enter 後……你沒時間去泡咖啡的,因為刪除比安裝還快:

刪除 Gitea

不到 5 秒。

Docker 會刪除用到的 Containers、Images,但,but,西卡西,Volumes 是不會刪除的,記得到 Volumes 裡刪掉「gitea_gitea_db」。

最後的最後,補一個彩蛋,是 Docker 的擴充功能,可以清掉安裝或沒清乾淨的快取:Disk usage

安裝好後點開選單上的 Disk usage,就會看到可以清理的東西:

Disk usage

點擊「Reclaim space」,選擇要刪掉的東西,就可以完整刪除,是不是很簡單很方便?

Top comments (0)