git服务器搭建:gogs
一. 简介
gogs是国人开发的自助git服务,使用go语言开发,支持各种平台,部署方便,实现了各种常用的功能,对资源的要求还不高.
二.安装
install_gogs.sh
cd ~
wget https://dl.gogs.io/0.11.79/gogs_0.11.79_linux_amd64.zip
unzip gogs_0.11.79_linux_amd64.zip
mv gogs /usr/local/
mkdir -p /usr/local/gogs/custom/conf/
rm -f ~/gogs_0.11.79_linux_amd64.zip
执行完后,执行
/usr/local/gogs/gogs web
访问http://ip:3000,可以正常访问gogs服务,安装成功,下面开始配置gogs.
三. gogs配置
首次访问http://ip:3000,会跳转http://ip:3000/install页面对gogs进行一些设置
-
数据库设置
gogs支持MySQL、PostgreSQL、SQLite3、MSSQL 或 TiDB各种数据库,我用的是MySQL,可以参照之前的教程安装https://wangbin.io/blog/it/mysql.html
我创建了个名为gogs的数据库,下面是我的配置
数据库类型: MySQL
数据库主机: 127.0.0.1
数据库用户: xxx
数据库用户密码: xxx
数据库名称: gogs
-
应用基本设置
应用名称: git.wangbin.io
仓库根目录: /vps/git/repos
运行系统用户: root
域名: localhost
SSH 端口号: 留空,禁用 SSH 功能
HTTP 端口号: 3000
应用 URL: https://git.wangbin.io
日志路径: /usr/local/gogs/log
-
可选设置->管理员账号设置
管理员用户名: xxx
管理员密码: xxx
确认密码: xxx
管理员邮箱: xxx
点击立即安装,成功后,会将配置文件写在/usr/local/gogs/custom/conf/app.ini文件,后面要更改配置,修改这个文件就可以了.
这里我修改了
# gogs运行用户修改为nobody
RUN_USER = nobody
# 禁用注册功能,只自己使用
DISABLE_REGISTRATION = false
四. supervisor配置
[program:gogs]
command=/usr/local/gogs/gogs web
environment=HOME="/vps/git/repos", USER="nobody"
directory=/usr/local/gogs/
user=nobody
user=nobody
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/vps/save/logs/supervisor/gogs.log
stderr_logfile=/vps/save/logs/supervisor/gogs-err.log
五. nginx配置
# git.wangbin.io
server {
listen 50443 ssl http2;
listen [::]:50443 ssl http2;
server_name git.wangbin.io;
# ssl
ssl_certificate /vps/save/certificate/acme/*.wangbin.io/fullchain.cer;
ssl_certificate_key /vps/save/certificate/acme/*.wangbin.io/*.wangbin.io.key;
ssl_trusted_certificate /vps/save/certificate/acme/*.wangbin.io/fullchain.cer;
# ecc
ssl_certificate /vps/save/certificate/acme/*.wangbin.io_ecc/fullchain.cer;
ssl_certificate_key /vps/save/certificate/acme/*.wangbin.io_ecc/*.wangbin.io.key;
# log
access_log logs/wangbin.io/gogs.wangbin.io/access-gogs.wangbin.io.log siyou325;
error_log logs/wangbin.io/gogs.wangbin.io/error.log;
# 最大上传200m
client_max_body_size 200m;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header SIYOU325-X-Real-Ip $remote_addr;
}
# 禁止访问.svn目录,防止svn信息泄漏,必加项
location ~ ^(.*)\/\.svn\/ {
deny all;
}
}
六. 结尾
git仓库管理功能、权限管理功能,个人使用完全能够满足需求.
装完gogs,我失去了安装gitlab的兴趣,算了,那就不安装了.
赶紧安装使用gogs吧.
参考: