خصم ٥٠٪ على جميع الخطط، لفترة محدودة. يبدأ من $2.48/mo
Gogs

Gogs

Gogs خدمة Git ذاتية الاستضافة سهلة الإعداد. أخف من Gitea و GitLab، مكتوبة بـ Go، وتعمل بسلاسة على VPS بـ 512 MB أو حتى على Raspberry Pi. الخادم الأصلي المبني على Go لـ Git، وسابقة Gitea، لا تزال تحظى بصيانة فعّالة لمن يفضّل حلاً أبسط.

الإصدار

0.14.2

نظام التشغيل

خادم Ubuntu 24.04 LTS

الحد الأدنى لـ RAM

1 GB

أنواع IP

IPV4,IPV6

الوصول

  • افتح المتصفح وانتقل إلى: https://<SERVER_IP>
  • تحذير SSL في المتصفح متوقع (شهادة موقّعة ذاتيًا)
  • تسجيل حساب جديد
  • أول حساب مسجَّل يصبح مدير النظام

تعطيل التسجيل الذاتي (اختياري)

التسجيل الذاتي للمستخدمين مفعَّل افتراضياً.

١. عدِّل ملف الإعدادات: /etc/gogs/conf/app.ini

٢. ضمن قسم [auth] غيِّر القيمة إلى: DISABLE_REGISTRATION = false to DISABLE_REGISTRATION = true

٣. أعد تشغيل Gogs:

systemctl restart gogs

الملفات والمجلدات المهمة

  • مجلد التثبيت: /opt/gogs
  • ملف الإعداد: /etc/gogs/conf/app.ini
  • بيانات التطبيق: /var/lib/gogs
  • المستودعات: /var/lib/gogs/repositories
  • السجلات: /var/log/gogs
  • خدمة Systemd: /etc/systemd/system/gogs.service
  • إعدادات Nginx: /etc/nginx/sites-available/gogs.conf
  • شهادات TLS: /etc/nginx/ssl/

استخدام Git

HTTPS (شهادة موقّعة ذاتيًا):

GIT_SSL_NO_VERIFY=true git clone https://<SERVER_IP>/<USERNAME>/<REPOSITORY>.git

SSH (الخادم المدمج):

git clone ssh://git@<SERVER_IP>:2222/<USERNAME>/<REPOSITORY>.git

إدارة الخدمة

غوغس:

systemctl status gogs
systemctl restart gogs

Nginx:

systemctl status nginx
systemctl restart nginx

PostgreSQL:

systemctl status postgresql
systemctl restart postgresql

ملاحظات

  • ملف الإعداد الرئيسي موجود في /etc/gogs/conf/app.ini. بعد تعديل ملف الإعداد، أعد تشغيل الخدمة باستخدام systemctl restart gogs.
  • حدّ رفع الملفات في Nginx مُعرَّف في /etc/nginx/sites-available/gogs.conf باستخدام client_max_body_size. ارفع هذه القيمة للمستودعات الكبيرة ثم أعد تشغيل Nginx.
  • للنشر على نطاق واسع، يمكنك إلغاء التعليق عن LimitMEMLOCK=infinity و LimitNOFILE=65535 in /etc/systemd/system/gogs.service، ثم نفّذ systemctl daemon-reload وأعد تشغيل Gogs.
  • بيانات اعتماد قاعدة البيانات مُعرَّفة في /etc/gogs/conf/app.ini.
  • في بيئات الإنتاج، يُنصح باستبدال الشهادة الموقّعة ذاتيًا بشهادة Let's Encrypt صالحة.
  • عند استخدام شهادة موقّعة ذاتيًا، يتطلب الاستنساخ عبر HTTPS GIT_SSL_NO_VERIFY=true.

تفعيل SSL مع نطاق خاص

١. أشر نطاقك إلى عنوان IP الخادم.

٢. حدّث إعداد Gogs (/etc/gogs/conf/app.ini):

EXTERNAL_URL = https://yourdomain.com/
DOMAIN = yourdomain.com
SSH_DOMAIN = yourdomain.com

٣. أعد تشغيل خدمة Gogs لتطبيق التغييرات:

systemctl restart gogs

٣. عدّل إعداد Nginx واستبدل كلًا من server_name <IP>; بنطاقك (<your-domain>) لكلٍّ من كتلتَي HTTP (المنفذ 80) وHTTPS (المنفذ 443):

vim /etc/nginx/sites-available/gogs.conf

٤. ثبّت Certbot:

apt install -y certbot python3-certbot-nginx

٥. نفّذ الأمر التالي لإنشاء شهادة Let's Encrypt صالحة:

certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com

٦. استبدل مسارات SSL في إعداد Nginx:

vim /etc/nginx/sites-available/gogs.conf
# Before:
    # ssl_certificate /etc/nginx/ssl/gogs.crt;
    # ssl_certificate_key /etc/nginx/ssl/gogs.key;
# After:
    # ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

٧. أعد تشغيل Nginx لتطبيق التغييرات:

systemctl restart nginx

٨. افتح المتصفح وزر: https://yourdomain.com

المزيد في أدوات DevOps

تطبيقات ذات صلة.

ابدأ نشر Gogs الآن. يبدأ من ٢٫٤٨ دولار/شهر.