gogs简介

Gogs的目标是打造一个最简单、最快速和最轻松的方式搭建自助Git服务。使用Go语言开发使得Gogs能够通过独立的二进制分发,并且支持Go语言支持的所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。

功能特性

  • 支持活动时间线
  • 支持 SSH 以及 HTTP/HTTPS 协议
  • 支持 SMTP、LDAP 和反向代理的用户认证
  • 支持反向代理子路径
  • 支持用户、组织和仓库管理系统
  • 支持添加和删除仓库协作者
  • 支持仓库和组织级别 Web 钩子(包括 Slack 集成)
  • 支持仓库 Git 钩子和部署密钥
  • 支持仓库工单(Issue)、合并请求(Pull Request)、Wiki 以及保护分支
  • 支持迁移和镜像仓库以及它的 Wiki
  • 支持在线编辑仓库文件和 Wiki
  • 支持自定义源的 Gravatar 和 Federated Avatar
  • 支持 Jupyter Notebook
  • 支持邮件服务
  • 支持后台管理面板
  • 支持 MySQL、PostgreSQL、SQLite3、MSSQL 和 TiDB(实验性支持) 数据库
  • 支持多语言本地化(22 种语言)

部署环境

拉取镜像

通过docker命令拉取gogs镜像

使用命令操作如下:

docker pull gogs/gogs

命令行操作如下所示:

新建gogs目录

在/home/software下新建文件夹gogs

  • 进入/home/software路径下新建,命令如下:

mkdir gogs

  • 在根目录下直接新建,命令如下:

mkdir home/software/gogs

  • 创建多级目录,命令如下:

mkdir -p software/gogs

开放服务器端口

配置端口在服务器的安全组中进行配置,开放的端口,用于gogs/docker服务端口进行映射。

启动服务

启动服务命令如下:

docker run --name=gogs -p 8234:22 -p 8235:3000 -v /home/software/gogs:/data gogs/gogs

参数说明:

  • -p: 端口映射,将容器的22端口映射到宿主机的1006端口,将容器的3000端口映射到宿主机的1007端口
  • -name: 指定容器名称
  • -net: 将容器加入backend网络,目的是为了能够连接backend网络中的mysql数据库
  • -v: 数据卷挂载, 用于将容器和数据分离

启动操作如下所示:

安装配置

通过地址访问,格式为:http://服务器ip+映射端口/install,

如:http://101.111.22.31:8235/install,

访问进入如下页面,进行配置数据:

  1. 配置数据库

    数据库类型选择为SQLite3,免配置,直接使用。

  2. 基本信息配置

    基本信息中,配置信息如下所示:



  • 应用名称:支持自定义,可维护成自己的专属名称
  • 仓库根目录:默认即可
  • 运行系统用户:也默认即可
  • 域名:服务器的公网地址,如:http://101.111.22.31
  • SSH端口号:服务器的映射端口,如:8234
  • HTTP端口:监听端口默认为3000
  • 应用URL:公网地址+映射端口,如:http://101.111.22.31:8235
  • 日志路径:默认即可
  1. 可选配置

    可选配置,看个人所需,其他暂时不配置,配置管理员账号即可。

gogs使用

配置完成后,访问地址,进入到登录页,如下所示:

注册&登录

在之前配置基础信息时,没配置管理员账号的话,在登录页,注册个账号便可以登录;如果有配置管理员账号,使用配置的账号直接登录即可。注册页面如下:

控制面板

控制面板界面如下所示:

  • 左侧:个人的操作记录,比如:提交代码,创建合并请求,请求关闭...
  • 右侧:我的仓库:属于自己的仓库,拥有管理权限
  • 右侧:参与协作的仓库:参与的仓库,没有所有权,权限按仓库所属人进行分配

仓库管理

仓库管理界面如下所示:

在该页面,可以操作如下设置:

  • 基本设置,可配置仓库名称、可见性等
  • 管理协作者,添加仓库的协作者,一起维护仓库内容
  • 管理分支,配置默认分支和保护分支
  • 管理Web钩子,Gogs上发生指定事件时对指定 URL 发送 POST 通知
  • 管理Git钩子
  • 管理部署密钥
  • 转移仓库所有权

工单管理

工单管理界面如下所示:

在该页面,可以查看自己的以及指派给自己的工单,也可以查看工单状态,便捷管理。

合并请求

合并请求界面如下所示:

在该页面,可以查看合并请求的状态。

创建仓库

创建仓库界面如下所示:

点击面板中的+号,选择创建仓库,即可进入到该页面。具体创建自己操作一波就可以了,很简单。

代码操作

  • 克隆代码

    使用如下命令操作:

git clone http://101.111.22.31:8235/yihuqingjiu/Auto_Test.git

截图如下:

  • 提交代码

    提交代码的操作,可以祥见这篇博文:Git基本操作命令合集,这里就不赘述了。提交代码后,可以在面板中查看,如下所示:

问题总结

  1. 配置gogs基础信息时,想使用本地的Mysql数据库,但一直提示权限错误,没能解决,最终还是使用了免配置的sqlite3。

  2. 想使用ssh方式拉取代码,在服务器端,生成的公钥,一直提示失败,也没能解决,报错提示信息:invalid key format: illegal base64 data at input byte 171。

