把日常脚本和工具搬进自己的服务器:Gitea + Drone + RSSHub 轻量组合

by Vworld · 2026年5月27日

一、为什么你需要这样一套组合?

如果你经常写一些小脚本、配置文件、爬虫、自动化任务,你可能会遇到几个烦恼:

  • 代码散落在电脑、U盘、网盘里,版本混乱
  • 想持续运行一个定时任务,却要一直开着电脑
  • 每天刷几十个网站看更新,效率低还被迫看广告

这些问题的一个共同解法是:在自己家里放一台 7×24 小时运行的小服务器。而树莓派,就是成本极低、功耗极小、够用又好玩的选择。

本文将带你在一台树莓派上,部署三个开源工具:

  • Gitea:轻量级代码仓库,就像你自己的 GitHub
  • Drone:自动化流水线,代码推送后自动执行脚本
  • RSSHub:将任意网站生成 RSS 订阅源,聚合信息

三者组合起来,你的树莓派就变成了:
个人代码中心 + 自动任务执行器 + 私有信息聚合器

本文所有步骤均在一台 树莓派 4B(2GB 或 4GB 内存版) 上验证通过,操作系统为 Raspberry Pi OS Lite(64位)。其他型号(3B+、5)基本通用。


二、准备工作:树莓派基础环境

如果你还没有树莓派,建议购买一块 Raspberry Pi 4B(2GB 版本约 300 元,二手更便宜),再配一张 32GB 以上的 microSD 卡和一个 5V/3A 电源。

如果你已经有树莓派,请确保:

  1. 已烧录好 Raspberry Pi OS Lite(无桌面环境,省资源)
  2. 已启用 SSH(在 boot 分区放一个空 ssh 文件)
  3. 树莓派已连上家里网络,你能通过 ssh pi@树莓派IP 登录

本文不需要公网 IP,也不需要配置 DNS。所有服务仅运行在家庭局域网内。如果你希望外网访问,可以日后自行搜索内网穿透或 IPv6,但不是本文内容。

登录后,先执行更新:

bash

sudo apt update && sudo apt upgrade -y
sudo apt install git curl wget nano -y

然后安装 Docker(因为 Gitea、Drone、RSSHub 都可以用容器运行,简单又干净):

bash


curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker pi

退出 SSH 后重新登录,使权限生效。


三、部署 Gitea:你的私有代码仓库

Gitea 是 Git 的一个轻量级自托管实现,内存占用通常不到 200MB,非常适合树莓派。

3.1 创建目录并启动容器

bash


mkdir -p ~/gitea/data

运行 Gitea 容器:

bash


docker run -d --name=gitea \
  -p 3000:3000 \
  -p 22:22 \
  -v ~/gitea/data:/data \
  --restart=always \
  gitea/gitea:latest

解释:

  • -p 3000:3000:网页界面端口
  • -p 22:22:SSH 推送代码端口(注意不要和树莓派本身的 SSH 端口冲突,如果你树莓派 SSH 也是 22,可改成 -p 2222:22,后续推送时用端口 2222)
  • --restart=always:树莓派重启后自动启动

3.2 初始化配置

在浏览器访问 http://树莓派IP:3000,首次打开会看到安装页面。

  • 数据库:选择 SQLite(够用,简单)
  • 站点名称:随便填,如“我的代码仓库”
  • 基础 URL:填 http://树莓派IP:3000
  • SSH 端口:如果你把容器端口 22 映射到了宿主机的 2222,这里填 2222

然后创建一个管理员账号,比如 pi / 你自己设置的密码。

3.3 日常使用

你可以在这里创建仓库,然后像 GitHub 一样 git push 你的脚本:

bash

git clone http://树莓派IP:3000/你的用户名/仓库名.git
# 或者 SSH 方式
git clone ssh://git@树莓派IP:2222/你的用户名/仓库名.git

从此,你的脚本不再流浪。


四、部署 Drone:让代码推送后自动运行脚本

Drone 是一个 CI/CD 工具。你向 Gitea 推送代码后,Drone 会拉取代码,在一个临时容器里执行你指定的命令(比如运行脚本、编译、备份)。

4.1 在 Gitea 中创建 OAuth 应用

这一步让 Drone 能通过 Gitea 验证你的身份。

  • 登录 Gitea,右上角头像 → 设置 → 应用
  • 创建新的 OAuth2 应用:
    • 应用名称:Drone
    • 重定向 URI:http://树莓派IP:8080/login
    • 保存后,记下客户端 ID客户端密钥

4.2 运行 Drone 服务端

bash

mkdir -p ~/drone

运行容器(请替换下面的 DRONE_GITEA_CLIENT_IDDRONE_GITEA_CLIENT_SECRET):

bash


