网站首页 > 基础教程 正文
一、前言
在日常开发中,很多团队希望拥有一个 私有的 Git 仓库,用于存储、管理和协作代码。
Gitea 是一个轻量、开源、易部署的 Git 代码托管平台,非常适合中小型团队和个人自建使用。
本篇文章将带你在 Linux 系统上,快速搭建一套自托管的 Gitea 服务平台。
二、环境准备
- Linux 服务器一台(推荐 Ubuntu 20.04+/CentOS 7+)
- Docker 与 Docker Compose 已安装
安装 Docker(如果未安装):
curl -fsSL https://get.docker.com | bash -s docker
安装 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/download/2.24.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
三、目录结构规划
创建 Gitea 工作目录:
mkdir -p ~/gitea/{gitea,db}
cd ~/gitea
- gitea/:存放 Gitea 的数据与配置
- db/:存放数据库的数据
四、编写 Docker Compose 配置
在 ~/gitea 目录下,新建 docker-compose.yml 文件:
version: '3'
services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
ports:
- "3000:3000"
- "222:22"
db:
image: mariadb:10
container_name: gitea-db
restart: always
environment:
- MYSQL_ROOT_PASSWORD=gitea_root_pass
- MYSQL_DATABASE=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea_pass
networks:
- gitea
volumes:
- ./db:/var/lib/mysql
networks:
gitea:
driver: bridge
五、启动 Gitea 服务
在 ~/gitea 目录下执行:
docker-compose up -d
启动成功后,查看容器运行状态:
docker ps
六、访问 Gitea 平台
浏览器访问你的服务器 IP:
http://服务器IP:3000
首次进入 Gitea 安装引导界面:
- 数据库设置:
- 类型:MySQL
- 主机:db:3306
- 用户名:gitea
- 密码:gitea_pass
- 数据库名:gitea
- 应用设置:
- 站点标题、自定义配置根据实际需求填写。
- SSH 端口:222
- HTTP 端口:3000
- 点击【安装 Gitea】完成部署。
七、基础使用
- 创建组织与仓库
- 设置项目权限(公开/私有)
- 配置 WebHook、自动部署
- 用户注册与团队协作管理
Gitea 提供了丰富的 API 和插件支持,非常适合二次开发与集成。
八、备份与恢复
定期备份 Gitea 的数据与数据库:
# 备份 Gitea 配置和仓库
cp -r ~/gitea/gitea ~/gitea_backup/
# 备份数据库
docker exec gitea-db sh -c 'exec mysqldump --all-databases -uroot -pgitea_root_pass' > ~/gitea_backup/gitea_db_backup.sql
恢复时,只需拷贝回原路径并还原数据库即可。
九、安全加固建议
- 开启 HTTPS(可以搭配 Nginx + Let’s Encrypt)
- 修改默认 SSH/HTTP 端口
- 限制访问 IP,开启防火墙策略
- 定期更新 Gitea 和系统软件
十、总结
通过本文,你已经成功搭建了一套完整的 Gitea 私有 Git 托管平台,未来可以用于:
- 公司内部项目管理
- 开源项目托管
- CI/CD 自动化集成
搭建属于自己的 Git 平台,从0到1,就是这么简单且高效!
- 上一篇: Domino容器化安装及运维笔记
- 下一篇: 开发利器丨如何使用ELK设计微服务中的日志收集方案?
猜你喜欢
- 2025-05-15 Filebeat es 同步服务器日志到es
- 2025-05-15 docker容器的使用以及部署mysql
- 2025-05-15 一、docker部署ollama同时分别运行gemma3:27b bge-m3 deepseek-r1
- 2025-05-15 聊聊部署在docker容器里面的springboot项目如何启用arthas
- 2025-05-15 Docker容器化部署Java应用的最佳实践
- 2025-05-15 「linux」如何使用docker部署c/c++程序
- 2025-05-15 Docker安装MySQL 8、Redis并确保数据持久化的详细步骤
- 2025-05-15 Flask Docker Demo 项目指南
- 2025-05-15 彻底搞懂容器启动、停止、调试的每一个细节!
- 2025-05-15 Mac安装Docker及使用
- 最近发表
- 标签列表
-
- jsp (69)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- deletesql (62)
- c++模板 (62)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)