【开源推荐】go语言写的极易搭建的git服务gogs

简介: 【6月更文挑战第4天】

44k star,推荐一款go语言写的极易搭建的git服务gogs

如果你想自己搭建一套git仓库,又觉着gitlab太复杂了,那么可以看下这个项目。

安装简洁、界面清晰简单,如下:

image.png

开源地址可以到文末查看

Gogs是一个自托管的Git服务项目,旨在提供一个简单、稳定且可扩展的Git服务,可以以最无痛的方式进行设置。

Gogs项目简介

Gogs(发音为/gɑgz/)是一个开源项目,它致力于构建一个简单、稳定且可扩展的自托管Git服务。

该项目的目标是能够在所有Go支持的平台上,包括Linux、macOS、Windows和基于ARM的系统,通过独立的二进制分发来进行设置。

特点

  • 用户仪表板:提供简单的个人用户的历史记录,有简单的信息记录
  • 多协议访问:常规项支持通过SSH、HTTP和HTTPS协议访问仓库。
  • 管理功能:带有用户管理,仓库管理项
  • Webhooks和Git钩子:支持仓库和组织的webhooks,包括Slack、Discord和Dingtalk。

image.png

  • 问题跟踪和合作:支持仓库问题、拉取请求、wiki、受保护分支和协作。
  • 迁移和镜像:支持从其他代码托管平台迁移和镜像仓库及其wiki。
  • Web编辑器:用于快速编辑仓库文件和wiki。
  • 多种认证方式:支持SMTP、LDAP、反向代理、GitHub.com和GitHub Enterprise的认证,包括双因素认证。
  • 丰富的数据库支持:支持多种数据库后端,包括PostgreSQL、MySQL、SQLite3和TiDB。
  • 本地化:支持超过31种语言的本地化。

快速安装部署

个人使用的话,需要的资源很少,一个树莓派就足够了,如果是团队使用,那么建议2c512MB的配置

安装Gogs非常简单,这里介绍下docker如何安装:

image.png

如下为最简化实践,直接使用的sqllite数据库,如有需要可以自行安装mysql或者pg

version: "3.8"
services:
  gogs:
    image: gogs/gogs
    restart: unless-stopped
    ports:
      - 3000:3000

启动后,访问3000端口,需要进行一个简单的设置

image.png

新建一个项目作为测试,可以看到还有wiki可以编辑
image.png

image.png

开源地址:https://github.com/gogs/gogs

相关文章
|
8天前
|
JSON 测试技术 Go
零值在go语言和初始化数据
【7月更文挑战第10天】本文介绍在Go语言中如何初始化数据,未初始化的变量会有对应的零值:bool为`false`,int为`0`,byte和string为空,pointer、function、interface及channel为`nil`,slice和map也为`nil`。。本文档作为指南,帮助理解Go的数据结构和正确使用它们。
54 22
零值在go语言和初始化数据
|
10天前
|
安全 算法 程序员
在go语言中使用泛型和反射
【7月更文挑战第8天】本文介绍go支持泛型后,提升了代码复用,如操作切片、映射、通道的函数,以及自定义数据结构。 泛型适用于通用数据结构和函数,减少接口使用和类型断言。
73 1
在go语言中使用泛型和反射
|
13天前
|
缓存 编译器 Shell
回顾go语言基础中一些特别的概念
【7月更文挑战第6天】本文介绍Go语言基础涵盖包声明、导入、函数、变量、语句和表达式以及注释。零值可用类型如切片、互斥锁和缓冲,支持预分配容量以优化性能。
43 2
回顾go语言基础中一些特别的概念
|
14天前
|
XML JSON Go
Swoole与Go系列教程之WebSocket服务的应用
在 WebSocket 协议出现之前,Web 应用为了能过获取到实时的数据都是通过不断轮询服务端的接口。轮询的效率、延时很低,并且很耗费资源。
1026 1
Swoole与Go系列教程之WebSocket服务的应用
|
9天前
|
JSON Java Go
Go 语言性能优化技巧
在Go语言中优化性能涉及数字字符串转换(如用`strconv.Itoa()`代替`fmt.Sprintf()`)、避免不必要的字符串到字节切片转换、预分配切片容量、使用`strings.Builder`拼接、有效利用并发(`goroutine`和`sync.WaitGroup`)、减少内存分配、对象重用(`sync.Pool`)、无锁编程、I/O缓冲、正则预编译和选择高效的序列化方法。这些策略能显著提升代码执行效率和系统资源利用率。
45 13
|
4天前
|
Cloud Native Java Go
为什么要学习Go语言?
GO logo的核心理念,即简单胜于复杂。使用现代斜体无衬线字体与三条简单的运动线相结合,形成一个类似于快速运动的两个轮子的标记,传达速度和效率。字母的圆形暗示了GO地鼠的眼睛,创造了一个熟悉的形状,让标记和吉祥物很好地搭配在一起。
19 4
|
9天前
|
设计模式 Go
Go语言设计模式:使用Option模式简化类的初始化
在Go语言中,面对构造函数参数过多导致的复杂性问题,可以采用Option模式。Option模式通过函数选项提供灵活的配置,增强了构造函数的可读性和可扩展性。以`Foo`为例,通过定义如`WithName`、`WithAge`、`WithDB`等设置器函数,调用者可以选择性地传递所需参数,避免了记忆参数顺序和类型。这种模式提升了代码的维护性和灵活性,特别是在处理多配置场景时。
44 8
|
10天前
|
前端开发 JavaScript Go
|
8天前
|
存储 Go
go语言中fmt格式化包和内置函数汇总
【7月更文挑战第10天】本文介绍fmt包和`Errorf`用于创建格式化的错误消息。`fmt`包还涉及一些接口,如`Formatter`、`GoStringer`、`ScanState`、`Scanner`和`Stringer`,支持自定义格式化和输入/输出处理。
18 1
|
8天前
|
Go
go语言中格式化输出的占位符
【7月更文挑战第10天】`fmt` 包在 Go 语言中用于格式化输出,包括不同类型的占位符:%v(默认格式)、%+v(带字段名的结构体)、%#v(Go语法表示)、%T(类型表示)、%%(百分号)。布尔值用%t,整数有%b、%c、%d、%o、%q、%x、%X和%U。浮点数和复数用%b、%e、%E、%f、%g、%G。字符串和字节切片用%s、%q、%x、%X。指针用%p。占位符可配合+、-、#、空格和0进行调整。宽度和精度控制输出格式,例如 %.4g 控制小数精度。Go 没有 `%u`,但无符号整数默认打印为正数。运算符包括逻辑、比较、加减、乘除、移位、按位和按位异或等。
18 1