CentOS 7安装Gogs代码仓库
1、准备环境
1. MySQL
2. Gogs二进制包
3. git
4. git用户
5. nginx
6. 域名
7. ssl证书
1.1 创建gogs用户和对应的数据库并授权
create database `gogs` character set utf8 collate utf8_general_ci;
create user 'gogs'@'localhost' identified by '密码';
create user 'gogs'@'127.0.0.1' identified by '密码';
grant all privileges on gogs.* to 'gogs'@'localhost';
grant all privileges on gogs.* to 'gogs'@'127.0.0.1';
flush privileges;
1.2 下载Gogs二进制包
wget https://dl.gogs.io/0.11.91/gogs_0.11.91_linux_amd64.tar.gz
1.3 安装git
yum install git -y
1.4 添加git用户
useradd git
echo "密码"|sdtin passwd git
1.5 安装nginx
yum install nginx -y
2、安装Gogs
2.1 切换到git用户
su - git
2.2 安装配置Gogs
# 将安装包移动到git家目录
cp /root/gogs_0.11.91_linux_amd64.tar.gz /home/git
# 解压安装包
tar xf gogs_0.11.91_linux_amd64.tar.gz
cd gogs/
# 开始安装
./gogs web
2.3 浏览器上配置
浏览器打开http://server_ip:3000
开始配置:
如上图,根据实际情况进行填写,ssh端口我这里改成了2222是为了避免和sshd服务的端口冲突。
确认之后点击立即安装
即可,如果有报错,根据报错信息进行修改之后再次点击立即安装
即可。
2.4 注册用户
建议安装完成之后直接到首页选择注册用户,因为之前没有创建管理员并且默认第一个注册的用户就是管理员。
选择右上角的注册:
填写好信息之后点击创建用户
。马上就会跳转到登录界面:
登录之后进入首页:
至此,安装完成!使用方法与GitLab和GitHub相差不大。
3、其他配置
3.1 开启Gogs的ssh连接
# 将app.ini中START_SSH_SERVER改为true即可,端口建议改成其他不和sshd服务冲突的端口。
sed -i.bak 's#START_SSH_SERVER = false#START_SSH_SERVER = true#g' /home/git/gogs/custom/conf/app.ini
3.2 使用nginx代理
cat /etc/nginx/conf.d/gogs.conf
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 -t
systemctl reload nginx.service
3.4 域名解析
在对应域名供应商的DNS解析页面添加相应的A记录即可(要和gogs.conf中的配置对应)。
3.5 ssl证书
有多种方法实现:
- 付费的
- 免费的
3.5.1 付费的ssl证书
去对应的ssl代理商购买,比如阿里云、腾讯云、又拍云等等。
3.5.2 免费的ssl证书
- 阿里云、腾讯云、又拍云等代理商提供一个用户限定个数的免费单域名ssl证书
- 通过各种工具获取免费的ssl证书,例如 certbot之类的