news 2026/10/28 10:28:24

gitea环境搭建教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
gitea环境搭建教程

gitea介绍

Gitea 是一个开源的轻量级全功能 Git 代码托管平台,采用 Go 语言编写,遵循 MIT 许可证。提供类似 GitHub 或 GitLab 的一站式协作与 DevOps 体验。Gitea 在保留核心协作与 Actions 功能的同时,资源占用仅为其数十分之一,适合个人、敏捷小团队或私有硬件设备。
Gitea 具备类似的交互体验与 Actions 语法生态,但支持完全私网部署、数据自主可控,无需担心外部网络连通性或私密源码外泄。

ubuntu环境搭建准备

需要的一些关键组件程序

sudoaptupdatesudoaptinstall-ygitcurlwgetca-certificates sqlite3curl-fsSLhttps://deb.nodesource.com/setup_20.x|sudo-Ebash-sudoaptinstall-ynodejssudoaptinstall-ybuild-essential cmake pkg-configsudoaptinstall-ytargzipbzip2xz-utilszipunzipdpkg-devsudoaptinstall-ynginx certbot python3-certbot-nginxsudoaptinstall-ygit-lfsgitlfsinstall

下载最新的gitea和 act runner

配置gitea自启动服务

sudoadduser--system--shell/bin/bash--group--disabled-password--home/home/gitgitsudomkdir-p/var/lib/gitea/{custom,data,log}sudochown-Rgit:git /var/lib/gitea/sudochmod-R750/var/lib/gitea/sudomkdir-p/etc/giteasudochown-Rroot:git /etc/giteasudochmod-R770/etc/giteasudocp-fgitea-1.27.3-linux-amd64 /usr/local/bin/giteasudochmod+x /usr/local/bin/gitea

新增配置文件 /etc/systemd/system/gitea.service

[Unit]Description=Gitea(Git with a cup of tea)After=network.target[Service]RestartSec=2sType=simpleUser=gitGroup=gitWorkingDirectory=/var/lib/gitea/ExecStart=/usr/local/bin/gitea web--config/etc/gitea/app.iniRestart=alwaysEnvironment=USER=gitHOME=/home/gitGITEA_WORK_DIR=/var/lib/gitea[Install]WantedBy=multi-user.target

配置自启动服务

sudosystemctl daemon-reloadsudosystemctlenable--nowgitea#确认服务是否启动成功sudosystemctl status giteasudosystemctl restart gitea#重启服务

打开http://<你的Ubuntu服务器IP>:3000,进行初始化配置。
配置Action功能开关,打开配置文件/etc/gitea/app.ini后面新增

[actions]ENABLED=true

配置act_runner自启动服务

sudocp-fgitea-runner-5.2.2-linux-amd64 /usr/local/bin/act_runnersudochmod+x /usr/local/bin/act_runner# 创建专属运行用户与工作目录sudouseradd-r-m-d/var/lib/act_runner-s/bin/bash act_runnersudomkdir-p/etc/act_runner

获取注册token

  • 登陆Gitea Web端,获取管理后台的Action->Runners的右上角的Ceate new Runner中的弹出的Registration Token

    使用如下的配置命令注册runner的命令:
# 生成默认配置act_runner generate-config|sudotee/etc/act_runner/config.yaml>/dev/null#act_runner config generate | sudo tee /etc/act_runner/config.yaml > /dev/null#先修改为host:host的标签,sudo vim /etc/act_runner/config.yaml# ... 其他默认配置保持不变 ...labels: -"host:host"sudochown-Ract_runner:act_runner /var/lib/act_runner /etc/act_runnersudochmod755/var/lib/act_runnercd/var/lib/act_runnersudo-uact_runner act_runner register\--config/etc/act_runner/config.yaml\--instancehttp://本机ip:3000\--token"前面粘贴的Token信息"\--namelocal-builder\--labelslocal-builder\--no-interactivesudochown-Ract_runner:act_runner /var/lib/act_runner

托管act_runner为系统服务

#创建 /etc/systemd/system/act_runner.service[Unit]Description=Gitea Act RunnerAfter=network.target gitea.service[Service]Type=simpleUser=act_runnerGroup=act_runnerWorkingDirectory=/var/lib/act_runnerExecStart=/usr/local/bin/act_runner daemon--config/etc/act_runner/config.yamlRestart=alwaysRestartSec=5[Install]WantedBy=multi-user.target

配置系统服务自启动

