Gogs: 打造属于你自己的轻量级 Git 服务

在软件开发的世界里,Git 已经成为版本控制的事实标准。GitHub、GitLab 等平台提供了强大的托管服务,但有时候,我们需要一个完全属于自己的私有 Git 仓库------可能是为了代码安全,可能是为了定制化需求,可能是为了集成到现有服务中,也可能只是想在自己的服务器上搭建一个个人代码库。开源gitlab有点重,最近我在GitHub上发现了一个轻量级项目Gogs

什么是 Gogs?

Gogs 是一个用 Go 语言编写的自助 Git 托管服务。它的目标是以最简单、最轻松的方式搭建一个简单、稳定且可扩展的 Git 服务。得益于 Go 语言的跨平台特性,Gogs 可以在 Linux、macOS、Windows 以及基于 ARM 的系统上以独立的二进制文件运行。

该项目在github上已有47.5k star

github地址:github.com/gogs/gogs

文档地址: gogs.io/

为什么选择 Gogs?

轻量级,低资源占用

Gogs 最吸引人的特点就是轻量。有人在仅有 64MB 内存的 Docker 容器中运行 Gogs!对于团队协作,2 个 CPU 核心和 512MB 内存就足够起步了。

功能丰富,不输大厂

别看 Gogs 轻量,该有的功能一个都不少:

  • 用户面板:用户仪表板、个人资料和活动时间线
  • 多协议访问:支持 SSH、HTTP 和 HTTPS 协议访问仓库
  • 完整的管理功能:用户、组织和仓库管理
  • Webhook:支持 Slack、Discord、钉钉等
  • Git 钩子:Git hooks、部署密钥和 Git LFS
  • 协作功能:工单(Issues)、合并请求(Pull Requests)、Wiki、受保护分支
  • 仓库迁移:从其他代码托管平台迁移和镜像仓库
  • Web 编辑器:在线编辑仓库文件和 Wiki
  • 多格式渲染:支持 Jupyter Notebook 和 PDF 渲染
  • 多认证方式:SMTP、LDAP、反向代理、GitHub.com、GitHub Enterprise,支持两步验证
  • 多语言支持:超过 31 种语言的本地化

数据库支持丰富

Gogs 支持多种数据库后端:PostgreSQL、MySQL、SQLite3,以及任何支持这些协议的数据库。

Docker 部署:5 分钟快速上手

以下是Docker具体的部署步骤:

第一步:拉取镜像

bash 复制代码
docker pull gogs/gogs

第二步:创建docker-compose.yml文件

创建一个部署目录gogs,在该目录下创建docker-compose.yml文件,内容如下:

yaml 复制代码
services:
  gogs:
    image: gogs/gogs
    container_name: gogs
    ports:
      - "10022:22"
      - "10880:3000"
    volumes:
      - ./data:/data
    restart: unless-stopped

这里解释一下各个参数的含义:

  • - "10022:22":将宿主机的 10022 端口映射到容器的 22 端口(SSH 服务)
  • - "10880:3000":将宿主机的 10880 端口映射到容器的 3000 端口(Web 服务)
  • - ./data:/data:将宿主机的 ./data 目录挂载到容器的 /data 目录

第三步:运行容器

复制代码
docker-compose up -d 

出现如下内容则说明启动成功

第四步:初始配置

启动容器后,通过浏览器访问 http://你的服务器IP:10880 进入安装页面。

我们需要先创建好所需要的数据库,我使用的是mysql

第五步:使用

使用相对来说比较简单,此处不多做讲解

常见问题与解决方案

1. 内置 SSH 服务器不推荐

在 Docker 容器内使用内置 SSH 服务器不被推荐。建议使用映射到宿主机的 SSH 端口(如示例中的 10022)。

其他方式部署

还有其他二进制包部署等方式,家人们可参考一下文章

使用 Gogs 搭建自己的 Git 服务器:blog.mynook.info/post/host-y...

结语

Gogs 是一个小而美的 Git 服务解决方案。无论你是想在个人服务器上搭建私有的代码仓库,还是为小团队提供一个轻量级的代码协作平台,Gogs 都是一个值得考虑的选择。

它的简洁并不意味着功能的缺失,相反,Gogs 在保持轻量的同时,提供了 Git 托管服务所需的核心功能。加上 Docker 的一键部署,你可以在几分钟内拥有一个属于自己的 Git 服务。

相关推荐
慕容引刀13 小时前
或许你真的需要这个Git神器:让团队提交文案终于对齐了
人工智能·git·vscode·自然语言处理·github
jjh+++(求关注版)13 小时前
git-命令速查清单
git
yanlaifan1 天前
git版本管理工具中的回车换行转换逻辑
git
小僧景贤2 天前
【零门槛入门】嵌入式新手极简 Git 上手教程
git·固件开发·嵌入式版本管理
克里斯蒂亚诺更新2 天前
云效和IDEA关于git的相通使用
git
Gavynlee2 天前
Git 操作问题排查与解决方案记录(Gitee 实战)
git·elasticsearch·gitee
邪修king2 天前
Re:Linux系统篇(十):从零上手 Git + GitHub(Ubuntu 环境实操完整版|个人代码归档必备)
linux·git·github
李可以量化2 天前
Redis 从了解到精通(三)下:性能基准测试与量化场景性能避坑指南
redis·git·python·量化交易·qmt·ptrade
青 春 记 忆2 天前
零基础入门Python11|Git实战:为任务管理器建立版本历史
开发语言·git·vscode·python·python3.11
牢姐与蒯2 天前
Linux基础开发工具之版本控制器git
git