Toggle Navigation
首页
Golang
PHP
Laravel
Magento
Linux
数据库
MySQL
Redis
Mongodb
热门知识
程序与生活
架构师之路
静态站点
GitHub
主页
使用Gogs搭建自己的代码仓库
使用Gogs搭建自己的代码仓库
12-20
Mark
397
###什么是Gogs? Gogs 是一款使用golang编写的轻量的、开源的、自助式git托管服务。其功能与 github 及 gitlab 比较相似,不过gogs的部署要比前者简单的多,而且其功能也比较轻量。使用Go语言开发使得Gogs能够通过独立的二进制分发,并且支持Go语言支持的所有平台,包括Linux、MacOSX、Windows以及ARM平台。 ###安装使用 **1、新建用户** Gogs 默认以 git 用户运行(你应该也不会想一个能修改 ssh 配置的程序以 root 用户运行吧?)。 运行 sudo adduser git 新建好 git 用户。 su git 以 git 用户登录,到 git 用户的主目录中新建好 .ssh 文件夹。 **2、下载解压安装包** 我使用的是预编译的二进制包。需要从源码编译的话,请参考一般 Go 语言项目的编译。下载后解包到你喜欢的地方,例如 /usr/share/gogs/ 或者 /home/git/gogs/。文件夹的内容如下。 ``` $ ls /home/git/gogs/ custom data gogs LICENSE log public README.md README_ZH.md scripts templates ``` **3、运行安装** 首先建立好数据库。在 Gogs 目录的 scripts/mysql.sql 文件是数据库初始化文件。执行 mysql -u root -p < scripts/mysql.sql (需要输入密码)即可初始化好数据库。 然后登录 MySQL 创建一个新用户 gogs,并将数据库 gogs 的所有权限都赋予该用户。 ``` $ mysql -u root -p > # (输入密码) > create user 'gogs'@'localhost' identified by '密码'; > grant all privileges on gogs.* to 'gogs'@'localhost'; > flush privileges; > exit; ``` 运行 gogs web 把 Gogs 运行起来,然后访问 http://127.0.0.1:3000/ 来进行安装,填写好表单之后提交就可以了。 需要注意的是,0.6.9.0903 Beta 版本有个 bug,允许在关闭注册的情况下不添加管理员,这样安装完成之后将没有任何用户可以登录。所以请务必在安装界面指定一个管理员帐号。 **4、配置调整** 配置文件位于 Gogs 目录的 custom/conf/app.ini,是 INI 格式的文本文件。详细的配置解释和默认值请参考[官方文档](https://gogs.io/docs/advanced/configuration_cheat_sheet.html),其中关键的配置大概是下面这些。 - RUN_USER 默认是 git,指定 Gogs 以哪个用户运行 - ROOT 所有仓库的存储根路径 - PROTOCOL 如果你使用 nginx 反代的话请使用 http,如果直接裸跑对外服务的话随意 - DOMAIN 域名。会影响 SSH clone 地址 - ROOT_URL 完整的根路径,会影响访问时页面上链接的指向,以及 HTTP clone 的地址 - HTTP_ADDR 监听地址,使用 nginx 的话建议 127.0.0.1,否则 0.0.0.0 也可以 - HTTP_PORT 监听端口,默认 3000 - INSTALL_LOCK 锁定安装页面 - Mailer 相关的选项 其中,Mailer 可以使用 Mailgun 的免费邮件发送服务,将 Mailgun 的 SMTP 配置填入到配置中就好。 **5、nginx反向代理** 在 /etc/nginx/sites-available 中新建一个文件,把以下内容写入文件中: ``` 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/; } } ``` 然后进入 /etc/nginx/sites-enabled 中,执行 ln -s ../sites-available/配置文件名 启用这个配置文件。 最后重启 nginx 就好了,Ubuntu 下是 sudo service nginx restart。 实际效果如下图所示:  Gogs github地址:[https://github.com/gogits/gogs](https://github.com/gogits/gogs)
最新文章
WebSocket详解
Gopher面试中的Coding(三)
Golang用os/signal包实现平滑重载配置文件
Nginx实现负载均衡的几种方式
Golang中子goroutine与主协程同步的四种实现
Dockerfile文件详解
Golang开发微信公众号
Centos yum学习
最热文章
Magento上传文件、缩略图和导出CSV
1112
Magento实现下载csv数据表格
1100
Magento优化 – MySQL读写分离
984
Magento后台添加rule规则
803
Laravel带有条件搜索的分页
753
10个实用的PHP正则表达式
673
Magento 建立自己的shell命令
659
删除MySQL binlog实操
647
热门标签
上传
导出
下载
读写分离
rule
规则
laravel分页
正则
shell
binlog
Collection
命名空间
解锁
锁表
处理
string
Git
读写
事务处理
模块
表分割
进阶
事务处理
架构
系统
缓存
日志分析
time
composer
函数
HTTPS
事务
分布式锁
mongodb
fmt
日志分割
redis sentinel
交叉编译
schedule
多数据库
git服务器
gogs
channel
package
golang
concat
json
版本号
发展方向
php
protobuf
日志过滤
算法
docker
elasticsearch
defer
panic
get
post
写文件
模型关系
redis
rpc
主从配置
package
curl
Shell
golang算法
laravel
Dataflow
生成插件
直接下载
mongodb
参数
代码部署
protobuf
并发
量级
数据类型
错误传递
队列
Go指针
微信公众号
成长
路上
风景
方法
grpc
Dockerfile
Redis持久化
protobuf
yum
goroutine
重载配置
Gopher面试
负载均衡
websocket