V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Honwhy
V2EX  ›  问与答

使用 cloudflare workers 搭建全栈化及后台管理系统

  •  
  •   Honwhy · 42 天前 · 1211 次点击
    这是一个创建于 42 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我希望可以一键部署到 cloudflare workers 上, 支持全栈化框架,前端 Vue ,后端使用 Hono 支持登录 better auth

    最好是能支持轻量级 cms 系统(做管理后台)

    第 1 条附言  ·  29 天前

    我采用的方案,已经跑通并且部署成功。 cf workers 全栈化框架,前端Vue,后端:cf workers Hono 账号管理:better-auth(需要想办法把schema 拿到,生成SQL 并做好migration) 数据操作ORM:drizzle 数据库:D1 会话缓存:KV

    准备使用R2 作图床功能。

    先补充下参考文档

    第 2 条附言  ·  28 天前

    文章收录在 2025-08-10-cf-worker-full-stack/

    (文字超出限制了。。。)

    经过多次的调研,本人打算利用cloudflare workers 实现一个全栈化项目的部署,技术选型前端使用Vue,后端除了cloudflare workers全家桶,还是用Honobetter-auth以及drizzle

    初始化框架

    搭建全栈化项目

    npm create cloudflare@latest -- cards --framework=vue
    

    初始化后,整个工程已经配置好vite.config.ts, 规划好前端代码部分在src目录 以及后端代码部分在server目录。 整个项目可以看作以前端项目为主体,后端项目为辅的设计。

    引入better-auth

    这一步的目的是使用better-auth的账号及登录方面的表设计。主要涉及的表有 user account verification,另外和会话相关的我们开启次级存储,使用cloudflare workersKV。同时,better-auth 提供了完整的账号管理功能,以及集成第三方登录的能力。另外它也提供了前端使用的SDK。

    配置better-auth 密钥,这一步和密码hash 有关,具体源码没有深究

    BETTER_AUTH_SECRET=
    

    如果是普通的数据库,不像cloudflare workers 这样子需要首先bindging,然后通过http 接口触发,再从context 中获取,那么配置使用better-auth 挺简单的。

    配置好DB,

    import { betterAuth } from "better-auth";
    import { drizzleAdapter } from "better-auth/adapters/drizzle";
    import { db } from "@/db"; // your drizzle instance
     
    export const auth = betterAuth({
        database: drizzleAdapter(db, {
            provider: "pg", // or "mysql", "sqlite"
        }),
    });
    

    使用cli 工具,npx @better-auth/cli generate 生成schema,npx @better-auth/cli migrate 在数据库中创建表。

    由于cloudflare workers 的特殊性,这里采用网上的开源方案cf-script,先折衷搞到shema,

    
    

    然后初始化BetterAuth对象是在全局路由中处理,

    参考文档

    6 条回复    2025-08-24 22:12:26 +08:00
    georgetso
        1
    georgetso  
       42 天前
    这里也不是 vibe coding agent 啊
    chenzhe
        2
    chenzhe  
       42 天前
    真巧,前阵子还真做了一个,不过是 React 的,用的 nextjs 为底,用 hono 来接管 API 部分。
    Cyanhall
        3
    Cyanhall  
       42 天前   ❤️ 1
    我做了一个模板:NuxSaaS https://nuxsaas.com/zh-CN 不过前后端都是 Nuxt, 授权用的 Better Auth, 也有管理后台,通过 wrangler 部署到 cloudflare workers 。
    Honwhy
        4
    Honwhy  
    OP
       28 天前
    @Cyanhall 你这个项目用了 pg 数据库的,这个是 cloudflare workers 提供的,还是要自己另外地方创建?
    Cyanhall
        5
    Cyanhall  
       28 天前
    @Honwhy cloudflare 不支持 pg, 可以用其他在线的 pg 数据库,然后通过 Hyperdrive 连接
    Honwhy
        6
    Honwhy  
    OP
       19 天前
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2719 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 10:02 · PVG 18:02 · LAX 03:02 · JFK 06:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.