ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Gitea 上手指南:5 分钟部署你的自托管 Git 服务

Gitea 上手指南:5 分钟部署你的自托管 Git 服务 Gitea 上手指南5 分钟部署你的自托管 Git 服务【免费下载链接】giteaGit with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD项目地址: https://gitcode.com/GitHub_Trending/gi/gitea公司代码不能放公有仓库个人项目又不想为私有仓库付费这是很多团队遇到的 Gitea 要解决的典型问题。Gitea 是一个用 Go 编写的自托管 Git 服务在一个进程里提供 Git 仓库、代码审查、Issue 管理、包仓库和 CI/CD。你只需要一台能跑 Docker 的服务器就可以完成 Gitea 部署数据完全留在自己的机器上。Gitea 项目速览Gitea 的定位是自托管一体化开发服务它不是单纯的 Git 托管而是把从提交代码、审查合并到打包发布的常见环节收进同一套系统。项目整体信息如下技术栈纯 Go 编写单二进制运行无 JVM、无前端构建依赖支持 Linux、macOS、Windows 及 ARM 等 Go 覆盖的平台许可证MIT可自由商用、修改和分发核心能力Git 托管、Pull Request 审查、Issue/看板、Wiki、包注册表Docker、npm、Maven 等格式、内置 Gitea Actions适用人群需要私有仓库的个人开发者、小规模协作团队、有合规审计要求的企业功能拆解按你想完成的事看 Gitea怎么把仓库跑起来仓库支持git clone/push常规操作也支持 HTTP 和 SSH 两种协议端口在custom/conf/app.example.ini的[server]段配置。仓库内提供完整的在线浏览按文件、按提交、按分支看差异支持 LFS 大文件。个人场景下克隆一个仓库、推送一个私有项目五分钟就能跑通。怎么和团队协同Pull Request提交合并请求后可以看到 diff、检查 CI 状态、写审查意见再选择 merge、squash 或 rebase 合并Issue 与看板Issue 支持标签、里程碑和依赖项看板面板用于可视化排期通知可通过 Webhook 把 push、Issue、PR 等事件推送到 Slack、Discord、企业微信等外部系统modules/webhook/、services/webhook/怎么做自动化Gitea 内置 Actions 引擎工作流写法兼容 GitHub Actions 的 YAML在仓库.gitea/workflows/下放一个文件即可触发。runner 以独立进程注册到实例上流程大致如下也可以直接复用现成的 GitHub Actions 生态无需为迁移重写流水线。怎么管控权限权限分三个层级实例管理员、组织/团队、单个仓库可以逐级收紧。配合双因素认证、访问令牌API 场景、部署密钥CI 场景使用细到哪个 key 只能推哪个仓库的程度。相关模型代码在models/perm/、models/deploykey/。快速上手两种部署方式方式一Docker 部署推荐docker run -d --name gitea \ -p 3000:3000 \ -v /data/gitea:/data \ -v /etc/timezone:/etc/timezone:ro \ -v /etc/localtime:/etc/localtime:ro \ gitea/gitea:latest浏览器访问http://服务器IP:3000首次进入安装向导按提示填数据库、创建管理员账号即可/data/gitea挂载点保存仓库、附件和配置文件升级镜像时只要保留这个卷数据不会丢容器以 rootless 方式运行权限模型简单仓库内的docker/目录提供了 rootful 与 rootless 两种镜像模板方式二二进制部署从发布页下载对应平台的单文件二进制放到服务器上后执行./gitea web首次运行同样会引导你完成安装。这种方式不依赖容器适合已经熟悉 systemd 管理的运维环境。想自己编译源码的话参考 构建文档 和 开发指南。对比项Docker二进制上手速度快一条命令快但需自行管进程升级拉新镜像替换容器替换二进制文件适用场景多数生产环境无容器平台的宿主机进阶配置反向代理与 HTTPS问题对外暴露域名后浏览器提示不安全Gitea 也不该直接面对公网 80/443 端口。做法在 Nginx 或 Caddy 前置反向代理终结 TLS 后转发到127.0.0.1:3000并在 Gitea 的[server]中把APP_URL改成正式的 HTTPS 地址保证生成的链接、邮件里的链接都是对外域名。所有可调项的完整注释清单见 配置示例。数据库选择问题安装向导默认给了 SQLite生产环境该不该换。做法app.ini的[database]段支持mysql、postgres、mssql、sqlite3四种类型。个人实例用 SQLite 足够省心多用户、多仓库、需要主从备份的环境建议上 PostgreSQL 或 MySQL并定期执行数据库备份。备份策略问题仓库数据丢了怎么恢复。做法Gitea 的数据集中在/data/gitea对应安装向导里的GITEA__database配置目录备份三件套是数据库mysqldump/pg_dump、仓库目录bare repo 文件、附件与 LFS。把这三部分纳入定时任务打包压缩即可恢复时反向还原。建议至少保留一份异地副本并每季度做一次恢复演练。常见问题Q1SQLite 和 MySQL 差别大吗数据量小几十个仓库以内用 SQLite 没有压力配置最少仓库多了、并发高了之后换 PostgreSQL/MySQLDB_TYPE改一下再迁移数据即可。Q2改完配置要重启吗分两类后台管理面板里能改的动态配置即时生效写在app.ini里的静态配置需要重启进程。判断方法是看 配置示例 里该项是否标注了需要重启。Q3升级后配置和数据会丢吗不会前提是数据在独立目录Docker 的/data挂载点或自定义的GITEA_WORK_DIR而不是镜像内部。升级 换新版本进程 旧数据目录官方数据库迁移modelmigration/会自动把表结构升到新版。Q4能用 GitHub Actions 的现成 workflow 吗可以。Gitea Actions 兼容 GitHub Actions 的 YAML 语法大部分 action 直接可用少数依赖 GitHub 特有 API 的除外。结语Gitea 的价值在于把私有 Git 协作 CI压缩成一个低维护成本的服务Docker 一条命令就能先跑起来再按团队规模逐步加反向代理、数据库和备份。仓库内资源开发文档、完整配置示例、API 路由、Docker 构建文件。【免费下载链接】giteaGit with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD项目地址: https://gitcode.com/GitHub_Trending/gi/gitea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表