首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
Vibe Coding这一年:从“代码苦力”到“超级个体”,我如何把3天的工作压缩进2小时?
2
小程序项目架构设计与基础页面搭建(基础)
3
微信小程序送补贴!手把手教你薅免费云开发资源+混元Token(附使用教程)
4
如何创建一个有效的阅读清单?
5
踩坑记:Elasticsearch 索引写不进去了?可能是触碰了这个隐藏限制
6
RoLID-11K:面向小目标检测的行车记录仪路边垃圾数据集
7
mysql报错通用排查方法 排查MY-001312 can't return a result set in the given context
8
安装并使用谷歌AI编程工具Antigravity(亲测有效)
9
解密Prompt系列68. 告别逐词蹦字 - Transformer 的新推理范式
10
技术人的人生战略:在代码与成长中寻找平衡
11
JavaScript 文件分析与漏洞挖掘指南
12
多 Agent 视角下的自动驾驶系统设计:车端 Agent 与 RSU Agent 协同机制解析
13
构建AI智能体:潜藏秩序的发现:隐因子视角下的SVD推荐知识提取与机理阐释
14
告别浏览器!用Rust打造一键JSON处理神器
15
仅需1元,基于 LangChain 和腾讯混元大模型,实现知识图谱
16
轻量高效!用Docker运行Gogs,搭建属于你的私有GitHub
17
构建AI智能体:SVD知识整理与降维:从数据混沌到语义秩序的智能转换
18
2025年CodeBuddy是如何拯救职场危机中的我?
19
轻量化知识库方案:Docker部署Dokuwiki 的最佳实践
20
踩坑实录:别被 extended_bounds 骗了!ES 直方图聚合的边界陷阱
21
步履不停,共鸣常在:我的 2025 技术旅程与回响
22
构建AI智能体:从SVD的理论到LoRA的实践:大模型低秩微调的内在逻辑
23
[MYSQL] 恢复被drop/truncate的表
24
Sugo Protector 代码保护效果分析报告
25
前端平台大仓应用稳定性治理之路|得物技术
26
C++的5种高级初始化技术:从reserve到piecewise_construct等
27
HierLight-YOLO:面向无人机航拍的层次化轻量目标检测网络
28
金融服务领域的智能体革命:AI智能体解决方案、产业分析与技术实施的战略分析
29
大模型提示词-新手篇
30
2025,一个普通开发者的社区成长地图
31
“氛围编程”正让创意本身成为最终技能
32
AD域攻防权威指南:九.利用备份组获取域Hash
33
【跟着AI学】H5射击游戏开发实录:射击游戏
34
这一年,熬过许过夜,也有些许收获 | 2025年终总结
35
2025,一个技术徘徊者的AI工具真实答卷
36
告别手撸架构图!AI+Ooder实现漂亮架构+动态交互+全栈可视化实战指南
37
GitHub 霸榜:让你的 Claude 拥有“设计总监”级的品味,只要一行命令
38
构建AI智能体:AI古典文学:基于LoRA微调本地大模型打造唐诗生成器
39
拥抱人机共生,锻造不可替代的“金头脑”
40
[MYSQL] 5.7能否从ibdata1中提取出表DDL
41
Spring Boot 实战:手把手教你实现腾讯云 COS 对象存储文件上传
42
解密Prompt系列67. 智能体的经济学:从架构选型到工具预算
43
Google OCS光路解耦揭秘:寒武纪大爆发,从供应链双轨到CPO百万卡全光计算织物
44
未来已来 | 写给 .NET 开发者的 2025 年度总结
45
MYSQL实战:深入理解内存临时表优化
46
Ooder框架规范执行计划:企业级AI实施流程与大模型协作指南
47
openGauss 核心体系架构深度解析
48
架构视角:Jackson3新特性
49
LLM架构机制管窥:作为黑板的上下文窗口
50
LiveKit Agents 深度技术架构剖析
清单首页123文章详情

轻量高效!用Docker运行Gogs,搭建属于你的私有GitHub

