代码管理/版本控制,自建我只选gitea

一、对比 Gitea 与其它 Git 托管工具

参考:https://docs.gitea.cn/installation/comparison

这里列出了 Gitea 与其它一些 Git 托管工具之间的异同,以便确认 Gitea 是否能够满足您的需求。

请注意,此列表中的某些表项可能已经过时,因为我们并没有定期检查其它产品的功能是否有所更改。你可以前往 Github issue 来帮助我们更新过时的内容,感谢!

表格中的符号含义:

  • ✓ - 支持

  • ⁄ - 部分支持

  • ✘ - 不支持

  • ⚙️ - 由第三方服务或插件支持

1.概览

使用 Shields.io 帮助我创建一个展示以下 GitHub 仓库信息的表格,其中包括repo、releases、stars、forks、使用语言。
涉及的repo有:gitlabhq、gogs、gitea。要求如下:
每个shiedles信息都需要有相关的超链接
releases没有的话可以用tags替换

在这里插入图片描述

2.主要特性

特性GiteaGogsGitLab CE
开源免费
低资源开销 (RAM/CPU)
支持多种数据库
支持多种操作系统
升级简便
可观测性
支持第三方渲染工具
WebAuthn (2FA)
扩展 API
内置软件包/容器注册中心
同步提交到外部仓库 (push mirror)
同步外部仓库的提交 (pull mirror)
浅色和深色主题
自定义主题支持
支持 Markdown
支持 CSV
Git 驱动的静态 pages[⚙️][gitea-pages-server], [⚙️][gitea-caddy-plugin]
Git 驱动的集成化 wiki
部署令牌
仓库写权限令牌
RSS Feeds
内置 CI/CD
子组织:组织内的组织
多实例交互/
Markdown绘图
Markdown数学公式

3.代码管理

特性GiteaGogsGitLab CE
仓库主题描述
仓库内代码搜索
全局代码搜索
Git LFS 2.0
组织里程碑
细粒度用户角色
提交人的身份验证
GPG 签名的提交
SSH 签名的提交
拒绝未通过验证的提交
外部仓库迁移
仓库活跃度页面
分支管理
建立新分支
在线代码编辑
提交的统计图表
模板仓库
Git Blame
可视化镜像变化?

4.工单管理

特性GiteaGogsGitLab CE
工单跟踪
工单模板
标签
时间跟踪
支持多个负责人
关联的工单
私密工单
评论反馈
锁定讨论
工单批处理
工单看板
从工单创建分支
从评论创建工单
工单搜索
工单全局搜索
工单依赖关系
通过 Email 创建工单
服务台

5.Pull/Merge requests

特性GiteaGogsGitLab CE
Pull/Merge requests
Squash merging
Rebase merging
评论 Pull/Merge request 中的某行代码
指定 Pull/Merge request 的审核人
解决 Merge 冲突
限制某些用户的 push 和 merge 权限
回退某些 commits 或 merge request
Pull/Merge requests 模板
查看 Cherry-picking 的更改
下载 Patch
Merge queues

6.第三方集成

特性GiteaGogsGitLab CE
支持 Webhook
自定义 Git 钩子
集成 AD / LDAP
支持多个 LDAP / AD 服务
LDAP 用户同步
SAML 2.0 service provider
支持 OpenId 连接
集成 OAuth 2.0(外部授权)
作为 OAuth 2.0 provider
二次验证 (2FA)
集成 Mattermost/Slack
集成 Discord
集成 Microsoft Teams
显示外部 CI/CD 的状态

二、安装

1.docker compose方式安装

docker compose up -d
version: '3'
services:
  # gogs:
  #   image: gogs/gogs:0.13
  #   container_name: gogs
  #   environment:
  #   - USER_UID=1000
  #     - USER_GID=1000
  #     - TZ=Asia/Shanghai
  #   ports:
  #     - 22:22
  #     - 3000:3000
  #   volumes:
  #     - /mnt/multimedia/data/sync/gogs:/data
  #   restart: always
  #   networks:
  #     - macvlan
# https://docs.gitea.com/installation/install-with-docker
  gitea:
    image: gitea/gitea
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=mysql
      - GITEA__database__HOST=192.168.255.254:3306
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=zjFZd7H8QYhYtiAR
    restart: always
    networks:
      - macvlan
    volumes:
      - /mnt/multimedia/gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"
      - "22:22" 
networks:
  macvlan:
    external: true

2.k8s方式安装

https://truecharts.org/charts/stable/gitea/

helm upgrade --install -n gitea --create-namespace my-gitea oci://tccr.io/truecharts/gitea -f values.yaml

2.1 按需修改app.ini配置文件

nano gitea/conf/app.ini
APP_NAME = Gitea: Git with a cup of tea
RUN_MODE = dev
WORK_PATH = /data

[cache]
ADAPTER = memcache
ENABLED = true
HOST = my-gitea-memcached:11211

[database]
DB_TYPE = mysql
HOST = 192.168.255.254:3306
NAME = gitea
PASSWD = zjFZd7H8QYhYtiAR
USER = gitea

[metrics]
ENABLED = true

[repository]
ROOT = /data/git/repositories

[security]
INSTALL_LOCK = true
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE3NDczMTY5MDZ9.WZF1zxoQ78hCJLBnUp-EG8Ft3bu25bq7WbT1O4T1CbM

[webhook]
ALLOWED_HOST_LIST = 0.0.0.0

[server]
APP_DATA_PATH = /data
DOMAIN = gitea.k8s.home.love
ENABLE_PPROF = false
HTTP_PORT = 3000
PROTOCOL = http
ROOT_URL = http://gitea.k8s.home.love/
SSH_DOMAIN = gitea.ssh.home.love
SSH_LISTEN_PORT = 22
SSH_PORT = 22
START_SSH_SERVER = true

[oauth2]
JWT_SECRET = Dqz-cVNhicWy2OwsEl7vCvXW0HdRqY1SPKuVFvtyC1I

2.2 配置域名

# https://doc.traefik.io/traefik/reference/routing-configuration/kubernetes/crd/http/ingressroute/ 
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
  name: traefik-host
  namespace: gitea
spec:
  entryPoints:
  - web
  routes:
  - match: Host(`gitea.k8s.home.love`) 
    kind: Rule
    services:
      - name: my-gitea
        port: 3000

三、常见问题

1.迁移不被允许

https://docs.gitea.cn/administration/config-cheat-sheet/#%E8%BF%81%E7%A7%BB-migrations

[migrations]
ALLOW_LOCALNETWORKS=true
ALLOWED_DOMAINS=vfsc.home.love,*.github.com,github.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杜莱恩特Durant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值