portfolio.rottigni.tech

FRONTEND

  • Nuxt@4

  • TailwindCSS@4

  • Typescript

BACKEND

  • SQLite3

  • Prisma

  • Nitro

Das Seeding-System

Jeden Tag um Mitternacht wird meine Portfolio-SQLite-Datenbank automatisch über einen Docker-Service auf meinem VPS aktualisiert.

Dieser Service führt einen Node.js-Cronjob aus, der Daten aus verschiedenen Quellen zusammenführt, darunter Vimeo, GitHub, GitLab APIs, Puppeteer Web-Scraping und statische Quellen, die auf https://storage.rottigni.tech/.

gehostet sind.@prisma/clientDie Updates werden mit

in die SQLite-Datenbank geschrieben und sind sowohl im VPS-Dateisystem als auch im Nuxt3-Container verfügbar, synchronisiert über Docker-Volumes. https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/logs/Der Seeder-Container erzeugt während des Prozesses Logs (logs.log, errors.log und debug.log), die bei jedem Lauf an meinen privaten Speicher gesendet werden:

. https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/backup/,Zusätzlich erstellt der Container vor jedem Seed-Operation ein Backup der SQLite3-Datenbank unter

, um Datensicherheit zu gewährleisten.

Ein besonderes Feature ist die Nutzung meines privaten Speichers als Cache-Provider.

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

Wenn der Seeder Daten von einem Provider anfordert, speichert er die JSON-Antwort mit einem UTC-Timestamp im Dateinamen

Wenn Caching aktiviert ist, wird stattdessen die neueste Datei aus dem Speicher gelesen.

Alles wird über eine seed.config.ts im Root des Seeding-Verzeichnisses gesteuert.

Diese Datei definiert, welche Entitäten und Relationen gesendet werden, was gecached wird und wohin Daten hochgeladen werden.

Fehler melden

Ist etwas Seltsames passiert?

Das Feld "E-Mail" ist erforderlich.
Das Feld "Problem" ist erforderlich.