本来想在 Github 上建一个私仓,但是发现只能设置 3 个贡献者。

国内的码云也只能设置 5 个。

无意间看到了使用 gogs 可以搭建私服,正好手头有空闲的服务器,于是开干!

https://gogs.io/

1、安装 git

yum install git

2、安装MySQL

安装过程省略。

安装后登录 MySQL 进行如下配置:

create database gogs default character set utf8mb4 collate utf8mb4_unicode_ci;

# 这里我新建了一个用户用来访问gogs数据库
CREATE USER 'pig'@'%' IDENTIFIED BY 'xxxx';
GRANT ALL ON gogs.* TO 'pig'@'%';

3、安装gogs

3.1 创建git用户

建议使用 git 用户,因为 gogs 配置文件默认使用的 git 用户。

useradd git
passwd git设置密码

3.2 下载解压gogs

su git
cd wget https://dl.gogs.io/0.11.29/linux_amd64.zip
# unzip 命令不可用的话需先安装
unzip linux_amd64.zip

3.3 配置gogs

vim /home/git/gogs/scripts/init/debian/gogs

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="GoGs Git Service"
NAME=gogs
SERVICEVERBOSE=yes
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
WORKINGDIR=/home/git/gogs #根据自己的目录修改
DAEMON=$WORKINGDIR/$NAME
DAEMON_ARGS="web"
USER=git #修改对应用户

3.4 切回root,拷贝文件和服务

#拷贝到init.d下
cp /home/git/gogs/scripts/init/debian/gogs /etc/init.d/
#添加可执行权限
chmod +x /etc/init.d/gogs
#拷贝service
cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/

3.5 启动

systemctl start gogs.service

4、配置 gogs

此时,使用 ip:3000 就可以访问了

P.S. 阿里云的坑

阿里云的主机默认是无法访问 3000 端口的,解决方法

① 登录到阿里云控制台,进入到自己的云主机管理页面

② 点击『防火墙』

③ 添加 3000 端口的访问规则

确定,然后就可以继续访问之前的页面了。

第一次访问 Gogs,浏览器进入安装页面,如图所示填写字段

点击 install gogs,安装成功以后会直接进入 gogs 首页,在这里可以注册或者登录,完全像是一个正常的网站。

若在安装页面没有配置管理员,那么第一个注册的用户默认自动变成管理员,之后注册的用户都是普通用户。

配置文件详解

配置文件位于:

/home/git/gogs/custom/conf/app.ini

其中参数的详细解释可以看官网:https://gogs.io/docs/advanced/configuration_cheat_sheet

禁止用户注册

为了系统安全性,考虑禁止用户注册,只能由管理员创建帐号。

将参数 DISABLE_REGISTRATION 设置为 true。

DISABLE_REGISTRATION = true

此时需要在页面进行创建账号:

至此,基于 gogs 的 Git 私仓搭建基本完毕。


参考:

https://www.jianshu.com/p/63206dad0afa

https://blog.csdn.net/qq_22638399/article/details/80658196

https://zhuanlan.zhihu.com/p/30798837

https://www.jianshu.com/p/28e8aa8f9ec4

手把手教你使用gogs搭建git私有仓库的更多相关文章

  1. 使用gogs搭建git私有仓库

    搭建gogs 我的机器环境:centos 7 1.安装git yum install git   2.安装mysql gogs的数据存在mysql中,需要安装一个mysql来存数据,当然也有其他的选择 ...

  2. 用yunio网盘搭建git私有仓库

      研究生开始奔波于教研室和寝室之间,于是想搭建一个git私有仓库来管理自己在做的项目或者学习资料.一来可以很方便的管理项目,二来可以学习使用git.我的主要工作平台是Linux,这也是我选择yuni ...

  3. 手把手教你使用 VuePress 搭建个人博客

    手把手教你使用 VuePress 搭建个人博客 有阅读障碍的同学,可以跳过第一至四节,下载我写好的工具包: git clone https://github.com/zhangyunchencc/vu ...

  4. 手把手教你认识并搭建Nginx

    手把手教你认识并搭建Nginx Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor ...

  5. 手把手教你用vue-cli搭建vue项目

    手把手教你用vue-cli搭建vue项目 本篇主要是利用vue-cli来搭建vue项目,其中前提是node和npm已经安装好,文章结尾将会简单提到一个简单的例子.使用vue-cli搭建项目最开始我也是 ...

  6. 沉淀,再出发——手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群

    手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群 一.准备,再出发 在项目启动之前,让我们看一下前面所做的工作.首先我们掌握了一些Linux的基本命令和重要的文件,其次我们学会 ...

  7. 手把手教你用webpack3搭建react项目(开发环境和生产环境)(一)

    开发环境和生产环境整个配置源码在github上,源码地址:github-webpack-react 如果觉得有帮助,点个Star谢谢!! (一)是开发环境,(二)是生产环境. 一.首先创建packag ...

  8. Windows 使用 Gogs 搭建 Git 服务器(转)

    Windows 使用 Gogs 搭建 Git 服务器   随便说两句 之前有使用 Gitblit 在Windows搭建Git服务器,用的也挺好的,可能安装起来略麻烦一点.现在全用 Gogs 在wind ...

  9. 手把手教你用Python搭建自己的量化回测框架【均值回归策略】

    手把手教你用Python搭建自己的量化回测框架[均值回归策略] 引言 大部分量化策略都可以归类为均值回归与动量策略.事实上,只有当股票价格是均值回归或趋势的,交易策略才能盈利.否则,价格是随机游走的, ...

随机推荐

  1. nacos 的服务注册与发现

    nacos的服务注册于发现. 这个要求服务统一注册到注册中心,然后调用的时候就不需要通过ip来调用,直接通过服务名即可. 服务提供者 pom.xml配置,需要spring-cloud-starter- ...

  2. 使用php开发,基于swoole扩展开发的工具 swoole-crontab 作业/任务调度

    Swoole-Crontab(基于Swoole扩展) 1.概述 基于swoole的定时器程序,支持秒级处理. 异步多进程处理. 完全兼容crontab语法,且支持秒的配置,可使用数组规定好精确操作时间 ...

  3. 重载&重写的区别

    重载(Overload) 1.重载(Overload)是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 2.重载(Overload)是一个类中多态性的一种 ...

  4. 【shell脚本】一键部署LNMP===deploy.sh

    一键部署mysql,php,nginx,通过源码安装部署 #!/bin/bash # 一键部署 LNMP(源码安装版本) menu() { clear echo " ############ ...

  5. gcc 编译安装

    wget https://kojipkgs.fedoraproject.org//packages/gcc/7.1.1/1.module_1a179a7b/src/gcc-7.1.1-1.module ...

  6. Web前端基础(2):HTML(二)

    1. body中的相关标签 1.1 标题标签:hn HTML提供<hn>系列标签,用于修饰标签,包含:<h1>.<h2>.<h3>.<h4> ...

  7. Jquery补充及插件

    此篇为jQuery补充的一些知识点,详细资料请看另一篇博客,地址:https://www.cnblogs.com/chenyanbin/p/10454503.html 一.jQuery中提供的两个函数 ...

  8. 2-1-动态方法:ByTagName()

    动态方法:ByTagName() <ul id="list"> <li></li> <li></li> <li&g ...

  9. js 时间戳转化为时间

    // 时间戳转为时间 bb="xxxx"://时间戳 var date = new Date(bb); Y = date.getFullYear() + '-'; M = (dat ...

  10. 定时器每隔10秒钟刷新一次jqgrid

    //console.log('每隔*秒钟刷新一次'); var timer = window.setInterval(function() { $("#table_list_1") ...