My Avatar

skylens

(●´ω`●)/

安装配置 gogs

2018年5月18日 星期五, 发表于 昆明

前言

goges 一个基于 web 页面的可视化 git 服务器,相当于一个有无限私有仓库的 github,可以帮助你管理你的私有代码仓库。gogs 是用 golang 开发的一款开源 git 服务器,小巧灵活,轻量稳定,目前已经有不少个人开发者和公司在使用;相对于臃肿庞大的 gitlabgogs 显得轻量小巧很多,gogs 还支持 sqlite 数据库,可以说 gogs 非常适合个人开发者。据说这个项目的主要开发者是四个中国人,有点厉害,牛 P !!!

快速安装部署

虽说 gogs 很好,但是还是有不少坑,官方文档相对简洁,对于新手来说不友好!

参考

参考

参考

// 安装 git
# apt install -y git
# yum install -y git
// 添加 git 用户并设置家目录
# useradd -d /opt/git/ -m -s /bin/bash git
# su - git
//下载 注意对应的机器位数、版本,最好选择 CDN 
$ wget https://dl.gogs.io/0.11.43/gogs_0.11.43_linux_amd64.tar.gz
$ tar -xvf gogs*.tar.gz

配置完 systemd 之后最好重启下系统,再启动服务

# cp /opt/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/gogs.service
# nano /etc/systemd/system/gogs.service

[Unit]
Description=Gogs
After=syslog.target
After=network.target
After=mariadb.service mysqld.service postgresql.service memcached.service redis.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=git
Group=git
WorkingDirectory=/opt/git/gogs
ExecStart=/opt/git/gogs/gogs web
Restart=always
Environment=USER=git HOME=/opt/git

[Install]
WantedBy=multi-user.target

# systemctl enable gogs
# systemctl start gogs

gogs 启动之后默认监听本地 3000 端口,如果打算部署到公网上,最好设置反向代理。

nginx

location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header  X-Real-IP  $remote_addr;
}

gogs 的是通过 web 的方式进行安装配置的。浏览器访问 http://ip:port 这样的形式,进行进一步安装。

不能使用 ssh 的方式拉取代码,具体原因是配置文件中并未开启相关设置,进行如下设置,开启 ssh 服务,另外单独设置 ssh 端口。

$ vim /opt/git/gogs/custom/conf/app.ini

START_SSH_SERVER = true

SSH_PORT         = 2222

后续