CentOS搭建Gogs

Gogs 是一款极易搭建的自助 Git 服务。
Gogs项目旨在打造一个以最简便的方式搭建简单、稳定和可扩展的自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、macOS、Windows 以及 ARM 平台。

一、环境搭建

安装git以及数据库

1、安装git

yum安装即可,使用如下命令

yum install -y git 

2、安装数据库

我使用的是mariadb10.0.33
安装方式:
CentOS7离线安装mariadb

二、安装gogs

1、下载gogs安装包

wget https://dl.gogs.io/0.11.86/gogs_0.11.86_linux_amd64.tar.gz

如果提示未找到wget命令,可以使用yum安装

yum install -y wget

2、解压

tar –xzvf gogs_0.11.86_linux_amd64.tar.gz

3、创建git用户

 useradd  git

4、将gogs安装包所有者改为git

chown -R git:git /home/gogs

三、在数据库上创建gogs用户并授予权限

1、root登录mariadb

mysql -uroot -p123456

2、创建gogs数据库

create database gogs default charset utf8 collate utf8_general_ci;

3、创建gogs用户并授予该用户gogs数据库的全部权限

GRANT ALL PRIVILEGES ON gogs.* TO  'gogs'@'%' IDENTIFIED BY '123456';

4、刷新权限

flush privileges;

四、运行gos并设置开机自启

1、进入gogs安装路径

cd /home/gogs

2、运行gogs

#默认端口启动
su git  
./gogs web
#指定端口启动
su git  
./gogs web –port 3001

使用这种方法属于前天启动,会一直在前台运行,如果关闭终端会自动退出,所以要使用后台启动的方法。

3、设置开机自启

  • 将gogs的启动脚本复制到/etc/init.d/路径下:
#gogs自己提供了默认的启动脚本,在gogs安装包的scripts/init/路径下,可以根据自己的操作系统选择不同的脚本
cp /home/gogs/scripts/init/centos/gogs /etc/rc.d/init.d/
  • 编辑启动脚本
vim /etc/init.d/gogs

修改启动脚本的GOGS_HOME和GOGS_USER,它们分别是gogs的安装路径和gogs的启动用户,例如我将GOGS_HOME 改为/home/gogs,GOGS_USER改为git

  • 进入/etc/init.d路径
cd /etc/init.d
  • 给启动脚本赋予可执行权限
chmod +x gogs
  • 测试启动脚本
#启动gogs
service gogs start 
#关闭gogs
service gogs stop
#重启gogs
service gogs restart
  • 将gogs设置为开机自启动
chkconfig gogs on
  • 检查是否加入成功
chkconfig --list gogs

看到如下内容说明生效
在这里插入图片描述

五、前端安装gogs

如果默认3000端口已经被其他端口占用的话,使用后台启动的方式是无法正常启动的,因为在未进行前端安装的情况下,后台启动无法指定端口,只能在前端安装gogs之后才会生成相应的配置文件。所以在需要制定端口后台启动之前,需要前台启动,并在前端页面进行程序安装。
1、在浏览器输入IP+指定端口
如:http://192.168.134.159:3001
将自动进入如下安装界面:
在这里插入图片描述

2、按照要求填写相关信息,如果需要更改端口,在应用url填写实际的IP和端口即可
在这里插入图片描述填写完毕之后点击确定,转入如下界面表示安装成功

在这里插入图片描述

六、 配置文件

前端页面安装gogs成功之后,会在安装包下生成配置文件app.ini,app.ini路径为gogs/custom/conf/app.ini
在这里插入图片描述
配置文件中的内容如下所示:

在这里插入图片描述编辑配置文件保存之后,需要重启gogs才会生效

service gogs restart

在这里插入图片描述

配置文件各参数释义

1、 概述:

  1. APP_NAME:应用名称,可以改组织或公司名称
  2. RUN_USER:运行应用的用户名称。如果没有正确设置这个值,很可能导致应用崩溃。
  3. RUN_MODE:默认值为prod,鉴于性能和其他考虑,建议不修改为其他值。

2、 服务器 (server)

  1. PROTOCOL:协议,选择http或者https
  2. DOMAIN:服务器域名
  3. ROOT_URL:公开的完整 URL 路径
  4. HTTP_ADDR:应用 HTTP 监听地址
  5. HTTP_PORT:应用 HTTP 监听端口号
  6. LOCAL_ROOT_URL:用于 Gogs 工作进程(如:SSH)回访应用的本地(DMZ)URL,一般情况下要保持默认值,除非SSH 服务器节点与 HTTP 并不是同一个节点入口
  7. DISABLE_SSH:当 SSH 功能不可用时可以禁用
  8. START_SSH_SERVER:启用该选项来启动内置 SSH 服务器
  9. SSH_DOMAIN:允许公用网络访问 SSH 的域名
  10. SSH_PORT:SSH 端口号,默认为22,如果SSH的端口号不是22的话更改为实际端口号
  11. SSH_LISTEN_HOST:内置 SSH 服务器监听的地址
  12. SSH_LISTEN_PORT:内置 SSH 服务器监听的端口
  13. SSH_ROOT_PATH: SSH 根目录,一般为 ~/.ssh,但必须填写为 /home/git/.ssh
  14. SSH_KEY_TEST_PATH:用于测试 SSH 公钥的临时目录
  15. SSH_KEYGEN_PATH:ssh-keygen 程序的路径,默认为 ssh-keygen 即通过系统路径查找
  16. MINIMUM_KEY_SIZE_CHECK:指定不同类型的公钥的最小密钥大小
  17. DISABLE_ROUTER_LOG:激活该选项来禁止打印路由日志
  18. CERT_FILE:HTTPS 授权文件路径
  19. KEY_FILE:HTTPS 的密钥文件路径
  20. STATIC_ROOT_PATH:模板文件和静态文件的上级目录,默认为应用二进制所在的位置
  21. APP_DATA_PATH:应用内部数据的存放目录
  22. LANDING_PAGE:设置未登录用户的默认首页,可以是 home 或 explore(发现页)

