フロントエンド
Nuxt3
TailwindCSS 5
Typescript
畳紙 |Αα
毎日午前 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 データベースに自動更新を提供すると同時に、キャッシュされたデータを使用してデータ セキュリティを確保し、元のベンダーへの要求を最小限に抑えます。