前端
Nuxt@4
TailwindCSS@4
Typescript
每天午夜,我的作品集 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 的实体和关系、缓存策略以及数据上传路径。