设为首页 收藏本站
查看: 1608|回复: 0

[经验分享] 使用 Gogs 搭建自己的 Git 服务器

[复制链接]

尚未签到

发表于 2018-1-12 23:54:46 | 显示全部楼层 |阅读模式
  安装过程分为这些步骤:


  • 新建用户;
  • 下载源码编译 / 下载预编译二进制打包;
  • 运行安装;
  • 配置调整;
  • 配置 nginx 反向代理;
  • 保持服务运行;
  注意,这里默认你已经安装好了 MySQL 服务器和 nginx,如果没有,请自行查找如何安装和配置这些依赖。当然你也可以使用 SQLite 数据库。

新建用户
  Gogs 默认以 git 用户运行(你应该也不会想一个能修改 ssh 配置的程序以 root 用户运行吧?)。
  运行 sudo adduser git 新建好 git 用户。
   su git 以 git 用户登录,到 git 用户的主目录中新建好 .ssh 文件夹。


下载解包

  我使用的是预编译的二进制包。需要从源码编译的话,请参考一般 Go 语言项目的编译。下载后解包到你喜欢的地方,例如 /usr/share/gogs/或者 /home/git/gogs/。文件夹的内容如下。

  

$ ls /home/git/gogs/  
custom  data  gogs  LICENSE  log  public  README.md  README_ZH.md  scripts  templates
  

  


运行安装
  首先建立好数据库。
  

在安装完mysql之后,我们还需要创建一个数据库,将之取名为gogs,  

  
CREATE DATABASE gogs CHARACTER SET utf8 COLLATE utf8_bin;
  
GRANT ALL PRIVILEGES ON gogs.* TO ‘root’@‘localhost’;
  
FLUSH PRIVILEGES;
  

  

  在 Gogs 目录的  scripts/mysql.sql  文件是数据库初始化文件。执行  mysql -u root -p < scripts/mysql.sql  (需要输入密码)即可初始化好数据库。
  然后登录 MySQL 创建一个新用户 gogs,并将数据库  gogs  的所有权限都赋予该用户。
  

$ mysql -u root -p  
> # (输入密码)

  
> create user 'gogs'@'localhost'>  
> grant all privileges on gogs.* to 'gogs'@'localhost';
  
> flush privileges;
  
> exit;
  

  

  运行  gogs web  把 Gogs 运行起来,然后访问  http://服务器IP:3000/  来进行安装,填写好表单之后提交就可以了。
  需要注意的是,  0.6.9.0903 Beta 版本有个 bug,允许在关闭注册的情况下不添加管理员,这样安装完成之后将没有任何用户可以登录。所以请务必在安装界面指定一个管理员帐号。

配置调整
  配置文件位于 Gogs 目录的  custom/conf/app.ini  ,是 INI 格式的文本文件。详细的配置解释和默认值请参考  官方文档  ,其中关键的配置大概是下面这些。


  • RUN_USER  默认是  git  ,指定 Gogs 以哪个用户运行
  • ROOT  所有仓库的存储根路径
  • PROTOCOL  如果你使用 nginx 反代的话请使用  http  ,如果直接裸跑对外服务的话随意
  • DOMAIN  域名。会影响 SSH clone 地址
  • ROOT_URL  完整的根路径,会影响访问时页面上链接的指向,以及 HTTP clone 的地址
  • HTTP_ADDR  监听地址,使用 nginx 的话建议  127.0.0.1 ,否则  0.0.0.0 也可以
  • HTTP_PORT  监听端口,默认  3000
  • INSTALL_LOCK  锁定安装页面
  • Mailer 相关的选项
  其中,Mailer 可以使用 Mailgun 的免费邮件发送服务,将 Mailgun 的 SMTP 配置填入到配置中就好。

nginx 反代
  在  /etc/nginx/sites-available  中新建一个文件,把以下内容写入文件中。
  

server {  server_name 域名或IP;
  listen 80; # 或者 443,如果你使用 HTTPS 的话
  # ssl on; 是否启用加密连接
  # 如果你使用 HTTPS,还需要填写 ssl_certificate 和 ssl_certificate_key
  location / { # 如果你希望通过子路径访问,此处修改为子路径,注意以 / 开头并以 / 结束
  proxy_pass http://127.0.0.1:3000/;
  }
  
}
  

  

  然后进入  /etc/nginx/sites-enabled  中,执行  ln -s ../sites-available/配置文件名 启用这个配置文件。
  最后重启 nginx 就好了,Ubuntu 下是  sudo service nginx restart  。

服务脚本
  此处的服务脚本是针对 Debian 系的 init 脚本。
  其他地方处理办法:
  gogs提供多重方式进行安装,比较常用的有两种。一个是二进制安装,另一个是通过源代码安装。
  然后切换到解压得到的目录之后,直接运行 ./gogs web 即可在服务器上运行gogs服务了。
  ./gogs -h 得到更多的命令行参数说明。
  

nohup gogs/gogs web > log/gogs_web.log 2>&1 &  

  

  启动gogs服务之后,首次运行会让你进行相关的配置。
  主要分为3个配置项,
  一是数据库的配置,包括数据库地址及密码;
  二是服务的应用配置,包括域名,路径等等;
  三是可选邮件服务和管理员配置。
  配置文件手册 :https://gogs.io/docs/advanced/configuration_cheat_sheet

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-434498-1-1.html 上篇帖子: 在Linux下搭建Git服务器步骤 下篇帖子: SourceTree的使用(git管理项目)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表