Gitea 是一款开源的轻量级代码托管平台,类似于 GitHub、GitLab的开源版
基于 Go 语言开发,支持 Git 版本控制功能,可用于管理代码仓库、跟踪代码变更、进行代码审查、管理项目 Issue 等。它设计轻量且易于部署,适合个人、团队或小型组织搭建私有代码托管服务,支持多种操作系统和数据库,同时提供了 Web 界面、API 以及与其他工具的集成能力,兼顾了易用性和扩展性。
使用场景:作为本地代码托管、文档备份和管理、问题单、CICD
应用特点:
完整 Pull Request 代码评审,支持行级评论、多人协作
内置 Gitea Actions CI/CD,兼容 GitHub Actions 工作流语法
内置 Issue 任务管理、指派、截止日期、关联 PR
支持项目看板(Kanban)可视化进度管理
内置软件包仓库,支持 Docker、Maven、npm、PyPI 等
组织与团队管理,精细化权限控制、分支保护
支持 2FA 双因素认证、SSH 密钥、GPG 签名、审计日志
内置 Wiki 文档、Pages 静态站点托管
支持 WebHook、API 对接,可与外部系统集成
界面简洁易用,中文友好,适合个人与中小团队私有部署
Docker 安装部署 Gitea
1、创建本地持久化存储路径
mkdir /opt/gitea #创建存储gitea应用数据库、gitea代码仓库的路径 mkdir /opt/gitea/data /opt/gitea/git_repos cd /opt/gitea
支持SQLite(内置,无需额外安装)、MySQL、PostgreSQL、MariaDB、MSSQL数据库
数据库版本要求:
MySQL最低版本:≥ 8.0(不支持 8.0 以下)
MariaDB版本≥ 10.4
PostgreSQL版本≥ 12
2、Docker Compose配置
推荐数据库postgres,连接已安装好的数据库
version: "3" services: server: image: docker.gitea.com/gitea:1.26.0 container_name: gitea-1.26.0 environment: - USER_UID=1000 - USER_GID=1000 - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=192.168.1.100:15433 - GITEA__database__NAME=gitea - GITEA__database__USER=root - GITEA__database__PASSWD=123456 #配置跨域解决 404/跨域) - GITEA__CORS__ENABLED=true - GITEA__CORS__SCHEME=http - GITEA__CORS__ALLOW_DOMAIN=* - GITEA__CORS__ALLOW_CREDENTIALS=true restart: always volumes: - ./data:/data/gitea - ./git_repos:/data/git/repositories - /etc/localtime:/etc/localtime:ro ports: - "23000:3000" - "20022:22"
参数说明:
1)数据库配置
修改数据库配置
- GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=192.168.1.100:15433 - GITEA__database__NAME=gitea - GITEA__database__USER=root - GITEA__database__PASSWD=123456
2)解决Gitea
默认有限制跨域访问,其他第三方应用访问如果不设置,会报跨域错误
#配置跨域解决 404/跨域) - GITEA__CORS__ENABLED=true - GITEA__CORS__SCHEME=http - GITEA__CORS__ALLOW_DOMAIN=* - GITEA__CORS__ALLOW_CREDENTIALS=true
使用自带的SQLLite数据库:
services: gitea: image: gitea/gitea:1.25.3 # 官方最新稳定版 container_name: gitea restart: always environment: - USER_UID=1000 # 与宿主机用户保持一致 - USER_GID=1000 - SSH_DOMAIN=192.168.5.200 # 生成 clone 地址用,必填 - SSH_PORT=20022 # 宿主机映射端口 - DB_TYPE=sqlite3 # 单节点直接用 SQLite,免额外容器 ports: - "23000:3000" # Web 界面 - "20022:22" # SSH 克隆端口 volumes: - ./data:/data # 仓库、数据库、配置全持久化 - /etc/timezone:/etc/timezone:ro # 时区同步 - /etc/localtime:/etc/localtime:ro networks: - gitea-net networks: gitea-net: driver: bridge
3、简化版本
docker run -d \ --name gitea \ --restart always \ -p 23000:3000 \ -p 20022:22 \ -v /opt/gitea:/data \ -v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \ gitea/gitea:latest
使用PGSQL
# 连接 PostgreSQL docker run -d --name gitea \ -p 23000:3000 -p 20022:22 \ -v /opt/gitea:/data \ -e DB_TYPE=postgres \ -e DB_HOST=pg-host:5432 \ -e DB_NAME=gitea \ -e DB_USER=gitea \ -e DB_PASSWD=your-password \ gitea/gitea:latest
Gitea使用教程
1、创建组织和项目工程
右上角+,创建组织
输入组织名称、权限
2)创建项目
创建普通项目
创建仓库镜像
镜像支持Gitea、Github同步,定时自动同步获取远端仓库,同步到本地
下载项目
支持http、https、ssh协议克隆项目
也可以下载压缩版
在线编辑和创建百科,创建项目知识库
2、配置SSH免密登录
右上角头像-设置-SSH/GPG密钥,配置公钥,copy本地公钥到Gitea服务器
3、工单管理
进入XX仓库,工单,创建问题单
管理日常问题单、Bug