Honwhy
V2EX  ›  问与答

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

  •  
  •   Honwhy · Aug 2, 2025 · 2359 views
    This topic created in 313 days ago, the information mentioned may be changed or developed.

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

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

    Supplement 1  ·  Aug 14, 2025

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

    准备使用R2 作图床功能。

    先补充下参考文档

    Supplement 2  ·  Aug 15, 2025

    文章收录在 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 replies    2025-08-24 22:12:26 +08:00
    georgetso
        1
    georgetso  
       Aug 2, 2025
    这里也不是 vibe coding agent 啊
    chenzhe
        2
    chenzhe  
    PRO
       Aug 2, 2025
    真巧,前阵子还真做了一个,不过是 React 的,用的 nextjs 为底,用 hono 来接管 API 部分。
    Cyanhall
        3
    Cyanhall  
       Aug 2, 2025   ❤️ 1
    我做了一个模板:NuxSaaS https://nuxsaas.com/zh-CN 不过前后端都是 Nuxt, 授权用的 Better Auth, 也有管理后台,通过 wrangler 部署到 cloudflare workers 。
    Honwhy
        4
    Honwhy  
    OP
       Aug 16, 2025
    @Cyanhall 你这个项目用了 pg 数据库的,这个是 cloudflare workers 提供的,还是要自己另外地方创建?
    Cyanhall
        5
    Cyanhall  
       Aug 16, 2025
    @Honwhy cloudflare 不支持 pg, 可以用其他在线的 pg 数据库,然后通过 Hyperdrive 连接
    Honwhy
        6
    Honwhy  
    OP
       Aug 24, 2025
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3115 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 14:12 · PVG 22:12 · LAX 07:12 · JFK 10:12
    ♥ Do have faith in what you're doing.