שרת Git באירוח עצמי: Forgejo/Gitea, CI/CD, LDAP והעברה
אם אתם משתמשים ב-GitLab CE עבור צוות של 10–15 מפתחים, אתם יודעים כמה הוא צורך משאבים: לפחות 4 GB RAM כדי להתחיל, ובסביבת ייצור 8–16 GB בנוסף ל-Postgres, Redis ו-Sidekiq נפרדים. עבור פרויקטים קטנים זה מוגזם ויקר. אנו מציעים חלופה קלת משקל — Forgejo או Gitea. קובץ בינארי אחד, 1 GB RAM, 50 MB דיסק — ומקבלים שרת git מלא עם ממשק אינטרנט, מערכת מעקב אחר בעיות, ועכשיו גם CI מובנה דרך Forgejo Actions. הצוות שלנו פרס למעלה מ-50 התקנות כאלה עבור פינטק, מסחר אלקטרוני ו-SaaS במהלך השנים. לא הייתה אף תקלה שנגרמה על ידי הפלטפורמה. בניגוד ל-GitLab, Forgejo אינו דורש שרת ייעודי — VPS עם 1 GB RAM מספיק. החיסכון בשרתי ענן הוא פי 3–5, מה שמפחית עלויות חודשיות מ-$500 ל-$150.
אילו בעיות Forgejo פותר?
Forgejo פותר שלוש בעיות עיקריות: משאבים, מורכבות ו-CI/CD. בואו נבחן כל אחת:
- משאבים: GitLab CE צורך עד 8 GB RAM אפילו עם 10 משתמשים. Forgejo רץ על 1 GB ללא ירידה בביצועים, ומפחית עלויות שרתי ענן פי 3–5.
- מורכבות: GitLab דורש Postgres, Redis ו-Sidekiq נפרדים. Forgejo הוא קובץ בינארי אחד או Docker Compose עם שני קונטיינרים (אפליקציה + DB).
- CI/CD: GitLab CI דורש GitLab Runner. Forgejo Actions משתמש בתחביר של GitHub Actions ואינו דורש שירותים חיצוניים.
למה Forgejo משתלם יותר מ-GitLab?
השוואת משאבים:
| פרמטר | Forgejo | GitLab CE |
|---|---|---|
| RAM מינימלי | 1 GB | 4 GB |
| RAM מומלץ (50 משתמשים) | 2 GB | 8 GB |
| דיסק | 50 MB | 1 GB+ |
| תלותים | Postgres | Postgres, Redis, Sidekiq |
| זמן פריסה | 30 דקות | 2–4 שעות |
Forgejo הוא פיצול של Gitea שנוצר לאחר סכסוך קהילתי. טכנית הם תואמים: תצורות ו-API מועברים ללא שינוי. Forgejo מקבל תיקונים 30% מהר יותר (לפי נתוני OpenHUB). לפרויקטים חדשים אנו ממליצים על Forgejo.
אפשרויות פריסה
| שיטה | מורכבות | זמן | גמישות |
|---|---|---|---|
| Docker Compose | נמוכה | 30 דקות | בינונית |
| קובץ בינארי | בינונית | שעה | גבוהה |
| Helm chart (Kubernetes) | גבוהה | שעתיים | מקסימלית |
איך להקים Forgejo עם CI/CD בשעה?
-
פריסה דרך Docker Compose – צרו
docker-compose.yml:--- version: "3" services: forgejo: image: codeberg.org/forgejo/forgejo:8 container_name: forgejo environment: - USER_UID=1000 - USER_GID=1000 - FORGEJO__database__DB_TYPE=postgres - FORGEJO__database__HOST=db:5432 - FORGEJO__database__NAME=forgejo - FORGEJO__database__USER=forgejo - FORGEJO__database__PASSWD=secret volumes: - ./data:/data ports: - "3000:3000" - "222:22" restart: unless-stopped db: image: postgres:16 environment: - POSTGRES_USER=forgejo - POSTGRES_PASSWORD=secret - POSTGRES_DB=forgejo volumes: - ./postgres:/var/lib/postgresql/dataהריצו:
version: "3" services: forgejo: image: codeberg.org/forgejo/forgejo:8 container_name: forgejo environment: - USER_UID=1000 - USER_GID=1000 - FORGEJO__database__DB_TYPE=postgres - FORGEJO__database__HOST=db:5432 - FORGEJO__database__NAME=forgejo - FORGEJO__database__USER=forgejo - FORGEJO__database__PASSWD=secret volumes: - ./data:/data ports: - "3000:3000" - "222:22" restart: unless-stopped db: image: postgres:16 environment: - POSTGRES_USER=forgejo - POSTGRES_PASSWORD=secret - POSTGRES_DB=forgejo volumes: - ./postgres:/var/lib/postgresql/data.הגדירו דרך ממשק האינטרנט – קבעו דומיין, אימייל, השבתת הרשמה. פרמטרים מרכזיים ב-
docker-compose up -d:[server] DOMAIN = git.company.com ROOT_URL = https://git.company.com/ SSH_DOMAIN = git.company.com SSH_PORT = 22 DISABLE_SSH = false [service] DISABLE_REGISTRATION = true REQUIRE_SIGNIN_VIEW = true REGISTER_EMAIL_CONFIRM = true/data/gitea/conf/app.iniהוא חובה עבור צוות סגור. הגדירו Forgejo Actions – הוסיפו קובץ workflow[server] DOMAIN = git.company.com ROOT_URL = https://git.company.com/ SSH_DOMAIN = git.company.com SSH_PORT = 22 DISABLE_SSH = false [service] DISABLE_REGISTRATION = true REQUIRE_SIGNIN_VIEW = true REGISTER_EMAIL_CONFIRM = true:on: [push] jobs: test: runs-on: docker steps: - uses: actions/checkout@v4 - name: Run tests run: go test ./...רשמו act runner:
act_runner register \ --instance https://git.company.com \ --token <runner_token> \ --name my-runner \ --labels docker:docker://node:20-bookwormה-Runner מבצע משימות בקונטיינרים מבודדים של Docker. כל התהליך אורך 30–60 דקות.
דוגמה לתצורת ייצור
לסביבת ייצור, אנו ממליצים להוסיף שכפול מסד נתונים וחידוש אוטומטי של תעודות SSL דרך Let's Encrypt. השתמשו ב-Postgres חיצוני עם שכפול וגיבויים קבועים של המאגרים. כמו כן, הגדירו ניטור עם Prometheus והתראות ב-Slack.
איך להעביר מאגרים מ-GitHub או GitLab?
Forgejo תומך בייבוא עם בעיות, pull requests, אבני דרך ו-wiki intact. להעברה בכמות גדולה השתמשו ב-API:
for repo in $(gh repo list myorg --json name -q '.[].name'); do curl -X POST https://git.company.com/api/v1/repos/migrate \ -H "Authorization: token $FORGEJO_TOKEN" \ -H "Content-Type: application/json" \ -d "{\"clone_addr\":\"https://github.com/myorg/$repo\",\"repo_name\":\"$repo\",\"mirror\":false,\"private\":true}" doneאוטומציה של העברת 50 מאגרים אורכת לא יותר מ-2–3 ימים.
מה כלול
- התקנה והגדרה של Forgejo (או Gitea) עם HTTPS ו-LDAP.
- אינטגרציה עם LDAP/SSO (Active Directory, OpenLDAP, Keycloak).
- הגדרת Forgejo Actions ורישום act runner.
- העברת מאגרים מ-GitHub, GitLab, Bitbucket עם שמירת היסטוריה.
- תיעוד והדרכת צוות.
- חודש של תמיכה באחריות.
מהנדסי ה-DevOps שלנו מחזיקים בהסמכות CKA ויש להם ניסיון של 5+ שנים ב-Kubernetes ו-GitOps. השלמנו למעלה מ-50 פרויקטים של העברת והגדרת שרתי Git עבור פינטק ומסחר אלקטרוני.
לוחות זמנים משוערים
- התקנת Forgejo/Gitea בסיסית עם HTTPS ו-LDAP – מ-4 עד 8 שעות.
- הוספת Forgejo Actions והעברה – מיום עד 3 ימים.
- פרויקט מלא כולל הכל – מ-3 עד 5 ימים.
העלות מחושבת באופן אישי לאחר ביקורת של התשתית שלכם. הזמינו פריסת Forgejo מלאה עם CI/CD ו-LDAP — קבלו שרת git מוכן תוך 4 שעות. צרו קשר לביקורת תשתית. קבלו ייעוץ ממהנדס DevOps להגדרת Forgejo.
Forgejo היא פלטפורמת ניהול מאגרי git בקוד פתוח.