docker run -d \
  -p 8080:80 \
  -v ~/drone:/data \
  -e DRONE_GITEA_SERVER=http://树莓派IP:3000 \
  -e DRONE_GITEA_CLIENT_ID=上面复制的客户端ID \
  -e DRONE_GITEA_CLIENT_SECRET=上面复制的客户端密钥 \
  -e DRONE_RPC_SECRET=随意设置一个复杂字符串,如abc123xyz \
  -e DRONE_SERVER_HOST=树莓派IP:8080 \
  -e DRONE_SERVER_PROTO=http \
  -e DRONE_USER_CREATE=username:你的Gitea用户名,admin:true \
  --restart=always \
  --name=drone \
  drone/drone:latest

4.3 运行 Drone 执行器(Runner)

Drone Runner 负责真正执行任务。

bash


docker run -d \
  -p 3001:3000 \
  -e DRONE_RPC_PROTO=http \
  -e DRONE_RPC_HOST=树莓派IP:8080 \
  -e DRONE_RPC_SECRET=与上面相同的abc123xyz \
  -e DRONE_RUNNER_CAPACITY=2 \
  --restart=always \
  --name=drone-runner \
  drone/drone-runner-docker:latest

4.4 配置一个自动任务

假设你有一个仓库 myscript,里面放了一个 hello.sh

bash

echo "自动执行成功,时间: $(date)" >> /tmp/result.log

在仓库根目录下创建一个 .drone.yml 文件:

yaml


kind: pipeline
type: docker
name: 测试流水线

steps:
- name: 执行脚本
  image: alpine:latest
  commands:
    - apk add bash
    - chmod +x hello.sh
    - ./hello.sh

提交这个文件到 Gitea 仓库。

浏览器访问 http://树莓派IP:8080,用 Gitea 账号登录。你会看到刚才的仓库,点击“激活”。之后每次推送代码,Drone 就会自动运行这个流水线。

你可以把任何日常任务放进 .drone.yml:定时备份、爬虫、发邮件、编译固件等。


五、部署 RSSHub:把全网信息聚合到 RSS

RSSHub 是一个神奇的 RSS 生成器。你输入一个微博/知乎/B站/抖音/小宇宙的用户主页,它就能给你输出一个 RSS 链接。

5.1 运行 RSSHub

树莓派版需要限制内存,否则容易卡死。

bash


docker run -d \
  --name=rsshub \
  -p 1200:1200 \
  --restart=always \
  --memory=512m \
  diygod/rsshub:latest

访问 http://树莓派IP:1200,看到欢迎页即成功。

5.2 订阅一个例子

比如你关注某个 B 站 UP 主,他的主页是 https://space.bilibili.com/2266324
那么 RSSHub 生成的订阅链接就是:
http://树莓派IP:1200/bilibili/user/video/2266324

把这个链接粘贴到任何 RSS 阅读器(如 Feedly、Thunderbird、Reeder),就能看到该 UP 主的最新视频。

RSSHub 支持数百个网站,完整文档见官方路由文档。你可以像搭积木一样,为自己定制一份“纯净信息流”。


六、三者的实际联动场景(非强制关联)

虽然 Gitea、Drone、RSSHub 可以各自独立运行,但你可以实现一个漂亮的自动化闭环:

每天上午 9 点,RSSHub 抓取某个技术博客的更新。你通过 RSS 阅读器看到一篇好文章,于是写了一个 Python 爬虫脚本保存到 Gitea 仓库。推送代码后,Drone 自动运行这个脚本,把文章另存为 Markdown 并备份到树莓派本地。

整个流程里:

  • Gitea 保管代码版本
  • Drone 自动执行脚本
  • RSSHub 提供信息源头

你不需要打开任何云服务,不用花钱,不担心隐私。


七、性能与维护建议

服务内存占用(树莓派 4B)CPU 占用(闲置时)
Gitea约 150 MB< 1%
Drone Server + Runner约 100 MB< 1%
RSSHub约 200 MB1–2%

三者在树莓派 2GB 版本上可同时运行,4GB 版本更从容。

常见维护:

  • 查看日志:docker logs -f 容器名
  • 停止/启动:docker stop/start 容器名
  • 升级容器:先 docker pull 新镜像,再删除并重新运行

八、总结:自己手里的工具箱

这篇文章从零开始,带你:

  1. 在一台树莓派上装好 Docker
  2. 跑起 Gitea —— 私有 GitHub
  3. 接入 Drone —— 代码推送后自动干活
  4. 部署 RSSHub —— 全网信息变订阅

这三件事彼此独立,但你拥有了一个 个人开发的完整工具箱
代码版本管理、自动化执行、信息聚合,全部放在家中一块小小的树莓派上。

不需要公网 IP,不需要额外付费,不需要信任何云厂商。
你的脚本、你的数据、你的订阅,都在这块绿色电路板里,安静而稳定地运行。

接下来,你可以试着往里放第一个脚本,或者给 RSSHub 加一个你最喜欢的博客。
你会发现:技术自由,有时候就是从一台一直开机的树莓派开始的

You may also like