使用 Atidone 管理您的待办事项 ☑️
这是一个使用 Nuxt 进行边缘服务器端渲染、使用 Cloudflare D1 进行身份验证和数据库查询的演示。
功能
- 边缘服务器端渲染
- 使用 nuxt-auth-utils 内置身份验证
- 利用 Cloudflare D1 作为数据库,并使用
hubDatabase()
的 drizzle ORM - 使用 Nuxt UI 构建用户界面
- 在 Nuxt DevTools 中嵌入 Drizzle Studio
在线演示
https://github.com/atinux/atidone/assets/904724/5f3bee55-dbae-4329-8057-7d0e16e92f81
设置
请确保使用 pnpm 安装依赖:
pnpm i
创建一个 GitHub OAuth 应用程序,设置如下:
- 主页 URL:
http://localhost:3000
- 回调 URL:
http://localhost:3000/api/auth/github
在 .env
文件中添加以下变量:
NUXT_OAUTH_GITHUB_CLIENT_ID="我的-github-oauth-应用-id"
NUXT_OAUTH_GITHUB_CLIENT_SECRET="我的-github-oauth-应用-密钥"
为了创建加密会话,您还需要在 .env
中添加至少 32 个字符的 NUXT_SESSION_SECRET
:
NUXT_SESSION_SECRET="您的超长会话加密密钥"
开发
在 http://localhost:3000 启动开发服务器
npm run dev
在 Nuxt DevTools 中,您可以通过点击 Hub Database 标签查看您的表:
https://github.com/atinux/atidone/assets/904724/7ece3f10-aa6f-43d8-a941-7ca549bc208b
部署
您可以使用 NuxtHub 免费且无需配置地将此项目部署到您的 Cloudflare 账户。
npx nuxthub deploy
也可以利用 Cloudflare Pages CI 进行部署,详细了解不同选项请访问 https://hub.nuxt.com/docs/getting-started/deploy
远程存储
部署项目后,您可以通过运行以下命令在本地连接到远程数据库:
pnpm dev --remote
了解更多关于远程存储的信息,请访问 https://hub.nuxt.com/docs/getting-started/remote-storage