portfolio.rottigni.tech

前端

  • Nuxt@4

  • TailwindCSS@4

  • Typescript

后端

  • SQLite3

  • Prisma

  • Nitro

种子系统

每天午夜,我的作品集 SQLite 数据库都会通过 VPS 上的专用 Docker 服务自动更新。

该服务运行 Node.js cron 任务,从多个来源生成并更新数据,包括 Vimeo、GitHub、GitLab API、Puppeteer 爬虫,以及托管在 https://storage.rottigni.tech/.

的静态数据源。@prisma/client更新通过

应用到 SQLite 数据库,并同步到 VPS 文件系统和 Nuxt3 容器,两者通过 Docker volumes 保持一致。 https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/logs/seed 容器在运行过程中会生成日志(logs.log、errors.log、debug.log),并发送到我的私有存储

每次运行都会上传。 https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/backup/,容器还会在每次 seed 操作前创建 SQLite3 数据库备份,并存储在

以确保数据安全。

该 seeder 的一个关键特性是可以将我的私有存储作为缓存数据提供者。

(https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/history/)

当请求原始数据源时,会将新的 JSON API 响应文件上传到存储中,文件名包含 UTC 时间戳

当启用缓存时,seeder 会直接读取存储中最新的文件,而不是请求原始数据源。

所有流程由位于 seeding 根目录的 seed.config.ts 文件统一管理。

该文件定义需要 seed 的实体和关系、缓存策略以及数据上传路径。

报告问题

发生了什么奇怪的事情吗?

“邮箱”字段为必填项。
“问题”字段为必填项。