简介
什么是 Gogs ?
Gogs 是一个轻量级、自托管的 Git 服务,旨在提供简单、高效的 Git 版本控制解决方案。它允许用户在自己的服务器上快速部署 Git 仓库,便于团队协作和代码管理。使用
Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的所有平台,包括 Linux、macOS、Windows 和基于 ARM 的操作系统。
主要特点
- 易于安装: 用户只需运行适合其平台的二进制文件,或通过
Docker、Vagrant 等工具进行部署。 - 跨平台支持:
Gogs 可以在多种操作系统上运行,包括 Windows、Mac、Linux 和
ARM 等。 - 轻量级:
Gogs 的最低系统要求非常低,可以在 Raspberry Pi 等低配置设备上运行,甚至一些用户在 NAS 设备上也能成功部署。 - 开源免费:
Gogs 是 100% 开源的,遵循 MIT 许可证,源代码可在
GitHub 上获取,用户无需支付费用即可使用。
应用场景
- 团队协作:
Gogs 适合开发团队用于管理代码和项目,提供版本控制和协作功能。 - 私有项目托管: 适合需要在内部网络中托管代码的企业和开发者,确保数据安全。
- 轻量级解决方案: 对于资源有限的环境(如小型服务器或单板计算机),
Gogs 提供了一个经济实惠的 Git 解决方案。

Gogs 以其简洁和高效的特性,成为了许多开发者和团队的理想选择。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 gogs ,选择第一个 gogs/gogs,版本选择 latest。
本文写作时, latest 应该是
0.13.2 之后的版本;

从软件界面看是 0.14.0+dev

卷
在 docker 文件夹中,创建一个新文件夹 gogs
,并在其中建一个子文件夹 data

端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
| | |
|---|
3234 | 3000 | |
3222 | 22 | 用于 SSH 访问,以便通过 Git 协议进行代码推送和拉取 |

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
# 新建文件夹 gogs 和 子目录
mkdir -p /volume1/docker/gogs/data
# 进入 gogs 目录
cd /volume1/docker/gogs
# 运行容器
docker run -d \
--restart unless-stopped \
--name gogs \
-p 3234:3000 \
-p 3222:22 \
-v $(pwd)/data:/data \
gogs/gogs:latest
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
version: '3'
services:
gogs:
image:gogs/gogs:latest
container_name:gogs
restart:unless-stopped
ports:
-"3234:3000"
-"3222:22"
volumes:
-./data:/data
然后执行下面的命令
# 新建文件夹 gogs 和 子目录
mkdir -p /volume1/docker/gogs/data
# 进入 gogs 目录
cd /volume1/docker/gogs
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d

运行
在浏览器中输入 http://群晖IP:3234 就能看到向导界面

既然是简易,数据库就选择 SQLite3

修改
- 域名: 填写
Docker 主机的主机名或 IP 地址,将默认的
localhost 改为 192.168.0.197 - 应用 URL:填写公开的访问地址,将默认的
http://localhost:3000/ 改为 http://192.168.0.197:3234/
如果要启用 SSH 协议,要将 SSH 端口 改为 3222;
点 立即安装

完成之后,会显示登录界面

第一次需要先注册

登录成功后的主界面

接下来就可以创建仓库了

如果是管理员,可以进入管理面板

参考文档
gogs/gogs: Gogs is a painless self-hosted Git service
地址:https://github.com/gogs/gogs
Gogs: A painless self-hosted Git service
地址:https://gogs.io/
gogs/gogs - Docker Image | Docker Hub
地址:https://hub.docker.com/r/gogs/gogs