フロントエンド
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ボリュームで同期されます。 https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/logs/シーダーコンテナは処理中にログ(logs.log、errors.log、debug.log)を生成し、それらは私のプライベートストレージ
へ送信されます。 https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/backup/,また、各シード処理の前にSQLite3データベースのバックアップを作成し
に保存することでデータの安全性を確保します。
このシーダーの特徴の一つは、プライベートストレージをキャッシュデータプロバイダーとして利用できる点です。
(https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/history/)元プロバイダーからデータを取得する際、新しいJSONレスポンスファイルをUTCタイムスタンプ付きでストレージにアップロードします
キャッシュが有効な場合、シーダーは元のプロバイダーではなくストレージから最新ファイルを読み込みます。
すべてはシーディングディレクトリのルートにあるseed.config.tsで管理されています。
このファイルでは、シード対象のエンティティやリレーション、キャッシュ対象、アップロード先パスを定義します。