Gogs搭建git服务器
Gogs简介
Gogs 是一款极易搭建的自助 Git 服务。Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、macOS、Windows 以及 ARM 平台。
Gogs的安装部署
然后,您可以通过以下 5 种方式来安装 Gogs:
- 二进制安装
- 源码安装
- 包管理安装
- 采用 Docker 部署
- 通过 Vagrant 安装
本人采用的是在centos7 64位系统上进行二进制的安装。
git服务器的安装请参考:centos7下git服务器端搭建
Gogs安装过程分为这些步骤:
- 新建用户;
- 下载源码编译 / 下载预编译二进制打包;
- 运行安装;
- 配置调整;
- 配置 nginx 反向代理;
- 保持服务运行;
注意,这里默认你已经安装好了 MySQL 服务器(或 MariaDB)和 nginx,如果没有,请自行查找如何安装和配置这些依赖。当然你也可以使用 SQLite 数据库。
Mysql的安装请参考:CentOS7 64位下MySQL5.7安装与配置
备注:如果gogs安装好后,在install中出现mysql无法连接的错误,检查是否防火墙未关闭。
systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动
nginx的安装请参考:Centos7安装Nginx实战
CentOS 7 下安装 Nginx
新建用户
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
运行安装
首先建立好数据库。在 Gogs 目录的 scripts/mysql.sql
文件是数据库初始化文件。执行 mysql -u root -p < scripts/mysql.sql
(需要输入密码)即可初始化好数据库。
然后登录 MySQL 创建一个新用户 gogs,并将数据库 gogs
的所有权限都赋予该用户。
$ mysql -u root -p
> # (输入密码)
> create user 'gogs'@'localhost' identified by '密码';
> 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 反代
修改nginx/conf/nginx.conf文件,
server {server_name 域名或IP;listen 80; # 或者 443,如果你使用 HTTPS 的话# ssl on; 是否启用加密连接# 如果你使用 HTTPS,还需要填写 ssl_certificate 和 ssl_certificate_keylocation / { # 如果你希望通过子路径访问,此处修改为子路径,注意以 / 开头并以 / 结束proxy_pass http://127.0.0.1:3000/;}
}
服务脚本
在gogs的scripts 目录中带有一个开箱即用的 systemd 配置文件。将配置文件内容填充好后复制到 /etc/systemd/system
目录中就可以使用。尤其注意 After=mysql.service
(对 MariaDB)或 After=mysqld.service
(MySQL)。
Gogs后台启动
nohup ./gogs web
添加启动项和守护进程:
sudo ln -sf /home/git/gogs/scripts/systemd/gogs.service /usr/lib/systemd/
sudo chmod u+x /home/git/gogs/scripts/systemd/gogs.service
sudo ln -sf /home/git/gogs/scripts/init/centos/gogs /etc/init.d/
sudo chmod u+x /home/git/gogs/scripts/init/centos/gogs
sudo /sbin/chkconfig gogs on
sudo service gogs restart
使用 Gogs 搭建自己的 Git 服务器
gogs github
搭建过程中遇到的问题
1. gogs开机自启动的问题,自启动不起来,启动日志如下:
在/var/log/message里面查看核心系统日志文件
2. 使用git用户启动gogs启动失败的问题,app.ini里面配置的run_user是git,但是以git用户启动失败。
3. 使用SSH 地址无法clone的问题,SSH clone 需要加 repositories 目录。
可参考这个。
问题2和问题3,在我的环境上通过更改git下gogs的目录的权限,改为root权限,以root用户启动,就OK啦。
4. ssh push时出现如下错误
解决方法: 在gogs界面上仓库设置的管理协作者中添加新的协作者,赋予可写权限即可push上去。
Gogs搭建git服务器相关推荐
- Windows 使用 Gogs 搭建 Git 服务器
随便说两句 之前有使用 Gitblit 在Windows搭建Git服务器,用的也挺好的,可能安装起来略麻烦一点.现在全用 Gogs 在windows搭建Git服务器,主要是因界面好看,管理更方便一些. ...
- windows server服务器下用Gogs搭建Git服务器教程详解
一.准备条件 1.官网下载NSSM http://www.nssm.cc/download NSSM介绍:NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windo ...
- Docker安装Gogs搭建git服务器
gihub地址:https://github.com/gogs/gogs gogs官网:https://gogs.io/ gihub官方docker安装gogs方法:https://github.co ...
- 离线搭建git服务器(Gogs)
目录 前言 一.环境准备 1.下载git离线安装包 2.下载gogs离线安装包 二.搭建步骤 1.安装git 1.1.root登录,创建新用户 1.2.切换到git用户 1.3.离线安装包上传到服务器 ...
- Gogs搭建git私服-windows版
Gogs搭建git私服-windows版 在代码的世界里,github应该是家喻户晓了,那么想不想在自己的电脑上搭建一套类似的服务供自己工作和学习使用呢.答案是肯定的. Gogs就是一款开源免费的产品 ...
- centos7 下搭建git服务器
总的来说,搭建git和svn形式差不多 1.首先要在服务器安装git环境,创建用户密码和仓库等 2.然后个人主机(基本是window)安装git客户端 3.将个人主机客户端的秘钥写到git服务器的一个 ...
- 搭建Git服务器教程转载
1. 在Windows下使用ssh+msysgit客户端搭建Git服务器 http://www.codeproject.com/Articles/296398/Step-by-Step-Setup-G ...
- git进入项目目录 windows_Windows下搭建Git服务器
Windows平台下搭建Git服务器的图文详解及教程 Git没有客户端服务器端的概念,但是要共享Git仓库,就需要用到SSH协议(FTP , HTTPS , SFTP等协议也能实现Git共享,此文档不 ...
- 自建git服务器连接Pycharm系列二:在centos7上搭建git服务器
在自己的Linux虚拟机上,搭建git服务器,用来保存代码. centos7本身自带git,需要先卸载,安装成较新的版本. 1.卸载系统自带版本 系统已经自带 [root@dscrapy01 ~]# ...
最新文章
- 人工智能高考511分,未来有望考上东京大学!
- 重构广义应用数学:人工智能,数学发展的重大机遇
- 解决虚拟机VM 与 Device/Credential Guard 不兼容。在禁用 Device/Credential Guard 后,可以运行 VM 的方法
- Linux修改主机名的两种方法
- 工信部通告:任何组织和机构不得继续实施“计算机信息系统集成企业资质认定”...
- linux删除mysql安装_Linux安装删除MySQL
- ubuntu qt linux 下载文件,Qt ------ linux(ubuntu) 下用 linuxdeployqt 打包发布程序
- java版开源工作流引擎ccflow从表数据数据源导入设置
- catti二级笔译综合能力真题_CATTI 二级口笔译教材、真题和模拟试题汇总!
- 大屏监控系统实战(7)-后端整合MybatisPlus并暴露服务
- java access 不在本地_线上的java项目访问不到线上数据库,但是这个数据库我本地可以连接到,求解...
- html中图片显示、隐藏
- 通过数据评估渠道用户质量的方法
- 装了linux后windows被破坏了,windows下可以破坏linux的数据么-
- 微信H5页面前端开发,大多数人都会遇到的几个兼容性坑
- 打开计算机桌面里面有其他图标,Win7电脑桌面上的快捷方式图标都变成相同且打不开...
- OSPF 之 6类LSA详解
- ps抠出图像的透明阴影
- Welcome To Java!
- ANSYS LSDYNA时间步设置