New
Apps 1,895Makers 1,890This week 1,690
Promote your app−30%
Yunle Fun screenshot 1
0views in
the last 30 days

Yunle Fun

Tools and resources platform for indie developers

Built with Claude Code

by yunlefun · Unclaimed · added Oct 29, 2026
no ratings0 comments

云乐坊

云乐坊是面向独立开发者的工具与资源平台。本仓库包含 www.yunle.fun 的 Nuxt 应用、CloudBase 云函数,以及跨应用统一登录使用的授权核心。

功能

  • 平台首页与由 SSO Client Registry 驱动的应用导航
  • 手机号 / GitHub 自动注册登录、已绑定邮箱验证码与密码登录,以及跨站 SSO(详见 账号注册与用户名规范)
  • 开发者平台、应用管理、文档和博客
  • 会员、微信支付、App Store 内购与奖励领取
  • 测试身份、事务邮件和后台运维能力
  • 中文、英文与日文界面

公开展示页面优先使用可缓存和预渲染能力;登录、账户、支付等功能使用 Nuxt 服务端运行时和 CloudBase 私有服务。

技术架构

  • Nuxt 4、Vue 3、Nuxt UI 4 和 Tailwind CSS
  • pnpm workspace,内部授权包位于 packages/authorization-core
  • 腾讯云 CloudBase:认证、数据库和云函数
  • EdgeOne Pages:正式网站;Cloudflare Pages:兼容性构建与预览
  • Vitest、ESLint 和 Nuxt TypeScript 检查

业务数据库已选定未来采用 PostgreSQL,当前仍运行在 CloudBase NoSQL,尚未启动迁移。腾讯云配置、费用基线和跨仓库分阶段迁移约束见 PostgreSQL 选型与迁移规划。

主站通过 YunLeFun Design 统一外观:@yunlefun/ui@0.0.6 提供共享明暗主题,design-tokens.css 将其映射到 Nuxt UI 与本地控件,@yunlefun/vue@0.4.2 提供徽标和分隔线。App* 封装保留路由、表单与业务接口;可选的 tone 使用 blue | sun | cyan | coral | pink | green,成功、提醒、错误等状态色不受 tone 覆盖。接入范围和业务样式例外见 设计系统迁移说明。

本地开发

环境要求

  • Node.js 22 或更高版本
  • pnpm 11(仓库通过 packageManager 固定版本)

启动

corepack enable
pnpm install
cp .env.example .env.local
pnpm dev

应用默认运行在 http://localhost:3000。只修改公开页面时,可保留大多数可选服务变量为空;账号、支付、邮件或云函数开发必须使用自己的 development 环境和密钥。不要把真实凭据写入仓库。

常用命令:

命令 用途
pnpm dev 启动本地 Nuxt 开发服务器
pnpm build 构建生产应用并校验客户端路由壳
pnpm preview 本地预览生产构建
pnpm lint 运行 ESLint
pnpm typecheck 运行 Nuxt TypeScript 检查
pnpm test 运行完整 Vitest 测试
pnpm build:authorization-core 构建共享授权核心

所有可配置项及用途见 .env.example。只有 NUXT_PUBLIC_* 变量可以进入浏览器;其他变量必须只保存在本地忽略文件或部署平台的 Secret 中。

目录结构

目录 内容
app/ Nuxt 页面、组件、状态和客户端逻辑
server/ Nitro 服务端 API 与中间件
cloudfunctions/ CloudBase 云函数源码
packages/authorization-core/ Registry、签名和授权共享实现
content/ 文档与博客内容
docs/ 架构、集成、迁移和运维说明
tests/ 单元、集成和工作流回归测试

SSO Client Registry

应用展示、允许的 Origin、回调地址和接入类型统一由 Client Registry 管理。开发环境可以自动生成、校验、合并并部署 Registry;production 发布必须经过人工 owner 审批,或经过受管 YunLeFun 客户端的独立机器策略审批,并继续通过显式环境门禁。机器策略仅允许纯新增、低权限、精确 HTTPS 回调且有实时官方应用/EdgeOne 项目归属证明的客户端;不会注册 *.yunle.fun 通配回调。

不要手工修改 packages/authorization-core/src/generated/*-registry.json 或 *-release.json。接入方式、静态页面适配器和发布模型见 SSO 集成指南。

部署

网站

main 分支由 EdgeOne Pages 的 Git 集成部署到正式站点。Cloudflare Pages 连接同一分支,用作 cloudflare-pages preset 的构建检查和预览;正式域名与生产流量仍以 EdgeOne Pages 为准。

仓库使用 nuxt build 和 Nitro node-server hybrid 运行时。上线前必须在平台配置服务端变量,特别是 NUXT_SESSION_PASSWORD。会话迁移与共享领取密钥要求见 Cookie Session 迁移说明。

CloudBase 云函数

普通云函数不会随网站自动发布。部署脚本会先检查目标环境和 {{env.*}} 占位符,缺少任何变量都会在构建前失败:

node scripts/deploy-function.mjs <function-name>

sso-registry-admin、sso-ticket 和 desktop-auth 依赖 vendored @yunlefun/authorization-core,必须同步构建和发布:

node scripts/build-cloud-function.mjs sso-registry-admin sso-ticket desktop-auth

完整的环境变量、数据库索引、密钥轮换和函数部署说明见 cloudfunctions/README.md。任何 production 变更都应先在 development 完成 smoke,并保留显式审批。

包发布

根项目和两个 workspace 包当前均为 private: true。开源源码不依赖 npm 发布;只有未来需要让其他仓库独立安装稳定 SDK 时,才应单独设计公开包、版本兼容策略和 npm provenance 发布链路。

参与贡献

提交问题或代码前请阅读 贡献指南 与 行为准则。安全漏洞请按 安全策略 私下报告,不要创建公开 Issue。

许可证

MIT © YunLeFun contributors

Description taken from the repository README.

Ratings

–
0 ratings
5 0
4 0
3 0
2 0
1 0

Rate this app

Sign in to rate

Comments 0

Sign in to comment

No comments yet.

Related apps

#dev-tools · #resources · #platform