portfolio.rottigni.tech

फ़्रंट एंड

  • Nuxt@4

  • TailwindCSS@4

  • Typescript

बैकएंड

  • SQLite3

  • Prisma

  • Nitro

बोने की व्यवस्था

हर दिन आधी रात को, मेरे पोर्टफोलियो का SQLite डेटाबेस स्वचालित रूप से मेरे VPS पर समर्पित डॉकर सेवा के माध्यम से अपडेट हो जाता है।

यह सेवा एक Node.js क्रॉन जॉब चलाती है जो Vimeo, GitHub, GitLab API, puppeteers web scraping, और स्थैतिक स्रोतों सहित विभिन्न स्रोतों से डेटा को कंपोज़ और अपडेट करती है। https://storage.rottigni.tech/.

अद्यतन SQLite डेटाबेस का उपयोग करने के लिए लागू होते हैं@prisma/clientऔर VPS फाइल सिस्टम और Nuxt3 कंटेनर दोनों में परिलक्षित होते हैं, जो डॉकर वॉल्यूम के माध्यम से अपडेट रहते हैं।

सीडर कंटेनर सीडिंग प्रक्रिया के दौरान लॉग उत्पन्न करता है, जिसमें लॉग.लॉग, एरर.लॉग और डीबग.लॉग शामिल हैं, जो मेरे निजी रिपॉजिटरी में भेजे जाते हैं https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/logs/प्रत्येक रन पर।

कंटेनर प्रत्येक सीड ऑपरेशन से पहले SQLite3 डेटाबेस का बैकअप भी बनाएगा, इसे स्टोर करेगा https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/backup/,, डेटा सुरक्षा सुनिश्चित करने के लिए।

सीडर की एक उल्लेखनीय विशेषता कैश्ड डेटा प्रदाता के रूप में मेरे निजी स्टोर का उपयोग करने की क्षमता है।

जब सीडर किसी स्रोत प्रदाता से डेटा का अनुरोध करता है, तो यह मेरे संग्रह में एक नई JSON API प्रतिक्रिया फ़ाइल अपलोड करता है जिसमें इसके फ़ाइल नाम में ऑपरेशन का UTC टाइमस्टैम्प होता है

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

कैशिंग सक्षम होने पर, सीडर मूल प्रदाता से डेटा का अनुरोध करने के बजाय संग्रह से नवीनतम फ़ाइल पढ़ता है।

यह सब सीडिंग रूट डायरेक्टरी में स्थित सीड.कॉन्फिग.टीएस फाइल के माध्यम से ऑर्केस्ट्रेटेड है।

यह फ़ाइल निर्दिष्ट करती है कि किन निकायों और संबंधों को पॉप्युलेट किया जाना चाहिए, किसे कैश किया जाना चाहिए, और वे पथ जहां डेटा लोड किया जाना चाहिए।

कुल मिलाकर, यह सिस्टम डेटा सुरक्षा सुनिश्चित करते हुए और कैश्ड डेटा के उपयोग के माध्यम से मूल विक्रेताओं के अनुरोधों को कम करते हुए मेरे पोर्टफोलियो के SQLite डेटाबेस को स्वचालित अपडेट प्रदान करता है।

बग की रिपोर्ट करें

कुछ अजीब हुआ क्या?

"ईमेल" फ़ील्ड आवश्यक है।
"समस्या" फ़ील्ड आवश्यक है।