简介
Gogs
的目标是打造一个最简单、最快速和最轻松的方式搭建自助Git
服务。使用Go
语言开发使得Gogs
能够通过独立的二进制分发,并且支持Go
语言支持的所有平台,包括Linux
、Mac OS X
、Windows
以及ARM
平台。
截图
功能
- 支持活动时间线
- 支持
SSH
以及HTTP
/HTTPS
协议 - 支持
SMTP
、LDAP
和反向代理的用户认证 - 支持反向代理子路径
- 支持用户、组织和仓库管理系统
- 支持添加和删除仓库协作者
- 支持仓库和组织级别
Web
钩子(包括Slack
和Discord
集成) - 支持仓库
Git
钩子和部署密钥 - 支持仓库工单(
Issue
)、合并请求(Pull Request
)、Wiki
和保护分支 - 支持迁移和镜像仓库以及它的
Wiki
- 支持在线编辑仓库文件和
Wiki
- 支持自定义源的
Gravatar
和Federated Avatar
- 支持
Jupyter Notebook
- 支持两步验证登录
- 支持邮件服务
- 支持后台管理面板
- 支持
MySQL
、PostgreSQL
、SQLite3
、MSSQL
和TiDB
(通过MySQL
协议)数据库 - 支持多语言本地化(
28
种语言)
安装
Github地址:https://github.com/gogits/gogs
1、安装MySQL数据库
建议使用CentOS
系统,查看:CentOS下Mysql 5.6安装教程及创建数据库,其他系统不会手动安装的直接使用宝塔面板。
#Centos系统
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
#Ubuntu系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh
#Debian系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && bash install.sh
安装完成后,安装MySQL
,至少5.5.3
版本。
2、安装Git
#Debian和Ubuntu系统
apt-get -y install git
#CentOS系统
yum -y install git
3、安装Gogs
这里说2
种方法,二进制安装或者Docker
安装,建议使用二进制,Docker
了解下就行了。
#二进制安装
wget http://7d9nal.com2.z0.glb.qiniucdn.com/0.11.4/linux_amd64.tar.gz
tar -zxvf linux_amd64.tar.gz
cd gogs
./gogs web
#Docker安装
curl -sSL https://get.docker.com/ | sh
service docker start
docker pull gogs/gogs
mkdir -p /var/gogs
docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs
docker start gogs #关闭后运行gogs
如果使用二进制安装的打开http://ip:3000
,如果是Docker
安装的打开http://ip:10080
进行安装。且使用Docker
安装的数据映射在/var/gogs
文件夹。
如果网站打不开,则是防火墙问题,运行命令:
#CentOS 7
systemctl stop firewalld.service
systemctl disable firewalld.service
#其它系统
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT #端口自行修改
service iptables save
service iptables restart
程序运行建议配合screen
使用,查看:使用screen来实现多任务不断线操作命令。
Nginx反代
如果你想用域名访问的话,就需要反代下,配置参考:
#在配置文件里添加
location / {
proxy_pass http://localhost:3000/10080; #端口自行修改
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}