portfolio.rottigni.tech

FRONT-END

  • Nuxt@4

  • TailwindCSS@4

  • Typescript

BACK-END

  • SQLite3

  • Prisma

  • Nitro

Sistema di seeding

Ogni giorno a mezzanotte, il database SQLite del mio portfolio viene aggiornato automaticamente tramite un servizio Docker dedicato sul mio VPS.

Questo servizio esegue un cron job Node.js che compone e aggiorna i dati da diverse fonti, incluse le API di Vimeo, GitHub, GitLab, scraping con Puppeteer e fonti statiche ospitate su https://storage.rottigni.tech/.

Gli aggiornamenti vengono applicati al database SQLite tramite@prisma/cliente sono riflessi sia nel filesystem del VPS che nel container Nuxt3, sincronizzati tramite Docker volumes.

Il container seeder genera log durante il processo, inclusi logs.log, errors.log e debug.log, che vengono inviati al mio storage privato su https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/logs/ad ogni esecuzione.

Il container crea anche un backup del database SQLite3 prima di ogni operazione di seed, salvato su https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/backup/,, per garantire la sicurezza dei dati.

Una funzionalità chiave del sistema è l’utilizzo dello storage privato come cache.

Quando il seeder richiede dati da un provider originale, carica un file JSON con timestamp UTC nel nome su storage

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

Quando la cache è attiva, il seeder legge l’ultimo file dallo storage invece di interrogare il provider originale.

Tutto è orchestrato tramite un file seed.config.ts nella root della directory di seeding.

Questo file definisce quali entità e relazioni devono essere generate, cosa deve essere cachato e dove i dati devono essere caricati.

Nel complesso, questo sistema automatizza gli aggiornamenti del database del portfolio garantendo sicurezza e riducendo le richieste ai provider grazie alla cache.

Segnala un bug

È successo qualcosa di strano?

Il campo "E-mail" è obbligatorio.
Il campo "Problema" è obbligatorio.