gogs 源码阅读笔记 001

morya · · 1780 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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                        # 应用生成日志文件

编译执行

参考 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

有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:morya

查看原文:gogs 源码阅读笔记 001

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1780 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传