gogs 源碼閱讀筆記 001

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

gogs 源碼閱讀筆記 001

gogs項目相當不錯,本筆記實際是基於gogs fork版本 git-122a66f.

gitea

(gitea版本由來)[https://blog.gitea.io/2016/12/welcome-to-gitea/]

TODO

  • 源碼結構
  • 編譯執行
  • 功能表一覽
  • 功能對應源碼走讀

源碼結構

gogs的源碼結構,應該是遵循了作者的 go項目代碼規範 。

以下為一般項目結構,根據不同的 Web 架構習慣,可使用括弧內的文字替換;根據不同的項目類型和需求,可自由增刪某些結構:

- templates (views)          # 模板檔案- public (static)            # 靜態檔案    - css                        - fonts                      - img                        - js                     - routers (controllers)      # 路由邏輯處理- models                     # 資料邏輯層- modules                    # 子模組    - setting                # 應用配置存取- cmd                        # 命令列程式命令- conf                       # 預設配置    - locale                 # i18n 本地化檔案- custom                     # 自訂配置- data                       # 應用產生資料檔案- log                        # 應用組建記錄檔檔案

編譯執行

  • install gogs from source
  • install gitea from source

參考 gitea 或 gogs 的編譯命令:

TAGS="sqlite" make build

go build -tags 'sqlite'

後記

gogs支援多種資料庫後端: mysql, postgres, mssql, sqlite3.

為了方便啟動和測試,我選擇了sqlite3,但因為對golang的不熟悉,
折騰了很久卻無法找到sqlite3的install選項。

實際,我已經手動安裝過go-sqlite3,看了 models_sqlite.go 檔案,也設定了 EnableSQLite3 = true
其實原因就在此檔案的頭上 // +build sqlite ,構建的時候必須指定tags.

啟動

./gitea web

功能表一覽

gitea是類似github的git伺服器,參考下面的介紹,可以比較方便的知道gitea都支援什麼功能。

gitea 介紹

  • What is Gitea?
  • Purpose
  • Features

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.