使用 Gogs 搭建自己的 Git 服务器

2018.05.15 501 0

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

  1. yum -y install git

查看Git版本

  1. git --version

二、数据库

创建数据库

  1. $ mysql -u root -p
  2. Enter password
  3. mysql> create database gogs;
  4. mysql> use gogs;
  5. mysql> set names utf8;

创建数据库用户名和密码

  1. mysql> create user 'gogs'@'localhost' identified by 'your_password';
  2. mysql> grant all privileges on gogs.* to 'gogs'@'localhost';
  3. mysql> flush privileges;
  4. mysql> exit

三、配置Gogs Yum安装源

编辑

  1. vim /etc/yum.repos.d/gogs.repo

输入

  1. [gogs]
  2. name=Repository for pkgr/gogs (pkgr) packages.
  3. baseurl=https://dl.packager.io/srv/rpm/pkgr/gogs/pkgr/el/7/$basearch
  4. enabled=1
  5. gpgcheck=0
  6. repo_gpgcheck=1
  7. gpgkey=https://dl.packager.io/srv/pkgr/gogs/key

保存按ESC键 – 再按:(冒号)- 再按wq – 回车即保存

四、运行安装

  1. 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反代的话使用http
  • DOMAIN 域名,会影响SSH clone地址
  • ROOT_URL 完整的根路径,会影响页面上链接指向,以及HTTP(s) clone的地址
  • HTTP_ADDR 监听地址,使用nginx建议127.0.0.1,否则localhost或0.0.0.0也可以
  • HTTP_PORT 监听端口,默认3000
  • INSTALL_LOCK 锁定安装页面
  • Mailer 相关的选项
  • 注意邮箱stmp地址要加端口号

六、配置Nginx反向代理

配置

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

重启Nginx

  1. systemctl restart nginx

大功告成,按此步骤,我安装成功。如有什么疑问,留言给我

400

全部评论 0


    抢沙发