# 一、Gogs介绍 ## 1.1 Gogs 简介 >`Gogs` 是一款使用 Go 语言开发的轻量级、易于部署的自助式 Git 服务,旨在为个人和团队提供简单高效的代码托管解决方案。 ## 1.2 Gogs主要特点 * **用户仪表板与个人资料:** 提供直观的用户仪表板和可自定义的个人资料页面,方便用户管理自身信息。 * **活动时间线:** 记录并展示用户的操作历史,清晰呈现项目动态。 * **多协议仓库访问:** 支持通过 SSH、HTTP 和 HTTPS 三种协议进行代码仓库的克隆与推送。 * **用户组织仓库管理:** 提供完善的用户、组织及代码仓库的创建、配置和权限管理功能。 * **支持多种 Webhooks:** 支持仓库和组织级别的 Webhooks,可与 Slack、Discord、钉钉等第三方工具集成。 * **Git 高级功能支持:** 支持 Git 钩子、部署密钥以及 Git LFS(Large File Storage),满足复杂开发需求。 * **代码协作功能:** 提供问题跟踪(Issues)、拉取请求(Pull Requests)、Wiki 文档和受保护分支等协作开发功能。 * **仓库迁移与镜像:** 支持从其他代码平台(如 GitHub、GitLab)迁移或镜像仓库到 Gogs。 * **在线文件编辑:** 内置 Web 文件编辑器,可直接在浏览器中快速修改代码或 Wiki 内容。 * **文档渲染支持:** 可直接在浏览器中渲染并查看 Jupyter Notebook (.ipynb) 和 PDF 文件。 * **多种认证方式:** 支持 SMTP 邮件、LDAP、反向代理、GitHub 及 GitHub Enterprise(含 2FA)等多种登录认证方式。 * **界面与内容自定义:** 允许自定义 HTML 模板、静态资源文件等,便于个性化部署。 * **多数据库支持:** 兼容 PostgreSQL、MySQL、SQLite3 和 TiDB 等多种数据库后端。 * **多语言本地化:** 提供超过 31 种语言的界面翻译,支持国际化使用。 # 二、本次实践规划 ## 2.1 本地环境规划 >本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。 |hostname| IP地址 | 操作系统版本 |Docker版本 |部署项目 |--|--| --| --|--| |jeven01 |192.168.3.88 | Ubuntu 24.04.2 LTS| 28.3.3 | Gogs ## 2.2 本次实践介绍 >1.本次实践部署环境为个人测试环境,生产环境请谨慎; >2.在Docker环境下部署Gogs服务器。 # 三、本地环境检查 ## 3.1 检查Docker服务状态 >检查Docker服务是否正常运行,确保Docker正常运行。 ```bash root@jeven:~# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled) Active: active (running) since Mon 2025-08-04 10:10:52 UTC; 30min ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 860 (dockerd) Tasks: 10 Memory: 97.2M (peak: 98.4M) CPU: 606ms CGroup: /system.slice/docker.service ``` ## 3.2 检查Docker版本 >检查Docker版本 ```bash root@jeven:~# docker -v Docker version 28.3.3, build 980b856 ``` ## 3.3 检查docker compose 版本 >检查Docker compose版本,确保2.0以上版本。 ```bash docker compose version ``` # 四、拉取Gogs镜像 >下载Gogs容器镜像,如下所示 ```bash docker pull gogs/gogs:latest ``` ![在这里插入图片描述](https://developer.qcloudimg.com/http-save/yehe-4995888/5539b1a1a4d0971aae64b60afe045ccd.png) # 五、部署Gogs服务 ## 5.1 创建部署目录 - 创建部署目录 ```bash mkdir -p /data/gogs/data && cd /data/gogs/ ``` - 目录授权 ```bash chmod -R 777 /data/gogs/ ``` ## 5.2 编辑部署文件 >使用docker-cli方式部署,可参考以下命令: ```bash docker run -d \ --restart unless-stopped \ --name gogs \ -p 3200:3000 \ -p 4200:22 \ -v /data/gogs/data:/data \ gogs/gogs:latest ``` >在部署目录下,创建docker-compose.yaml文件,内容如下所示: ```bash vim docker-compose.yaml ``` ```yaml version: '3.9' services: gogs: image: 'gogs/gogs:latest' volumes: - '/data/gogs/data:/data' ports: - '4200:22' - '3200:3000' container_name: gogs restart: always ``` - 端口介绍: | 本地端口 | 容器端口 | 说明 | | :--- | :--- | :--- | | 3200 | 3000 | Gogs 主服务端口,用于通过浏览器访问 Web 管理界面 | | 4200 | 22 | SSH 服务端口,用于通过 Git 的 SSH 协议进行代码克隆、推送和拉取操作 | ## 5.3 创建Gogs容器 >执行以下命令,创建Gogs容器。 ```bash docker compose up -d ``` ![在这里插入图片描述](https://developer.qcloudimg.com/http-save/yehe-4995888/a0190181b9b9974b94286c387a96d5b3.png) ## 5.4 查看Gogs容器状态 >检查Gogs容器运行状态,确保Gogs容器正常启动。 ```bash root@jeven:/data/gogs# docker compose ps WARN[0000] /data/gogs/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS gogs gogs/gogs:latest "/app/gogs/docker/st…" gogs 2 minutes ago Up 2 minutes (healthy) 0.0.0.0:4200->22/tcp, [::]:4200->22/tcp, 0.0.0.0:3200->3000/tcp, [::]:3200->3000/tcp ``` ## 5.5 检查容器运行日志 >检查Gogs容器运行日志,确保Gogs服务正常运行。 ```bash docker compose logs ``` ![在这里插入图片描述](https://developer.qcloudimg.com/http-save/yehe-4995888/7145c2a91f838f280a3f5aab6f7a5d00.png) # 六、访问Gogs服务 ## 6.1 访问Gogs初始页 >浏览器地址: `http://<个人的服务器IP>:4200`,访问Gogs的初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。 ![在这里插入图片描述](https://developer.qcloudimg.com/http-save/yehe-4995888/f7a7389972f9c572b997c44c44002916.png) ## 6.2 初始化配置 - 数据库配置:可以选择用 MySQL、PostgreSQL、SQLite3 等数据库,这里为了快速部署,直接使用SQLite3数据库。 ![在这里插入图片描述](https://developer.qcloudimg.com/http-save/yehe-4995888/2a1d72d97e894301d35385f65aafe6b8.png) - 应用基本配置,可参考如下: >- 域名: 填写宿主机的主机名或 IP地址,将默认的 localhost 改为 192.168.3.88 >- 应用 URL:填写公开的访问地址,将默认的 http:// localhost:3000/ 改为 http:// 192.168.3.88:3200 >- SSH端口号:如果要启用SSH功能,则可以修改宿主机映射的4200端口 >- 其余默认不变。 ![在这里插入图片描述](https://developer.qcloudimg.com/http-save/yehe-4995888/69d259d94054fb705e2efc31e6c30afb.png) - 管理员设置: 自定义设置管理员账号信息,点击“立即安装”。 ![在这里插入图片描述](https://developer.qcloudimg.com/http-save/yehe-4995888/afdc1c1b747db869407a0dc4729df730.png) ![在这里插入图片描述](https://developer.qcloudimg.com/http-save/yehe-4995888/0ecf92f1f486de5a50fdec29b6bb942b.png) ## 6.3 创建Git仓库 >点击Gogs首页的【我的仓库】旁边“+”选项,立即创建仓库。 ![在这里插入图片描述](https://developer.qcloudimg.com/http-save/yehe-4995888/5c4e69eb976d0579e5b8c0d1e16c8cc7.png) >填写仓库名称后,确认创建即可。 ![在这里插入图片描述](https://developer.qcloudimg.com/http-save/yehe-4995888/51650bf81e2006bc1ea3d4b8069f68e4.png) ![在这里插入图片描述](https://developer.qcloudimg.com/http-save/yehe-4995888/af281af19799b25d999de24f5d109108.png) ## 6.4 管理面板 >点击“管理面板”选项,进入到该页面进行相关操作。 ![在这里插入图片描述](https://developer.qcloudimg.com/http-save/yehe-4995888/23de22181d08729fb591927b2ba5c551.png) # 七、总结 >通过本次实践,我们成功使用Docker快速部署了轻量级Git服务器Gogs,整个过程简洁高效。Gogs凭借其易于安装、界面友好和功能齐全的特点,非常适合个人开发者或小型团队搭建私有代码仓库。Docker的容器化方式进一步简化了环境依赖和部署流程,提升了服务的可移植性与维护性。未来可根据实际需求进一步配置备份、HTTPS加密或集成CI/CD流程,提升代码管理的安全性与自动化水平。

下一篇
举报
领券