sudosystemctl daemon-reloadsudosystemctlenable--nowact_runnersudosystemctl status act_runnersudosystemctl restart act_runner

此时刷新 Gitea 管理界面的 Runners 页面,会出现对应的Idle的状态信息如下

新增一个本地仓库代码

在管理web界面上新增New Repository仓库,比如我新增如下文件:


新增一个本地C文件和Makefile如下:

#include <stdio.h>intmain(){printf("Hello from Gitea CI/CD Automated Build!\n");printf("ok!\r\n");return0;}#Makefile 文件CC ?=gcc CFLAGS ?=-Wall-O2all: hello_app hello_app: main.c$(CC)$(CFLAGS)-ohello_app main.c clean:rm-fhello_app

CI/CD打包配置文件build.yaml 如下所示:

name:Manual Build Pipelineon:push:# 补充 push 事件,推送即可自动跑一次完成初始化branches:[main,master]workflow_dispatch:inputs:build_env:description:'编译模式'required:truedefault:'Release'type:choiceoptions:-Release-Debugjobs:build_and_package:runs-on:hoststeps:-name:检出源码uses:actions/checkout@v4-name:编译并生成自定义日志run:|mkdir -p output/bin logs LOG_FILE="logs/build_info.log"# 写入自定义打包元数据{echo "==================== BUILD LOG ===================="echo "Build Timestamp:$(date '+%Y-%m-%d %H:%M:%S')"echo "Operator:${{github.actor}}"echo "Target Commit:${{github.sha}}"echo "Build Profile:${{inputs.build_env}}"echo "Compiler Info:$(gcc--version|head-n 1)" echo "==================================================="}|tee "$LOG_FILE"# 编译逻辑make clean if["${{inputs.build_env}}" = "Debug"]; then make CFLAGS="-Wall-g-O0" 2>&1|tee-a "$LOG_FILE" else make CFLAGS="-Wall-O2" 2>&1|tee-a "$LOG_FILE" fi# 收集程序与日志并打包cp hello_app output/bin/ cp "$LOG_FILE" output/ tar-czvf "app_package_${{inputs.build_env}}.tar.gz"-C output . mv "app_package_${{inputs.build_env}}.tar.gz" output/-name:上传构建产物uses:actions/upload-artifact@v4with:name:release-packagepath:output/*.tar.gz

在web端,可以在Action那一栏中看到Run Workflow配置项如下:

可以选择手动Debug或者Release编译模式,并下载编译成果物包

参考

  • Gitea docs
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/28 10:24:54

AI智能体开发实战:零基础到产业落地的12周课程

1. 项目背景与核心价值"智能体来了"课程体系的推出&#xff0c;正踩在AI技术平民化的关键节点。根据Gartner最新技术成熟度曲线&#xff0c;AI智能体技术已从创新触发期进入期望膨胀期&#xff0c;这意味着未来2-3年将是企业布局和人才储备的黄金窗口。西南总部此次发…

作者头像 李华
网站建设 2026/10/28 10:23:35

小白程序员必看:大模型多Agent系统实战避坑指南(附选型口诀)

本文通过一个面试复盘案例&#xff0c;揭示了多Agent系统在实际应用中&#xff0c;往往不是选错模式导致失败&#xff0c;而是编排层设计不当。文章详细介绍了多Agent系统与多Agent编排的区别&#xff0c;提出了动态性、状态显式、失败可恢复三个编排层特征&#xff0c;并总结了…

作者头像 李华
网站建设 2026/10/28 10:21:51

视频转文字工具怎么选?手机电脑转写方法全面解析

做短视频、自媒体或者日常办公&#xff0c;经常会遇到这样的情况&#xff1a;刷到一段有价值的视频&#xff0c;想把里面的口播内容整理成文案&#xff1b;看到同行分享的知识类视频&#xff0c;想提取其中的观点&#xff1b;或者手里有一段采访、课程录音&#xff0c;需要快速…

作者头像 李华
网站建设 2026/10/28 10:21:09

CompletableFuture 实战:从 OCR 批量识别到 AI 报告生成的并行优化

技术栈&#xff1a;Spring Boot JDK 8 MyBatis 场景&#xff1a;附件批量 OCR 识别、AI 帮扶报告生成摘要 这两个功能都卡在外部 HTTP 调用上&#xff1a; OCR 批量识别&#xff1a;一次提交可能包含多个附件&#xff0c;每个文件都要下载、识别、写历史记录&#xff1b;AI 帮…

作者头像 李华