使用 Gitea + Act Runner 搭建本地工作流(无 Docker), Nginx 反向代理报错问题

Ydecl/忧

使用 Gitea + Act Runner 搭建本地工作流(无 Docker)

目标:在本地服务器上以二进制文件方式搭建 Gitea,并运行 Act Runner(不使用 Docker,直接在宿主机上执行命令)。

操作系统:Debian

一、搭建 Gitea
按照官方文档创建 git 用户:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#这里按照官网创建git user

adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
#我喜欢把所有数据放在一个目录下,这里就是 /home/git
cd /home/git

#教程有时效性,请自行使用 wget 下载最新版本。
#官方下载地址:https://dl.gitea.com/gitea/

#假设下载的二进制文件名为 gitea-xxx,执行以下操作:
cp gitea-xxx gitea
chown -R git:git gitea

# 这里我本身是root终端,指定git user运行./gitea
sudo -u git ./gitea web

二、Nginx 反向代理(宝塔)

如果使用 HTTPS,必须在 Nginx 配置中添加 X-Forwarded-Proto 头,否则 Gitea 会报错:

1
The detected web site URL is "[http://xxxxxx.xxx/](http://git.yc2019.cn/)", it's unlikely matching the site config. Mismatched app.ini ROOT_URL or reverse proxy "Host/X-Forwarded-Proto" config might cause wrong URL links for web UI/mail content/webhook notification/OAuth2 sign-in.

需要在配置中加入:

1
proxy_set_header X-Forwarded-Proto $scheme;

下面是我的完整 Nginx 配置,供参考:

1
2
3
4
5
6
7
8
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host xxxxx.xx;#
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Connection $connection_upgrade;

三、安装与配置 Act Runner
下载地址:https://dl.gitea.com/act_runner/

  1. 注册 Runner
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ./act_runner register

    #Instance URL: https://xxxxx.xx 你的域名
    #Runner token: 后台获取
    #Runner name: 可以留空(默认主机名)
    #Runner labels: 这里必须手动输入,输入以下内容:self-hosted,ubuntu-latest

    #创建配置文件并启动
    cat > config.yaml << 'EOF'
    runner:
    mode: "host"
    EOF
    ./act_runner daemon --config config.yaml

    为什么要使用宿主机模式(mode: “host”)?因为 Gitea 不支持类似 GitHub/GitLab Pages 的功能,我需要将构建生成的静态文件直接复制到宿主机的网站目录(如 /www/wwwroot/hexo)中,而 Docker 模式下不便操作宿主机文件系统。

四、工作流示例:部署 public 文件夹到宿主机
下面是一个 .gitea/workflows/deploy.yml 示例,当 push 到 main 分支时,自动将仓库中的 public/ 目录复制到宿主机的 /www/wwwroot/hexo/ 下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
name: Deploy public folder to host

on:
push:
branches:
- main
workflow_dispatch:

jobs:
deploy:
runs-on: self-hosted
steps:
- name: Checkout repository
run: |
# 构造带认证的仓库 URL
REPO_URL="https://oauth2:${{ secrets.GITEA_TOKEN }}@gitea域名/${{ gitea.repository }}.git"
echo "Cloning from $REPO_URL"
git clone --depth 1 "$REPO_URL" .
# 切换到当前触发的 commit(可选)
git checkout ${{ gitea.sha }}

# 2. 查看工作区内容(调试用,可删除)
- name: List workspace
run: ls -la

# 3. 部署 public 文件夹到目标目录
- name: Deploy public to /www/wwwroot/hexo
run: |
sudo mkdir -p /www/wwwroot/hexo
sudo cp -r public/. /www/wwwroot/hexo/

# 4. 确认部署结果
- name: Show deployed files
run: ls -la /www/wwwroot/hexo/
  • 标题: 使用 Gitea + Act Runner 搭建本地工作流(无 Docker), Nginx 反向代理报错问题
  • 作者: Ydecl/忧
  • 创建于 : 2026-06-09 22:05:00
  • 更新于 : 2026-06-09 22:12:16
  • 链接: https://blog.yc2019.cn/posts/gitea-server.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
目录
使用 Gitea + Act Runner 搭建本地工作流(无 Docker), Nginx 反向代理报错问题