جميع الأنظمة تعمل بشكل طبيعي 21 العملات المشفرة المقبولة · Monero مرحّب بها سياسة بدون KYC
ChainVPS

تطوير · بدون KYC

استضف Gitea على VPS خارجي

شغّل منصة Git خفيفة خاصة بك على VPS بدون KYC يُدفع بالعملات الرقمية، واحتفظ بكل مستودع (repo) ومشكلة (issue) وخط أنابيب CI بعيدًا عن سحابات الأطراف الثالثة.

ما هو

Gitea هي خدمة Git مستضافة ذاتيًا مكتوبة بلغة Go — بديل خفيف عن GitHub/GitLab يوفر المستودعات (repositories)، وطلبات السحب (pull requests)، والمشكلات (issues)، والويكي (wikis)، والإصدارات (releases)، وActions (CI/CD). تُشحن كملف تنفيذي واحد (binary) أو صورة Docker بحجم ذاكرة صغير، ما يجعلها مثالية للفرق التي تريد التحكم الكامل في كود مصدرها.

لماذا تستضيفه خارجيًا

يُعد الكود المصدري من أكثر البيانات حساسية التي تملكها الفرق؛ واستضافته على VPS أوفشور بلا هوية يبقيه بعيدًا عن متناول منصات استضافة الكود الكبرى وأنظمة الاحتفاظ بالبيانات والحذف الخاصة بها. الدفع بالعملات الرقمية بدون KYC يعني أن بنية مشروعك التحتية غير مرتبطة بهوية شركة، والنطاق الترددي غير المحدود يتيح تدفق عمليات الاستنساخ (clones) وتشغيلات CI وتنزيلات الإصدارات دون مفاجآت في القياس.

النشر

إعداد مرجعي عملي

انسخ هذا إلى نسخة ChainVPS جديدة. استبدل العناصر النائبة، ثم قم بتشغيله.

docker-compose.yml

# docker-compose.yml — Gitea + PostgreSQL on Ubuntu 24.04
# 1) apt install docker.io docker-compose-v2
# 2) put this file in /opt/gitea and run: docker compose up -d
# 3) open http://SERVER_IP:3000 to finish the web installer
services:
  server:
    image: gitea/gitea:1.22
    container_name: gitea
    restart: always
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=CHANGE_ME_STRONG_DB_PW
      # correct clone URLs — set to your domain once DNS is ready:
      - GITEA__server__DOMAIN=git.example.com
      - GITEA__server__ROOT_URL=https://git.example.com/
      - GITEA__server__SSH_PORT=222
      - GITEA__service__DISABLE_REGISTRATION=true
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"   # web UI — front with a TLS reverse proxy in production
      - "222:22"      # git-over-SSH (host 222 -> container 22)
    depends_on:
      - db
    networks:
      - gitea

  db:
    image: postgres:16
    container_name: gitea-db
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=CHANGE_ME_STRONG_DB_PW
      - POSTGRES_DB=gitea
    volumes:
      - ./postgres:/var/lib/postgresql/data
    networks:
      - gitea

networks:
  gitea:
    external: false

جدار الحماية

المنافذ المطلوب فتحها

المنفذالبروتوكولالغرض
3000TCPواجهة ويب Gitea وGit عبر HTTP — أبقها خلف بروكسي عكسي TLS (Caddy/Nginx) في بيئة الإنتاج
222TCPGit عبر SSH (منفذ المضيف مربوط بالمنفذ 22 داخل الحاوية) لعمليات الاستنساخ/الدفع باستخدام مفاتيح SSH
443TCPHTTPS عبر البروكسي العكسي بمجرد توفر نطاق وشهادة
22TCPSSH الخاص بالمضيف للإدارة — أبقه على منفذ منفصل عن منفذ Gitea 222 واعتمد فيه على المفاتيح فقط

الحجم الأمثل

الباقة التي تحتاجها

خفيف

VPS Nano/Small (1-2 vCPU, 2 GB RAM)

مطوّر منفرد أو عدد قليل من المستخدمين، بضع عشرات من المستودعات، بدون CI. يستهلك Gitea نحو 150-200 MB RAM في وضع الخمول.

متوسط

VPS Pro (2-4 vCPU, 4-8 GB RAM)

فريق صغير مع طلبات سحب نشطة، بالإضافة إلى مشغّل أو اثنين من Gitea Actions للـ CI. أضف وحدة تخزين إضافية لملفات الإصدارات الكبيرة.

ثقيل

Dedicated (or Storage VPS for repos)

عدد كبير من المستخدمين المتزامنين، مستودعات ضخمة (monorepos)، تزامن CI مكثف، أو وسائط كثيفة الاستخدام لـ LFS. المعالج المخصص (Dedicated CPU) يحافظ على سرعة عمليات الاستنساخ والتعبئة (clone/pack)؛ اقرنه بخطة تخزين (Storage) لبيانات المستودعات وLFS.

أفضل المواقع: اختر موقعًا من فئة الخصوصية العالية — تقدّم سويسرا (CH) وآيسلندا (IS) أقوى وضعية لحماية البيانات بالنسبة للكود المصدري، بينما تُعد هولندا (NL) ورومانيا (RO) ومولدوفا (MD) ولوكسمبورغ (LU) بدائل أوفشور موثوقة. اختر المنطقة الأقرب لمساهميك لتقليل زمن استجابة عمليات الاستنساخ/الدفع، لأن عمليات git ذهابًا وإيابًا حساسة لزمن الاستجابة.

أحكِم تأمينه

قائمة تحقق التحصين

  • لا تعرّض المنفذ 3000 مباشرة على الإنترنت أبدًا — ضع أمام Gitea بروكسي عكسي TLS (Caddy بشهادات HTTPS تلقائية أو Nginx + certbot)، واضبط GITEA__server__ROOT_URL على نطاق https حتى تكون روابط الاستنساخ صحيحة.
  • اضبط DISABLE_REGISTRATION=true (موجود بالفعل في ملف compose) مباشرة بعد إنشاء حساب المسؤول (admin) الخاص بك حتى لا يتمكن أحد من التسجيل الذاتي؛ ادعُ المستخدمين يدويًا أو عبر لوحة الإدارة.
  • أبقِ Git عبر SSH على المنفذ 222 وsshd الخاص بالمضيف على منفذ مختلف، وكلاهما يعتمد على المفاتيح فقط (PasswordAuthentication no)؛ يدير Gitea ملف authorized_keys داخليًا، لذا لا تعدّله يدويًا.
  • فعّل المصادقة الثنائية (2FA) لكل حساب واجعلها إلزامية لحساب المسؤول؛ انقل كلمة مرور قاعدة البيانات من متغيرات البيئة إلى Docker secret أو ملف .env بصلاحيات 600.
  • خذ نسخًا احتياطية دورية من مجلد ./gitea (المستودعات، الإعدادات، LFS) ومن pg_dump لقاعدة بيانات gitea، وثبّت الصورة على وسم إصدار محدد (gitea/gitea:1.22) بدلًا من latest حتى تكون الترقيات مقصودة — اقرأ ملاحظات الإصدار قبل الانتقال إلى إصدارات رئيسية جديدة.

الأسئلة

الاستضافة Gitea — الأسئلة الشائعة

هل يمكنني تشغيل CI/CD بدون خدمة منفصلة؟

نعم. يتضمن Gitea ميزة Actions مدمجة (متوافقة مع GitHub Actions). فعّلها، ثم سجّل حاوية مشغّل (gitea/act_runner) مرتبطة بنسختك. لأحمال CI الحقيقية، استخدم خطة Medium أو أعلى حتى لا تستهلك عمليات البناء موارد خدمة الويب.

SQLite أم MySQL أم PostgreSQL؟

يعمل SQLite جيدًا لمستخدم واحد بأعباء خفيفة ولا يحتاج إلى حاوية قاعدة بيانات. أما لأي فريق أو مسار نمو، فاستخدم PostgreSQL كما هو موضّح في ملف compose — فهو يتعامل مع التزامن بشكل أفضل بكثير ومن السهل جدًا أخذ نسخة احتياطية منه باستخدام pg_dump.

كيف أنقل مستودعاتي من GitHub/GitLab؟

تستورد أداة الترحيل المدمجة في Gitea أي مستودع عبر الرابط (URL) مع المشكلات (issues) وطلبات السحب (PRs) والإصدارات والويكي. أضف رمزًا (token) للمنصة المصدر في نموذج الترحيل لجلب المستودعات الخاصة والبيانات الوصفية.

هل يدعم هذا الملفات الكبيرة (Git LFS)؟

نعم، LFS مدعوم بشكل أصلي ويُخزَّن ضمن /data. إذا كنت تستضيف ملفات تنفيذية أو وسائط كبيرة، ضع ./gitea على وحدة تخزين من نوع Storage VPS وخصص مساحة قرص كافية — فحجم عناصر LFS يتراكم بسرعة.

هل يبقى كودي خاصًا على استضافة بدون KYC؟

تعيش مستودعاتك بالكامل على قرص VPS الخاص بك في الولاية القضائية الأوفشور التي تختارها؛ لا يتم نسخ أي شيء إلى طرف ثالث. أبقِ التسجيل معطلًا، واستخدم HTTPS مع مفاتيح SSH، وفعّل المصادقة الثنائية (2FA)، وخذ نسخًا احتياطية مشفّرة خارج الخادم للتحكم الكامل.

أطلق فورًا Gitea
خلال الـ60 ثانية القادمة.

نطاق غير محدود · حماية DDoS مشمولة · 21 عملة رقمية · بدون KYC.