使用 Gogs 搭建自己的 Git 服务器
使用 Gogs 搭建自己的 Git 服务器
Gogs(Go Git Service) 是一款极易搭建的自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
作为个人私有云的一环(虽然是搭建在公共服务器上),一直都很想搭建一个类似 GitHub 的服务,但 GitLab 太复杂了(说句不好听的,GL 就是 Git server 中的 WordPress),我的服务器是入门级的,根本运行不了GL,别的又相当简陋,于是一直以来都只有围观的份。最近发现上半年关注的 Gogs 经过几个版本迭代,已经达到基本可用的状态了。于是搭建了一个自己的服务,用来镜像自己分散在各个服务商处的代码,以及开新坑的时候托管用。这里把安装的过程和一些需要注意的地方记录一下。
功能特性
- 支持活动时间线
- 支持 SSH 以及 HTTP/HTTPS 协议
- 支持 SMTP、LDAP 和反向代理的用户认证
- 支持反向代理子路径
- 支持用户、组织和仓库管理系统
- 支持仓库和组织级别 Web 钩子(包括 Slack 集成)
- 支持仓库 Git 钩子和部署密钥
- 支持仓库工单(Issue)、合并请求(Pull Request)和 Wiki
- 支持添加和删除仓库协作者
- 支持 Gravatar 以及自定义源
- 支持邮件服务
- 支持后台管理面板
- 支持 MySQL、PostgreSQL、SQLite3 和 TiDB(实验性支持) 数据库
- 支持多语言本地化(15 种语言)
系统要求
- 最低的系统硬件要求为一个廉价的阿里云入门级
- 如果用于团队项目,建议使用 2 核 CPU 及 1GB 内存
安装步骤
- 安装Git;
- 创建数据库;
- 配置Gogs Yum安装源;
- 运行安装;
- 配置调整;
- 配置 nginx 反向代理;
注意,这里默认你已经安装好了 MySQL 服务器(或 MariaDB)和 nginx,如果没有,请自行查找如何安装和配置这些依赖。当然你也可以使用 SQLite 数据库。
一、安装Git
安装Git
- yum -y install git
查看Git版本
- git --version
二、数据库
创建数据库
- $ mysql -u root -p
- Enter password
- mysql> create database gogs;
- mysql> use gogs;
- mysql> set names utf8;
创建数据库用户名和密码
- mysql> create user 'gogs'@'localhost' identified by 'your_password';
- mysql> grant all privileges on gogs.* to 'gogs'@'localhost';
- mysql> flush privileges;
- mysql> exit
三、配置Gogs Yum安装源
编辑
- vim /etc/yum.repos.d/gogs.repo
输入
- [gogs]
- name=Repository for pkgr/gogs (pkgr) packages.
- baseurl=https://dl.packager.io/srv/rpm/pkgr/gogs/pkgr/el/7/$basearch
- enabled=1
- gpgcheck=0
- repo_gpgcheck=1
- gpgkey=https://dl.packager.io/srv/pkgr/gogs/key
保存按ESC键 – 再按:(冒号)- 再按wq – 回车即保存
四、运行安装
- yum -y install gogs
等待……安装完成
- 启动Gogs:systemctl start gogs
- 开机启动:systemctl enable gogs
- 查看状态:systemctl status gogs
查看是否启动Gogs
- 查看端口:netstat -lntp
- 运行结果:tcp6 0 0 :::3000 :::* LISTEN 2362/./gogs(正常启动)
错误解决
- 查看Gogs日志:gogs logs(启动不了,一般情况看这里就可以了)
五、配置调整
Profile位于Gogs目录的/etc/gogs/conf/app.ini,为INI格式的文本文件,关键配置如下。
详细的配置解释和默认值请参考配置文件手册
RUN_USER
默认为git,指定Gogs以哪个用户运行ROOT
所有仓库的存储根路径PROTOCOL
用nginx反代的话使用httpDOMAIN
域名,会影响SSH clone地址ROOT_URL
完整的根路径,会影响页面上链接指向,以及HTTP(s) clone的地址HTTP_ADDR
监听地址,使用nginx建议127.0.0.1,否则localhost或0.0.0.0也可以HTTP_PORT
监听端口,默认3000INSTALL_LOCK
锁定安装页面Mailer
相关的选项- 注意邮箱stmp地址要加端口号
六、配置Nginx反向代理
配置
- 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/;
- }
- }
重启Nginx
- systemctl restart nginx
大功告成,按此步骤,我安装成功。如有什么疑问,留言给我
全部评论 0
抢沙发