转载 

Gitea源码分析及部署步骤

分类:前端,极客    484人阅读    Damon  2022-11-26 16:41

项目地址:https://github.com/go-gitea/gitea

项目目录

文件夹 说明
assets gitea的项目图标
cmd gitea子命令
contrib 运行脚本,插件等
custom 配置文件示例
docker s6-svscan运行docker的脚本
docs gitea的帮助页面服务
itegrations 集成测试
models 表结构,以及和数据库的相关操作
modules 实现不同功能的模块
options gitignore,label,licenses等默认模板
public 图标,vendor?
routers 路由
scripts 生成gitigonre和license的程序
services 封装了models和modules的一些功能
snap snapcraft linux上的包管理
templates 页面模板
vendor 项目的第三方依赖包
web_src css+js 静态资源

权限管理

仓库有Permission
type Permission struct {
	AccessMode AccessMode     //仓库整体的权限
	Units      []*RepoUnit    //一个仓库拥有的所有功能模块
	UnitsMode  map[UnitType]AccessMode  //每个功能模块的权限
}
AccessMode说明
常量 说明
AccessModeNone 0 无权限
AccessModeRead 1 读权限
AccessModeWrite 2 写权限
AccessModeAdmin 3 管理员权限
AccessModeOwner 4 仓库所有者权限
UnitType包含以下几项,显示在仓库页面导航栏
常量 说明
UnitTypeCode UnitType = iota + 1 // 1 code
UnitTypeIssues 2 issues
UnitTypePullRequests 3 PRs
UnitTypeReleases 4 Releases
UnitTypeWiki 5 Wiki
UnitTypeExternalWiki 6 ExternalWiki
UnitTypeExternalTracker 7 ExternalTracker
UnitTypeOutcomes 8 Outcomes (成果物)

例: 如要检查一个仓库是否有Release(发布版本)模块的读权限,有如下流程, 取出此模块的读写权限,和AccessModeRead对比,大于它则认为有读权限

部署步骤

  1. mysql或mariadb数据库建立gitea库
CREATE DATABASE gitea CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
  1. git版本v2.1.2及以上

  2. 在当前用户有读写权限的目录下创建文件夹,(建议创建一个gitea单独使用的用户),参考下图

--gitea
	|--custom
	|--conf
		|--app.ini
  1. 配置app.ini文件,需要修改的内容如下
#服务名称,如无必要,请勿修改
APP_NAME = Gitea  
 #当前运行gitea服务的用户,root或者是专用用户
RUN_USER = mmx     
RUN_MODE = prod


[security]
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE1Nzc3ODEwNTF9.XRZ4QvT10FC32IeC68Fqp9H68NLmUsSMC24BqtP17pc
INSTALL_LOCK   = true
SECRET_KEY     = r7k2ogAskk0bD5jIg7PWd4M28s9aYvs6mWFasTMUbSzeZPPoSi9CUw8Y07wnNnaG

[database]
DB_TYPE  = mysql
#mysql地址和端口
HOST     = 192.168.0.0:3306   
#数据库名,默认gitea
NAME     = gitea  
#用户名
USER     = root      
#密码
PASSWD   = password            
SSL_MODE = disable
CHARSET  = utf8

[repository]
#仓库存储地址
ROOT = /home/mmx/gitea/data/gitea-repositories     

[server]
#ssh域名,与DOMIN一致
SSH_DOMAIN       = 192.168.0.0    
#服务域名
DOMAIN           = 192.168.0.0                    
#端口,默认3000
HTTP_PORT        = 3000       
#http+服务域名+端口
ROOT_URL         = http://192.168.0.0:3000/      
DISABLE_SSH      = false
SSH_PORT         = 22
LFS_START_SERVER = true
 #lfs文件存储路径
LFS_CONTENT_PATH = /home/mmx/gitea/data/lfs        
LFS_JWT_SECRET   = __WVNmFsw4Aqt_TwBtkLq8t6II-CY9HreBK-KuLNtuU
OFFLINE_MODE     = true
ENABLE_LOCAL_AUTH = true

[mailer]
ENABLED = false

[service]
REGISTER_EMAIL_CONFIRM            = false
ENABLE_NOTIFY_MAIL                = false
DISABLE_REGISTRATION              = false
ALLOW_ONLY_EXTERNAL_REGISTRATION  = false
ENABLE_CAPTCHA                    = false
REQUIRE_SIGNIN_VIEW               = false
DEFAULT_KEEP_EMAIL_PRIVATE        = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING       = true
NO_REPLY_ADDRESS                  = noreply.localhost

[picture]
DISABLE_GRAVATAR        = true
ENABLE_FEDERATED_AVATAR = false

[openid]
ENABLE_OPENID_SIGNIN = false
ENABLE_OPENID_SIGNUP = false

[session]
PROVIDER = file

[eureka]
ENABLE = true
#注册中心连接字符串,用户名+密码+地址
MACHINES = http://admin:admin@192.168.0.0:8761/eureka     
#心跳间隔,秒
HEART_BEAT_INTERVAL = 5 
 #本机服务地址
IP = 192.168.0.11                                          

[localUrl]
#用token请求用户信息的接口地址
LOCAL_USER_INFO_URL = http://192.168.0.0:8089/services/user/api/user/info   
#通过用户名和密码请求token的接口地址
LOCAL_VERIFY_USER_URL = http://192.168.0.0:8089/auth/login                  
LOCAL_HOME = http://0.0.0.0

[cors]
ENABLED = true
SCHEME = http
ALLOW_DOMAIN = *
METHODS = GET
ALLOW_CREDENTIALS = true

[log]
MODE      = file
LEVEL     = debug
#日志存储路径
ROOT_PATH = /home/mmx/gitea/data/log             
REDIRECT_MACARON_LOG=true
MACARON=file
ROUTER=file

  1. 执行命令 nohup ./gitea >/dev/null 2>&1 &

在浏览器中输入localhost:3000 可以显示即部署成功

 

转载于:https://www.mayumo.top/docs/gitea_source/#%E9%83%A8%E7%BD%B2%E6%AD%A5%E9%AA%A4

点击广告,支持我们为你提供更好的服务

canvas生日快乐动画特效

CSS鼠标停靠图标变大

市政府和行政机构HTML5模板 - Towngov

单页形式个人主页HTML模板 - Wedo

法律服务和律师事务所HTML5模板 - AttorCo

残障人士服务网站HTML模板 - Medixare

选择图片并裁剪

百分比加载进度SVG线条动画

技能培训在线学习平台网站模板 - Collab

创意代理和初创公司HTML模板 - Wan

按钮的hover效果覆盖过渡

React实现的电子商务管理后台模板 - Dashtar

两个部分分割拖拽滑动

功能齐全的ReactJs管理模板 - Adminto

立体空间感3d几何体破碎

CSS 3D铅笔旋转效果

SEO和数字营销机构HTML模板 - SEOMY

Tailwindcss高级管理后台模板框架 - T-Wind

原子模型CSS3动画

three.js立体感粒子动画

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»
点击广告,支持我们为你提供更好的服务