ארכיטקטורה ופריסה
לפרויקט יש ארכיטקטורה מודולרית והוא ארוז במלואו בקונטיינרים, מה שהופך את הפריסה שלו לצפויה וקלה להרחבה.
🏗 ארכיטקטורת רכיבים
בבסיסו עומדים שני רכיבים עיקריים הפועלים ברשת Docker אחת ומוסתרים מאחורי Reverse Proxy:
- קונטיינר Nginx (Web Server):
- מקבל את כל בקשות ה-HTTP/HTTPS הנכנסות.
- מגיש את הקבצים הסטטיים של תיעוד ה-MkDocs שנוצר (תחת הנתיב
/docs/). -
מנתב (Reverse Proxy) את כל שאר הבקשות (דף הבית, פרויקטים, אנשי קשר) לקונטיינר של Flask.
-
קונטיינר Flask (App Server):
- מעבד נתיבים (Routes) דינמיים ומכניס את השפה המתאימה לתבניות HTML של Jinja.
🚀 תהליך CI/CD (GitHub Actions)
פריסת האתר אוטומטית לחלוטין. עם כל דחיפת (Push) קוד לענף main, ה-Pipeline הבא מופעל:
- Checkout & Setup: GitHub Actions משכפל את המאגר (Clone) ומגדיר את סביבת Python.
- Build Docs: תלויות (Dependencies) מותקנות (כולל תוספי i18n), והפקודה
mkdocs buildמבוצעת כדי ליצור את התיעוד הסטטי לתוך תיקייתsite/. - SCP Transfer: הקוד הטרי והקבצים הסטטיים שנוצרו מועתקים לשרת ב-Oracle Cloud דרך SSH.
- Docker Compose Rebuild: המטמון (Cache) הישן בשרת נמחק, ומופעלת הפקודה
docker-compose up -d --build. הקונטיינרים נבנים מחדש עם הקוד החדש ללא השבתה (Zero downtime).
💻 הרצה מקומית (לצורכי פיתוח)
כדי לפרוס את הפרויקט על המחשב המקומי שלך, עליך רק להריץ שתי פקודות.
בניית תיעוד (דורש התקנת Python): ```bash pip install -r requirements.txt mkdocs build -f mkdocs-personal.yml