לדלג לתוכן

ארכיטקטורה ופריסה

לפרויקט יש ארכיטקטורה מודולרית והוא ארוז במלואו בקונטיינרים, מה שהופך את הפריסה שלו לצפויה וקלה להרחבה.

🏗 ארכיטקטורת רכיבים

בבסיסו עומדים שני רכיבים עיקריים הפועלים ברשת Docker אחת ומוסתרים מאחורי Reverse Proxy:

  1. קונטיינר Nginx (Web Server):
  2. מקבל את כל בקשות ה-HTTP/HTTPS הנכנסות.
  3. מגיש את הקבצים הסטטיים של תיעוד ה-MkDocs שנוצר (תחת הנתיב /docs/).
  4. מנתב (Reverse Proxy) את כל שאר הבקשות (דף הבית, פרויקטים, אנשי קשר) לקונטיינר של Flask.

  5. קונטיינר Flask (App Server):

  6. מעבד נתיבים (Routes) דינמיים ומכניס את השפה המתאימה לתבניות HTML של Jinja.

🚀 תהליך CI/CD (GitHub Actions)

פריסת האתר אוטומטית לחלוטין. עם כל דחיפת (Push) קוד לענף main, ה-Pipeline הבא מופעל:

  1. Checkout & Setup: GitHub Actions משכפל את המאגר (Clone) ומגדיר את סביבת Python.
  2. Build Docs: תלויות (Dependencies) מותקנות (כולל תוספי i18n), והפקודה mkdocs build מבוצעת כדי ליצור את התיעוד הסטטי לתוך תיקיית site/.
  3. SCP Transfer: הקוד הטרי והקבצים הסטטיים שנוצרו מועתקים לשרת ב-Oracle Cloud דרך SSH.
  4. Docker Compose Rebuild: המטמון (Cache) הישן בשרת נמחק, ומופעלת הפקודה docker-compose up -d --build. הקונטיינרים נבנים מחדש עם הקוד החדש ללא השבתה (Zero downtime).

💻 הרצה מקומית (לצורכי פיתוח)

כדי לפרוס את הפרויקט על המחשב המקומי שלך, עליך רק להריץ שתי פקודות.

בניית תיעוד (דורש התקנת Python): ```bash pip install -r requirements.txt mkdocs build -f mkdocs-personal.yml