搜尋此網誌

2026年9月14日 星期一

Gitea

緣起:


    想管理自己本地的專案,之前都只是用資料夾分類而已,上版控的話只會用 github,覺得如果有個 "本地的 github" 應該會很不錯,自己區網內的電腦想快速同步專案也很方便。

    

Gitea Container:


    官方教學,直接附上我跟著教學改好的 docker-compose 檔

networks:
  gitea:
    external: false

services:
  server:
    image: docker.gitea.com/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:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "2222:22"
    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

    它的 ssh port 用 2222,因為 22 是 pi 本身要用的。用瀏覽器打開 http://<pi的ip>:3000,設定好 admin 的密碼後就能開始使用了。

    話說,我問了 claude 後才知道,這種只在 Docker 內部網路被同一個 compose app 連的 Container,不用太在意它的帳號跟密碼的設定,因為外部的網路連不進去。


設定 SSH key:

    
    用 ssh-keygen 産生一對金鑰,到 Gitea 的 setttings -> SSH/GPG keys


    Add Key,命名,然後把我 ~/.ssh/id_ed25519.pub 的內容,整行貼進去。新增完後,測試連線

ssh -T -p 2222 git@192.168.3.1

    有看到歡迎訊息就代表成功了



新增專案並 push:


    我拿我的一個 unity project 做測試,先新增一個 Unity_Test 專案


    然後到那個 Unity 專案資料夾,跟著專案的引導下指令。然後記得要設定 user.name 跟 user.email,不然 commit 作者會對不上 Gitea 帳號

git init
git add .
git commit -m "init"
git branch -M main
git remote add origin git@192.168.3.1/birdshiu/Unity_Test.git

    我自己後來測試,發現 push 時有問題,因為我的 gitea 的 ssh port 本來就不是 22,所以我要再改一下 remote url 的部份,問了 claude,它說可以這樣修改

git remote set-url origin ssh://git@192.168.3.1:2222/birdshiu/Unity_Test.git

    再來 push

git push -u origin main

    這樣就成功 push 本機的專案了,我是在 windows 上 push 的,然後有在另一台 arch linux 電腦上把專案給 clone 下來

git clone ssh://git@192.168.3.1:2222/birdshiu/Unity_Test.git

    有測試過,能正常編譯跟執行,成功 ~~

沒有留言:

張貼留言