gogs是一款类似github的开源文件/代码管理系统(基于Git),它的搭建极为简单,可以用来搭建个人的私有仓库
安装Gogs之前先安装好mysql,nginx(nginx用作反向代理)
创建git用户
gogs默认以git用户运行
- 新建git用户
adduser git
- 以git用户登录
su git
cd 到git用户主目录 /home/git 新建.ssh文件夹 权限设置为0755
安装Go
- Go语言官网 可以获取最新的二进制安装包
wget https://storage.googleapis.com/golang/go1.5.2.linux-386.tar.gz
tar xzvf go1.5.2.linux-386.tar.gz
mv go /usr/local/lib/go
安装Go语言运行环境
Gogs由Go语言编写,运行时需要安装Golang运行环境
如果系统中其他程序并不需要运行Go语言程序,可以只为上文创建的git用户配置运行环境,也可以选择配置全系统所有用户的Go语言运行环境
- 配置环境变量,切换到用户git,并只为该用户配置Go运行环境
su git
cd ~
vim /etc/profile
export PATH=$PATH:/usr/local/lib/go/bin
- 使环境变量生效
source /etc/profile
Go语言运行环境就安装完成了
- 测试Golang是否安装成功
go env
安装 Gogs
su git
cd ~
wget -c http://7d9nal.com2.z0.glb.qiniucdn.com/gogs_v0.8.10_linux_386.tar.gz
tar zxf gogs_v0.8.10_linux_386.tar.gz
- 建立数据库
/home/git/gogs/scripts/mysql.sql是数据库初始化文件
提示:数据库必须支持InnoDB引擎
cd gogs
mysql -u root -p < scripts/mysql.sql #(需输入密码)即可初始化好数据库
- 登录 MySQL 创建一个新用户 gogs,并将数据库 gogs 的所有权限都赋予该用户
mysql -u root -p
grant all privileges on gogs.* to 'gogs'@'localhost' identified by '密码';
flush privileges;
exit;
- 编辑 gogs/scripts/supervisor/gogs 修改如下
directory=/home/git/gogs/
command=/home/git/gogs/gogs web
大家修改时根据实际路径
nginx 反向代理
- http
server {
server_name 域名或IP;
listen 80;
location / { # 如果你希望通过子路径访问,此处修改为子路径,注意以 / 开头并以 / 结束
proxy_pass http://127.0.0.1:3000/;
}
}
- https
server {
listen 443 ssl;
server_name 域名或IP;
ssl_certificate /path/to/gogs.io.unified.crt;
ssl_certificate_key /path/to/gogs.io-decrypted.key;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:3000 $request_uri;
}
}
配置详解
custom/conf/app.ini
RUN_USERgitROOTPROTOCOLhttpDOMAINROOT_URLHTTP_ADDR127.0.0.10.0.0.0HTTP_PORT3000INSTALL_LOCK
其中,Mailer 可以使用 Mailgun 的免费邮件发送服务,将 Mailgun 的 SMTP 配置填入到配置中就好。
运行gogs
- 手动开启gogs
su git
cd ~/gogs
./gogs web
- 加入服务运行
将 /home/git/gogs/scripts/init/debian/gogs复制到/etc/init.d中
root用户下 service gogs stop|start|restart|reload|status