likes
comments
collection
share

快速搭建轻量级git服务Gogs访问官网下载最新编译好的二进制包,个人觉得这是最省事最方便的方法。 这时,你已经基本搭建

作者站长头像
站长
· 阅读数 57

准备

  • centos7 64位
  • nginx
  • git
  • mysql/PostgreSQL/MSSQL(非必须)

开始

创建并切换git用户

adduser git
passwd git # 输入密码
su git

下载Gogs二级制包

访问官网下载最新编译好的二进制包,个人觉得这是最省事最方便的方法。

wget http://7d9nal.com2.z0.glb.qiniucdn.com/0.11.34/linux_amd64.tar.gz
tar zxvf linux_amd64.tar.gz
cd gogs
./gogs web -port 10086 # 启动应用,指定端口,也可以不指定用默认80

初始化配置

浏览器访问上一步启动的地址:http://localhost:10086/

快速搭建轻量级git服务Gogs访问官网下载最新编译好的二进制包,个人觉得这是最省事最方便的方法。 这时,你已经基本搭建

说明

  1. 数据库我选择应用自带的轻量级数据库SQLite3,可根据实际情况选择
  2. 如果有部署上线打算,可以把localhost部分修改成你的域名
  3. 邮件服务我选用了gmail的smtp发送服务,有条件的可以使用自己搭建邮件服务器
  4. 如果你点了【立即安装】想修改配置,可以修改用户配置文件./custom/conf/app.ini后重启应用

后台进程

nohup ./gogs web >> /your/path/to/save/nohup.out 2>&1 &

这时,你已经基本搭建好Gogs,如果局域网内使用可以到此为止,但如果需要部署上线,请继续往下看。

部署外网

假设你已经配置好DNS解析。

绑定域名

执行命令vi ./custom/conf/app.ini,找到[server]内容:

[server]
DOMAIN           = gitfan.club
HTTP_PORT        = 10086
ROOT_URL         = http://gitfan.club/
DISABLE_SSH      = false
SSH_PORT         = 22
START_SSH_SERVER = true
OFFLINE_MODE     = false

nginx配置

/etc/nginx/conf.d/增加gitfan.conf文件,配置以下内容:

server {
    server_name gitfan.club;
    listen 80;

    client_max_body_size 5G; # 突破上传大文件限制

    location / {
        proxy_pass http://localhost:10086;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
    }
}

然后启动nginx:

systemctl start nginx.service

这时候已经可以访问了。

部署升级版

支持https

众所周知,网站支持https是大势所趋,现在我们要把站点升级到https。我采用的是免费的DV证书服务Let's Encrypt,有效期是3个月,过期后需要续签。

获取证书

git clone https://github.com/certbot/certbot.git
cd certbot
chmod +x letsencrypt-auto
./letsencrypt-auto certonly --webroot -w /home/git/gogs/public -d gitfan.club

此时,生成的证书存放在/etc/letsencrypt/live/gitfan.club/里,然后配置nginx监听443端口。

# /etc/nginx/conf.d/gitfan.conf
server {
    server_name gitfan.club;
    listen 443;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/gitfan.club/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/gitfan.club/privkey.pem;

    client_max_body_size 5G;

    location / {
        proxy_pass http://localhost:10086;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
    }
}

假如需要把www.gitfan.clubgitfan.club都强制跳转https,需要在gitfan.conf文件增加配置:

server {
    listen      80;
    server_name gitfan.club www.gitfan.club;
    return      301         https://gitfan.club$request_uri;
}

设置防火墙

可能你还需要设置防火墙来增加服务器安全性,centos自带的firewall-cmd支持设置开放端口:

systemctl start firewalld.service
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
firewall-cmd --list-ports # 查看端口是否设置成功

其他问题

  1. 如果我想修改页面模板怎么办?

    答:参考这里,在custom/templates/inject/增加模板文件。

  2. 如果我想停止Gogs服务怎么办?

    答:ps -ef|grep gogs找到进程ID,然后kill -9 进程ID

转载自:https://juejin.cn/post/6844903568160325639
评论
请登录