portfolio.rottigni.tech

フロントエンド

  • Nuxt@4

  • TailwindCSS@4

  • Typescript

バックエンド

  • SQLite3

  • Prisma

  • Nitro

播種システム

毎日午前 0 時に、私のポートフォリオの SQLite データベースは、VPS 上の専用の Docker サービスを介して自動的に更新されます。.

このサービスは、Vimeo、GitHub、GitLab API、操り人形師の Web スクレイピング、およびホストされている静的ソースなど、さまざまなソースからのデータを作成および更新する Node.js cron ジョブを実行します。 https://storage.rottigni.tech/.

更新は、次を使用して SQLite データベースに適用されます。@prisma/clientこれらは VPS ファイル システムと Nuxt3 コンテナーの両方に反映され、Docker ボリュームを通じて更新されたままになります。

シーダー コンテナーは、シード処理中にログを生成します。これには、logs.log、error.log、debug.log が含まれ、次のプライベート リポジトリに送信されます。 https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/logs/実行ごとに。

コンテナーは、各シード操作の前に SQLite3 データベースのバックアップも作成し、 https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/backup/,, データのセキュリティを確保するため。

シーダーの注目すべき機能は、プライベート ストアをキャッシュされたデータ プロバイダーとして使用できることです。

シーダーがソース プロバイダーからデータを要求すると、ファイル名に操作の UTC タイムスタンプを含む新しい JSON API 応答ファイルをアーカイブにアップロードします。

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

キャッシュが有効になっている場合、シーダーは元のプロバイダーにデータを要求する代わりに、アーカイブから最新のファイルを読み取ります。

これはすべて、シード ルート ディレクトリにある seed.config.ts ファイルを介して調整されます。

このファイルは、入力する必要があるエンティティと関係、キャッシュする必要があるもの、およびデータを読み込む場所へのパスを指定します。

全体として、このシステムは私のポートフォリオの SQLite データベースに自動更新を提供すると同時に、キャッシュされたデータを使用してデータ セキュリティを確保し、元のベンダーへの要求を最小限に抑えます。

バグを報告

何かおかしなことが起きましたか?

"メールアドレス" フィールドは必須です。
"問題" フィールドは必須です。