كيفية تثبيت Gitea على دبيان 9

Gitea هو نظام بديل مفتوح المصدر للتحكم في الإصدار يعمل بواسطة Git. Gitea مكتوب بلغة Golang وهو حل خفيف الوزن يتم استضافته على أي منصة.

المتطلبات الأساسية

  • مثيل Vultr Debian 9 الجديد.
  • مستخدم غير جذري sudoبامتيازات.
  • Nginx
  • شخص سخيف
  • MariaDB

الخطوة 1: تثبيت Nginx

تحديث قائمة الحزمة الخاصة بك.

sudo apt update

قم بتثبيت Nginx.

sudo apt -y install nginx

بمجرد اكتمال التثبيت ، قم بتشغيل الأوامر التالية لبدء وتمكين خدمة Nginx.

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

الخطوة 2: تثبيت Git

يمكن القيام بذلك باستخدام الأمر التالي.

sudo apt -y install git

الخطوة 3: تثبيت خادم قاعدة بيانات MariaDB

يدعم Gitea خوادم قواعد البيانات التالية.

  • MariaDB / MySQL
  • PostgreSQL
  • سكليتي
  • TiDB

في هذا البرنامج التعليمي ، سنستخدم خادم وعميل MariaDB.

sudo apt -y install mariadb-server mariadb-client

بمجرد الانتهاء ، تأكد من تمكين MariaDB وتشغيله.

sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service

بعد ذلك ، قم بتشغيل الأمر أدناه لتأمين خادم MariaDB عن طريق إنشاء كلمة مرور الجذر وعدم السماح بالوصول إلى الجذر البعيد.

sudo mysql_secure_installation

عند المطالبة ، أجب عن الأسئلة أدناه باتباع الدليل.

Enter current password for root (enter for none): Just press the Enter
Set root password? [Y/n]: Y
New password: Enter password
Re-enter new password: Repeat password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

أعد تشغيل MariaDB.

sudo systemctl restart mariadb.service

اكتب الأمر أدناه لتسجيل الدخول إلى وحدة التحكم MariaDB.

sudo mysql -u root -p

ثم اكتب كلمة المرور التي قمت بإنشائها أعلاه لتسجيل الدخول. سترى رسالة ترحيب MariaDB.

إنشاء قاعدة بيانات تسمى gitea.

CREATE DATABASE gitea;

إنشاء مستخدم قاعدة بيانات يسمى giteauserبكلمة مرور جديدة.

CREATE USER 'giteauser'@'localhost' IDENTIFIED BY 'new_password_here';

تأكد من استبدال new_password_hereكلمة مرور قوية ومعقدة.

ثم امنح المستخدم حق الوصول الكامل إلى قاعدة البيانات.

GRANT ALL ON gitea.* TO 'giteauser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;

أخيرًا ، احفظ التغييرات والخروج.

FLUSH PRIVILEGES;
EXIT;

الخطوة 4: إعداد بيئة Gitea

إنشاء مستخدم لتشغيل Gitea.

sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git

إنشاء بنية الدليل المطلوبة.

sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git:git /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea

الخطوة 5: تثبيت Gitea

يمكن تنزيل ثنائي Gitea عن طريق تشغيل الأوامر التالية.

sudo wget -O gitea https://dl.gitea.io/gitea/1.5.0/gitea-1.5.0-linux-amd64 
sudo chmod +x gitea

انسخ الثنائي إلى موقع عالمي.

sudo cp gitea /usr/local/bin/gitea

الخطوة 6: إنشاء ملف خدمة لبدء Gitea تلقائيًا

إنشاء ملف خدمة لينكس.

sudo touch /etc/systemd/system/gitea.service

باستخدام محرر نصوص من اختيارك ، افتح هذا الملف الذي تم إنشاؤه حديثًا وقم بتعبئته في الحالات التالية.

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mariadb.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024 uncomment
# the two values below
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

تمكين وبدء Gitea في التمهيد.

sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea

تأكد من تشغيل Gitea.

sudo systemctl status gitea

الخطوة 7: تكوين Nginx كوكيل عكسي

احذف ملف التكوين nginx الافتراضي.

sudo rm /etc/nginx/sites-enabled/default

إنشاء تكوين وكيل عكسي لـ Gitea.

sudo touch /etc/nginx/sites-available/git

قم بملء الملف بالتهيئة التالية ، تأكد من استبدال example.comاسم المجال أو عنوان IP الخاص بك.

upstream gitea {
    server 127.0.0.1:3000;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name example.com;
    root /var/lib/gitea/public;
    access_log off;
    error_log off;

    location / {
      try_files maintain.html $uri $uri/index.html @node;
    }

    location @node {
      client_max_body_size 0;
      proxy_pass http://localhost:3000;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_max_temp_file_size 0;
      proxy_redirect off;
      proxy_read_timeout 120;
    }
}

تمكين تكوين الوكيل العكسي لـ Gitea Nginx.

sudo ln -s /etc/nginx/sites-available/git /etc/nginx/sites-enabled/git

ثم أعد تحميل خدمة Nginx.

sudo systemctl reload nginx.service

بعد ذلك ، افتح المستعرض الخاص بك وتصفح للوصول إلى اسم مضيف الخادم أو عنوان IP.

http://YOUR_SERVER_IP/install

اتبع التعليمات التي تظهر على الشاشة لإكمال إعداد Gitea.

اترك تعليقاً

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد