Skip to content
VDS · ایپس اور بوٹس

اپنا Git: Forgejo یا Gitea

ویب انٹرفیس، SSH رسائی اور بلڈ رنز کے ساتھ ذاتی ریپوزٹری سرور کیسے سیٹ اپ کریں — اور کیا کاپی کریں تاکہ آپ کا کوڈ ضائع نہ ہو۔

اپ ڈیٹ 23 اگست، 2026

آپ کو اپنا Git اُس وقت درکار ہوتا ہے جب کوڈ کسی اور کے پلیٹ فارم پر نہیں جانا چاہیے، یا جب آپ پرائیویٹ ریپوزٹریز اور بلڈ منٹس پر کوئی حد نہیں چاہتے۔ Forgejo اور Gitea دو قریبی متعلقہ پروجیکٹ ہیں (Forgejo، Gitea سے نکلا ہے)؛ دونوں ایک ہی کنٹینر میں انسٹال ہوتے ہیں اور ایک معمولی مشین پر چلتے ہیں۔

کیا منتخب کریں اور کتنے وسائل

روزمرہ کے کام میں تقریباً کوئی فرق نہیں: انٹرفیس، ایشوز، پل ریکویسٹس، مررز، بلڈز کے لیے Actions۔ Forgejo ایک کمیونٹی تیار کرتی ہے، Gitea ایک کمپنی۔ اگر پروجیکٹ کی آزادی آپ کے لیے اہم ہے تو Forgejo منتخب کریں۔

دو یا تین افراد کے لیے VDS-1 کافی ہے۔ جیسے ہی آپ بلڈز کے لیے رنر شامل کریں، VDS-3 یا اُس سے بڑا لیں: بلڈز CPU اور ڈسک کھا جاتے ہیں، اور ڈسک کی رفتار ٹیئر سے محدود ہوتی ہے۔

Compose کے ذریعے انسٹال کرنا

services:
  forgejo:
    image: codeberg.org/forgejo/forgejo:11
    container_name: forgejo
    restart: unless-stopped
    environment:
      - USER_UID=1000
      - USER_GID=1000
    volumes:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
    ports:
      - "3000:3000"
      - "2222:22"
docker compose up -d
docker compose logs -f forgejo

http://<machine-address>:3000 کھولیں اور ابتدائی سیٹ اپ مکمل کریں۔ پہلا بنایا گیا صارف ایڈمنسٹریٹر بن جاتا ہے۔

آپ کو پورٹ 3000 باہر کے لیے کھلا رکھنے کی ضرورت نہیں۔ اُسے بند کریں اور سروس کے آگے سرٹیفکیٹ کے ساتھ ویب سرور لگائیں — اِس طرح آپ کو HTTPS ملتا ہے اور سیٹ اپ پینل باہر والوں کو نظر نہیں آتا۔ جب تک سیٹ اپ مکمل نہ ہو، جو بھی ایڈریس کھولے گا وہ پہلے ایڈمنسٹریٹر بنا سکتا ہے۔

SSH رسائی

کنٹینر کے اندر پورٹ 22 کو 2222 پر فارورڈ کیا جاتا ہے، کیونکہ 22 سسٹم SSH نے لے رکھی ہے۔ ریپوزٹری کی سیٹنگز میں ایڈریس کچھ اِس طرح نظر آئے گا:

git clone ssh://git@example.com:2222/user/repo.git

اگر آپ بغیر پورٹ کے معمول کا git@example.com:user/repo.git چاہتے ہیں تو 2222 کنٹینر کے لیے چھوڑ دیں اور ہوسٹ پر سسٹم SSH کے ذریعے فارورڈنگ سیٹ کریں، یا انتظامی SSH کو کسی اور پورٹ پر منتقل کر دیں (دیکھیں رسائی کا تحفظ)۔

بلڈز

Actions ایک الگ رنر چلاتا ہے — forgejo-runner کنٹینر، جو ایڈمنسٹریٹر کی سیٹنگز سے ٹوکن کے ذریعے رجسٹر ہوتا ہے۔ اُسے Docker ساکٹ تک رسائی سوچ سمجھ کر ہی دیں: یہ مشین پر root کے برابر ہے۔ بلڈز کے لیے بہتر ہے کہ رنر کو میموری اور CPU سے محدود کریں — دیکھیں وسائل کی حدود۔

کس چیز کا بیک اپ لینا ہے

ساری حالت ./data والیوم میں محفوظ ہوتی ہے: ریپوزٹریز، ڈیٹا بیس، اٹیچمنٹس، کنفیگریشن۔ بیک اپ اِس طرح بنایا جاتا ہے:

docker compose stop forgejo
restic -r <repository> backup ./data
docker compose start forgejo

اگر سروس SQLite استعمال کرتی ہے تو آپ کو اُسے روکنا ہوگا — ورنہ ڈیٹا بیس کا اسنیپ شاٹ متضاد ہو سکتا ہے۔ PostgreSQL کے ساتھ روکنے کے بغیر pg_dump کافی ہے۔ مزید تفصیل کے لیے دیکھیں بالکل کس چیز کا بیک اپ لینا ہے اور Restic۔

عام غلطیاں

  • ریپوزٹری کے حجم کو بھول جانا۔ گیم سرور کے بلڈز اور میڈیا تیزی سے ڈسک کی جگہ کھا جاتے ہیں: ابتدائی ٹیئر کے 40 GB خاموشی سے ختم ہو جاتے ہیں۔
  • ای میل سیٹ نہ کرنا۔ اِس کے بغیر دعوتیں اور پاس ورڈ ری سیٹ کام نہیں کرتے۔ بیرونی SMTP جوڑنا اپنا میل سرور سیٹ کرنے سے آسان ہے۔
  • بیک اپ کے بغیر اپ ڈیٹ کرنا۔ میجر ورژن بدلنے سے ڈیٹا بیس کا اسکیما بدل جاتا ہے۔ پہلے بیک اپ، پھر docker compose pull — دیکھیں کنٹینرز کی اپ ڈیٹ۔