以上就是今天分享的内容,如有博友遇到如上2个问题,望告知一二,祝大家双节快乐。

Docker系列——利用gogs搭建属于自己的git服务的更多相关文章

  1. 基于Gitea搭建属于自己的Git服务

    作者:IT王小二 博客:https://itwxe.com 一.搭建环境和前提 搭建环境: 操作系统:CentOS7.6 Docker版本:docker-ce-18.09.9 Lsky Pro版本:1 ...

  2. 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器

    一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gog ...

  3. 我搭建了一套企业级私有Git服务,抗住了每天上万次攻击!

    写在前面 事情是这样的,今年疫情期间,我在某云购买了一套服务器,做什么呢?不是用来部署项目,也不是用来搭建网站,而是用来做代码备份和管理.没错,都是我个人的代码,也许你会说,你个人能有多少代码啊?确实 ...

  4. Git 系列(二):初步了解 Git

    在这个系列的介绍篇中,我们学习到了谁应该使用 Git,以及 Git 是用来做什么的.今天,我们将学习如何克隆公共 Git 仓库,以及如何提取出独立的文件而不用克隆整个仓库. 由于 Git 如此流行,因 ...

  5. Docker+Gogs搭建个人Git服务

    欢迎 经常使用Github的我,Github它功能强大,操作简单,不用FQ,所以大家会使用Github进行代码托管,但是,Github的私仓收费的,而且对于普通个人用户来说,价格也不便宜.很多人搭建自 ...

  6. 利用 ELK 搭建 Docker 容器化应用日志中心

    利用 ELK 搭建 Docker 容器化应用日志中心 概述 应用一旦容器化以后,需要考虑的就是如何采集位于 Docker 容器中的应用程序的打印日志供运维分析.典型的比如SpringBoot应用的日志 ...

  7. Centos7使用Docker安装Gogs搭建git服务器

    gihub地址:https://github.com/gogs/gogs gogs官网:https://gogs.io/ gihub官方docker安装gogs方法:https://github.co ...

  8. Docker系列——InfluxDB+Grafana+Jmeter性能监控平台搭建(三)

    在之前系列博文中,已经介绍完了数据采集和数据存储,那数据如何展示呢?所以今天就专门来讲下数据如何展示的问题. 以前博文参考: Docker系列--InfluxDB+Grafana+Jmeter性能监控 ...

  9. docker进阶-利用dcoker Swarm搭建简单集群

    什么是Swarm   在介绍Swarm之前我们要说一下什么Docker三剑客? Docker-Machine:负责在多种平台上快速安装 Docker 环境. Docker-Compose:Docker ...

随机推荐

  1. qt exe文件添加图标

    Qt 怎样生成带图标的exe(转载) 一.问题描述 当我们在 Windows 下用 VS 生成 exe 程序时,如果窗口程序指定了图标,那么生成的 exe 程序便是指定的图标模样. 但是,当使用 Qt ...

  2. 2020重新出发,MySql基础,MySql字符集

    目录 MySQL字符集和校对规则详解 MySQL字符集的转换过程 MySQL查看字符集和校对规则 MySQL设置默认字符集和校对规则 服务器字符集和校对规则 数据库字符集和校对规则 表字符集和校对规则 ...

  3. k8s-1.15.0集群部署+dashboard

    环境:外网环境硬件master-centos7.4  2核4G node1-centos7.4     2核4Gnode2-centos7.4     2核4G软件:三台服务器 :docker-19. ...

  4. 大数据计算的基石——MapReduce

    MapReduce Google File System提供了大数据存储的方案,这也为后来HDFS提供了理论依据,但是在大数据存储之上的大数据计算则不得不提到MapReduce. 虽然现在通过框架的不 ...

  5. IDEA导入Eclipse的快捷键KeyMap

    说在前面的话 现在由于IDEA编辑器越来越火,因此很多程序员都从eclipse转入IDEA,转入后确实发现很强大的编辑器,但是一直为快捷键而忧愁,因为eclipse毕竟跟随了自己好多年了,突然更换编辑 ...

  6. Python | 详解Python中的协程,为什么说它的底层是生成器?

    今天是Python专题的第26篇文章,我们来聊聊Python当中的协程. 我们曾经在golang关于goroutine的文章当中简单介绍过协程的概念,我们再来简单review一下.协程又称为是微线程, ...

  7. PageObject六大原则

    The public methods represent the services that the page offers 公共方法表示页面提供的服务 Try not to expose the i ...

  8. NGUI List优化

    腾讯是如何做 Unity 手游性能优化的 https://juejin.im/entry/5774af485bbb50005925a3b1 Unity - NGUI - 优化ScrollView的一些 ...

  9. ios 常见性能优化

    1. 用ARC管理内存 2. 在正确的地方使用reuseIdentifier 3. 尽可能使Views透明 4. 避免庞大的XIB 5. 不要block主线程 6. 在Image Views中调整图片 ...

  10. 在Windows和MacOS下编译Lua

    官方说明: http://www.lua.org/manual/5.3/readme.html 在Windows下编译Lua动态链接库的注意事项: 1. 创建一个空的DLL项目: 2. 将src文件夹 ...