3、 仓库 (repository)

  1. ROOT:用户仓库存储根目录,必须为绝对路径,默认为 ~//gogs-repositories
  2. SCRIPT_TYPE:系统脚本类型,一般情况下均为 bash
  3. ANSI_CHARSET:当遇到无法识别的字符集时使用的默认字符集
  4. FORCE_PRIVATE:强制要求所有新建的仓库都是私有的
  5. MAX_CREATION_LIMIT:全局默认的每个用户可创建仓库上限,-1 表示无限制
  6. PREFERRED_LICENSES:建议用户首选的授权类型
  7. DISABLE_HTTP_GIT:激活该选项来禁止用户通过 HTTP 对 Git 仓库进行交互操作,即用户只能通过 SSH 操作
  8. ENABLE_LOCAL_PATH_MIGRATION:激活该选项来启用本地路径迁移仓库功能。启动后默认只有管理员可以使用,普通用户必须经由管理员授权

4、 数据库 (database)

  1. DB_TYPE:数据库类型,可以是 mysql、postgres、mssql 或 sqlite3
  2. HOST:数据库主机地址与端口
  3. NAME:数据库名称
  4. USER:数据库用户名
  5. PASSWD:数据库用户密码

5、 安全 (security)

  1. INSTALL_LOCK :用于指示是否允许访问安装页面(该页面可以设置管理员帐号,因此该选项非常重要)
  2. SECRET_KEY:全局的加密密钥,务必修改该值以确保您的服务器安全(会在每次安装时自动生成随机字符串)
  3. LOGIN_REMEMBER_DAYS:记录登录的天数
  4. COOKIE_USERNAME:记录用户名的 Cookie 名称
  5. COOKIE_REMEMBER_NAM:记录用户自动登录信息的 Cookie 名称

6、 服务 (service)

  1. ACTIVE_CODE_LIVE_MINUTES:激活码的有效期,单位为分钟
  2. RESET_PASSWD_CODE_LIVE_MINUTES:重置密码的有效期,单位为分钟
  3. REGISTER_EMAIL_CONFIRM :激活该选项来要求注册用户必须验证邮箱,要求已启用 Mailer
  4. DISABLE_REGISTRATION:激活该选项来禁止用户注册功能,只能由管理员创建帐号
  5. SHOW_REGISTRATION_BUTTON:用于指示是否显示注册按钮
  6. REQUIRE_SIGNIN_VIEW:激活该选项来要求用户必须登录才能浏览任何页面
  7. ENABLE_CACHE_AVATAR:激活该选项来缓存 Gravatar 的头像
  8. ENABLE_NOTIFY_MAIL :激活该选项来发送通知邮件给关注者,例如创建 issue 时,要求已启用 Mailer
  9. ENABLE_REVERSE_PROXY_AUTHENTICATION:激活该选项来开启反向代理用户认证,请从 https://github.com/gogits/gogs/issues/165 了解更多信息
  10. ENABLE_REVERSE_PROXY_AUTO_REGISTRATION:激活该选项来开启反向代理用户认证的自动注册功能
  11. DISABLE_MINIMUM_KEY_SIZE_CHECK :激活该选项来禁止检查响应类型的密钥最小长度
  12. ENABLE_CAPTCHA :激活该选项以在用户注册时要求输入验证码

7、 Web 钩子 (webhook)

  1. TYPES:启动的 Web 钩子类型,可以是 gogs、slack 或 discord
  2. DELIVER_TIMEOUT:发送通知的超时时间,以秒为单位
  3. SKIP_TLS_VERIFY:指示是否允许向具有非信任证书的地址发送通知
  4. PAGING_NUM:Web 钩子历史页面每页显示记录条数

8、 缓存 (cache)

  1. ADAPTER 缓存引擎适配器,可以为 momery、redis 或 memcache。如果使用的是redis 或 memcache,要确保使用 -tags 选项重新构建所有依赖,例如:go build -tags=‘redis’
  2. INTERVAL 仅限内存缓存使用,GC 周期,单位为秒
  3. HOST 仅限 redis 和 memcache 使用,配置主机地址和端口号

9、 会话 (session)

  1. PROVIDER Session:引擎提供者,可以是 memory、file、redis 或 mysql
  2. PROVIDER_CONFIG:如果提供者为 file,则为文件根目录;如果为其它提供者,则为主机地址和端口号
  3. COOKIE_SECURE:激活该选项以要求所有 session 操作均通过 HTTPS
  4. GC_INTERVAL_TIME GC:周期,单位为秒

10、 日志 (log)

  1. ROOT_PATH:日志文件的根目录
  2. MODE:日志记录模式,默认为 console。如果想要开启多模式,请使用逗号分割,例如:“console, file”
  3. LEVEL 基本日志级别,默认为 Trace

猜你喜欢

转载自blog.csdn.net/xiguashixiaoyu/article/details/108766606
今日推荐