---
title: rainyun
canonical_url: "https://www.modelscope.ai/studios/hajimi/rainyun"
md_url: "https://www.modelscope.ai/studios/hajimi/rainyun.md"
repository: hajimi/rainyun
chinese_name: "Rainyun Qiandao"
last_updated: 2026-10-05
sdk_type: docker
downloads: 0
stars: 0
---

# rainyun

> rainyun - An interactive demo by hajimi on ModelScope. Rainyun-Qiandao Web panel with persistent data, private GitHub synchronization through r2sync, and Cloudflare Tunnel.

hajimi/rainyun is an interactive demo (Studio) on ModelScope. built with docker. also known as 「Rainyun Qiandao」.

- **Repository**: hajimi/rainyun
- **SDK**: docker
- **Downloads**: 0
- **Stars**: 0
- **Last updated**: 2026-10-05

Source: https://www.modelscope.ai/studios/hajimi/rainyun

---

# Rainyun Qiandao · ModelScope

- 面板：https://rainyun.moyang1.top/
- 公开创空间：https://www.modelscope.ai/studios/hajimi/rainyun
- 应用监听 `0.0.0.0:7860`，Cloudflare Tunnel 的远程路由应指向 `http://localhost:7860`。
- 使用免费 `platform/2v-cpu-16g-mem` 资源；免费运行额度与休眠政策以平台为准。

## 固定版本

上游应用采用官方多架构镜像，固定 digest，包含 Chromium、chromedriver 和 OCR 依赖：

- Rainyun-Qiandao：`101c7ad17a88e259293b832ebe041e1a1669b07f`
- 镜像：`ghcr.io/jielumoon/rainyun-qiandao@sha256:2611fcaaa82b13a04df00627acea104d8198ec59fa3886376a582b10d2b88bb0`
- r2sync：`19bf4a9389080e92db1d031eb43628a5a122eab5`
- cloudflared：`2026.9.1`，构建时校验下载文件的 SHA-256。

## 持久化与同步

持久化根目录：`/mnt/workspace/rainyun`。

```text
/app/data
  -> /mnt/workspace/rainyun/data
  -> /mnt/workspace/rainyun/.r2sync/repo/data
```

`data/` 整目录同步到私有仓库 `MoYangking/rainyun` 的 `main` 分支，包括：

- `config.json`：账户、定时规则、通知配置、管理密码哈希和登录令牌签名密钥。
- `cookies/`：每个雨云账户的登录 Cookie。
- `logs/`：上游运行日志。

临时 `*.tmp` 文件不提交；r2sync 自身的状态目录、GitHub PAT、Tunnel Token 和管理密码明文不进入同步目标。
项目源码由魔搭 Git 仓库维护，GitHub 仓库存放运行数据。数据包含账户密码、API Key 和 Cookie，**必须保持 GitHub 仓库私有**。

启动前执行 `r2sync sync`，成功后才初始化鉴权、重建 cron 规则、启动 Web 与 cron，最后连接 Tunnel。
第一次启动或空数据卷会从 GitHub 恢复；普通重启先提交持久化盘上尚未上传的修改，不以旧远端内容覆盖它们。
初始同步失败会阻止应用启动。不要让多个实例同时写入同一分支，或在运行时手动改动备份数据。

面板就绪约 30 秒后同步一次，之后每 300 秒同步。失败后 60 秒再试。
正常停止会尝试最终同步；强制终止仍依赖持久化盘与最近成功上传的版本。
GitHub 单文件上限 100 MiB，当前同步目标总量保护上限 4 GiB；Git 历史占用会持续增长。
重命名、转移或删除创空间可能丢失平台持久化数据，应保留 GitHub 备份。

## 首次登录与日常配置

部署入口在公网开放前，使用平台 Secret `RAINYUN_ADMIN_PASSWORD` 初始化管理密码，消除上游首次访问抢占密码的风险。
数据已存在时保留原密码；仅修改这个 Secret 不会重置已有密码。

忘记管理密码时，更新 `RAINYUN_ADMIN_PASSWORD` Secret，设置一次性的 `RAINYUN_ADMIN_RESET_ID` Variable（每次使用新的随机标识），再部署。启动入口会仅更新密码哈希和登录签名密钥，保留账号与任务配置，完成同步后才开放面板。成功登录后删除该 Variable。持久化标记避免同一重置请求因进程重启反复执行。

1. 使用部署时交付的管理密码登录面板。
2. 添加雨云账号；服务器查询与续费需要对应账号的雨云 API Key。
3. 按需设置自动续费白名单、通知渠道与定时规则。

默认每天上海时间 `08:00` 执行。上游默认启用全局自动续费，添加账号前请核对开关和白名单。
没有配置账号时不会执行实际签到或续费。r2sync 管理服务不启动，5321 端口不对外暴露。

## 平台配置

Secrets（只在魔搭设置页维护，不放入代码或 Docker 构建参数）：

- `TUNNEL_TOKEN`：Cloudflare Tunnel 运行令牌。
- `R2SYNC_GITHUB_PAT`：私有数据仓库读写凭据。
- `RAINYUN_ADMIN_PASSWORD`：首次初始化面板密码。
- `R2SYNC_ADMIN_PASSWORD`：r2sync 内部安全状态初始化密码，不公开管理端口。

Variables：`DATA_ROOT=/mnt/workspace/rainyun`、`R2SYNC_GITHUB_REPO=MoYangking/rainyun`、
`R2SYNC_GITHUB_BRANCH=main`、`R2SYNC_TARGETS=data/`、`SYNC_INTERVAL_SECONDS=300`、`TZ=Asia/Shanghai`。

轮换部署密钥后重启创空间。Cloudflare 路由由现有 Tunnel 的远程配置管理。
修改部署代码后推送 `master`，再在创空间执行部署；不要强制推送。

上游项目：https://github.com/Jielumoon/Rainyun-Qiandao

同步工具：https://github.com/MoYangking/r2sync
