事项记录

Todo

  • prod 环境配置 + github flow + vps 设置 - [doing]

    1. github action 侧

      生成 docgate 侧所有的静态文件(不含 env); 其实就是 vite run prod , 然后把整个包 sync 到 vps 的 remote-sync dir

      x 不行!

    2. vps 侧

      文件夹构成:

      • remote-sync dir <== github action push 东西到这里,总是直接覆盖
      • local-deploy-versions/
        • xxx <== 本地实际部署地址,对应某个特定版本,防止 sync 覆盖时导致服务中断或者异常
        • versions.txt
      • local-deploy-head <=== soft link to the actual local-deploy-version-xxx version.

    update 逻辑:

    • 基于时间戳,生成新的版本 vx 名到 versions.txt
    • 复制一份内容到 vx 文件夹;
    • 以 vx 文件夹为 root;
      • uv venv
      • 从某个地方(github private-conf),获取 prod env 文件
      • gen conf

    来重新理一下:

    1. github action 侧:触发 update.
    2. vps 侧:update 进入到 work dir
      1. 获取最新的 prod conf (从 private-conf 里),覆盖
      2. 拉取最新的 release 分支
      3. gen conf
      4. pnpm run prod
      5. uv install (new dependency)
      6. kill -HUP $(cat /var/run/gunicorn.pid) # 优雅 reload
      7. nginx reload
  • supertokens role 的 auth 还行吗?速度感觉是一个问题? [doing]

    • 看起来 get-session 就是要请求一次 core,是因为 parentRefreshTokenHash1 有值。 先这样吧,部署到 server 上看看耗时分析,要是还是很慢,可能就改用直接的 jwt 验证了。应该也是 ok 的
  • page 优化:

    • 增加面包屑
    • 表格样式优化?
    • navbar 对齐主题色,对齐宽度
  • 上线后 TODO

    • 配置 Stripe webhook:
      • 创建 Webhook 端点

        After testing locally, get your webhook event handler up and running on your server. Next, create a webhook endpoint to send checkout.session.completed events to your server, then test the Checkout flow again.

        https://docs.stripe.com/webhooks#register-webhook

Process

早上起来我弄汤圆,好好给黄车车洗漱穿衣。 弄好就带黄车车出去玩了。8 点半,玩到 10 点半吧。还行。慢慢绕着小区走了一圈,然后在 slide 那里玩了估计 20 分钟吧,挺好的,有这个东西,但是有点危险,存在隐患。

今天排查 supertokens 速度问题时,和 ChatGPT 聊了下,顺带问了下 vercel 部署的事情。如果是 vercel 部署的话,整套架构可能都不一样了。 鉴权主要就是 Jwt,刷新 session 完全由前端来处理; 资源处理上,因为 vercel 免费部署有最大 size < 100 MB 的限制,所以大资源都是走 s3 等;这种要做权限保护,一种做法是用 signedurl. 通过请求一个后端,来动态生成一个 signed url,从而支持 cdn 获取。

感觉自己目前这个架构,还是有点复杂了—主要是 auth 这里有点复杂了,是基于哑前端来设计的—只能响应基础的跳转逻辑,在此之上,对跳转链接部分做 hack 来处理 session 刷新。

反正现在这套,肯定是部署不到 vercel 的,只能上我们的 nginx 了。那先也不纠结打 docker 了,直接本地部署吧。


情绪记录

Good

Bad


Reflect

今日有点烦躁。项目开发上,感觉自己想着想着又做复杂了,又没有目标为导向了。同时自己又被生活的一些潜在的想法所干扰。 今天第一天回来,带了很久的娃,感觉黄车车挺厉害的了。