zoukankan      html  css  js  c++  java
  • gogs 源码阅读笔记 001

    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
  • 相关阅读:
    「学习笔记」min_25筛
    HNOI2019游记
    【SDOI2017】数字表格
    【APIO2016】烟火表演
    【SCOI2015】小凸想跑步
    java Thread源码分析
    java ThreadGroup源码分析
    bean获取Spring容器
    spring 管理bean
    thinkphp5.0.19 request
  • 原文地址:https://www.cnblogs.com/morya/p/7771013.html
Copyright © 2011-2022 走看看