gitea git

آموزش راه اندازی سرور git اختصاصی با استفاده از gitea

5دقیقه
دیدگاه 1 دیدگاه
بازدید 21568
درناوب
24 اکتبر 2020

docker gitea git

 

مقدمه

در پی تحریم هایی که github برای ایرانی ها اعمال کرده کاربران ایرانی اجازه ساخت repository به صورت private ندارند و همچنین با توجه به فیلتر بودن gitlab بهترین جایگزین میتونه ساخت یک سرور git شخصی باشه

ابزار ها و برنامه های زیادی در این راستا وجود دارد که یکی از بهترین و کم دردسر ترین اونها gitea است.

در آموزش ما قرار است با استفاده از داکر ٬ نرم افزار Gitea رو روی سرور نصب کنیم . Gitea نیازمند یه databse هست تا اطلاعات رو ذخیره کنه . به این خاطر که ما از docker-compose استفاده میکنیم . پس نیاز داریم docker و docker-compose رو روی سرور نصب کنیم . بعد از نصب gitea ما با استفاده از nginx اون رو  serve میکنیم . بعد از اجرای container ها با استفاده از nginx اون ها رو proxy pass میکنیم به ip سرور که در هر بار باز شدن ip سرور در مرورگر ما بتونیم به gitea که توسط داکر نصب شده وصل بشیم .

gitea چیست؟

Gitea یک راه حل میزبانی کد است که در Go نوشته شده است و تحت مجوز MIT منتشر شده است.

با استفاده از gitea شما میتوانید پروژه های خود را به صورت تیمی یا انفرادی بر روی سرور خود مدیریت کنید و از سایت های مدیریت کد مانند gitlab و github بی نیاز شوید.

پیش نیاز های نصب gitea

پیش نیاز های این اموزش :

  • ubuntu server
  • nginx
  • نصب داکر بروی سرور

نصب nginx

در اولین گام به نصب nginx میپردازیم برای نصب nginx دستور زیر را وارد کنید:

sudo apt update
sudo apt install nginx

حال با دستور زیر دسترسی های لازم رو به nginx بدهید:

sudo ufw allow 'Nginx Full'

docker

داکر پروسه‌ها و نرم‌افزارها به صورت مجزا در محیط کاملا ایزوله‌ای بر روی کرنل لینوکس راه‌اندازی میکند

ما برای نصب gitea روی سرور از docker استفاده میکنیم ( روش های دیگه ای هم داره اما نصب به وسیله داکر راحت ترین و بی دردسر ترین روش موجود میباشد )

اگر سرور شما در ایران هست به علت تحریم های docker باید از dns استفاده کنید

برای عوض کردن dns دستور زیر را وارد کنید:

sudo nano /etc/resolv.conf

در ویراشگر تمام nameserver هارو پاک کنید و این ۲ مقادیر رو وارد کنید :

nameserver 178.22.122.100
nameserver 185.51.200.2

فایل رو سیو کرده و خارج بشید.

چون قراره ما از docker-compose استفاده کنیم پس باید اون رو نصب کنیم اما خود docker-compose نیازمند docker-engine هست پس در اول باید خود docker رو نصب کنیم.

نصب docker

برای نصب داکر بروی سرور دستورات زیر را به ترتیب وارد کنید :

sudo apt install apt-transport-https ca-certificates curl software-properties-common
 - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add

سپس دستور زیر را برای اضافه کردن repository داکر وارد کنید:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

و سرانجام دستورات زیر رو وارد کنید :

sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce

نصب docker-compose

برای نصب docker-compose دستور زیر رو وارد کنید :

sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

پس از دانلود docker-compose ٬ برای دادن دسترسی های مورد نیاز دستور زیر را وارد کنید :

sudo chmod +x /usr/local/bin/docker-compose

نصب Gitea با استفاده از docker-compose

با استفاده از دستور زیر یک پوشه به اسم gitea ساخته و وارد آن شوید:

mkdir gitea
cd gitea/

حال با دستور زیر یه فایل به نام docker-compose.yml در داخل پوشه gitea بسازین :

touch docker-compose.yml

سپس با استفاده از دستور زیر این فایل رو با ویرایشگر متن باز کنید :

nano docker-compose.yml

حال متن زیر را با دقت در ویراشگر باز شده وارد کنید :

  • در قسمت DB_NAME و DB_PASSWD اسم دیتابیس و پسورد دلخواه خودتون رو وارد کنید و همچنین در POSTGRES_DB و POSTGRES_PASSWORD همون اطلاعات رو قرار بدید .
version: "3"
networks:
  valhalla:
    external: false
services:
  server:
    image: gitea/gitea:latest
    environment:
      - APP_NAME="git Hub"
      - USER_UID=2005
      - USER_GID=2005
      - DB_TYPE=postgres
      - DB_HOST=gitea_db:5432
      - DB_NAME=gitea_db
      - DB_USER=gitea
      - DB_PASSWD=test12345
    restart: always
    networks:
      - valhalla
    volumes:
      - gitea_data:/data
    ports:
      - "3000:3000"
      - "222:32223"
    depends_on:
      - gitea_db
  gitea_db:
    image: postgres:9.6
    restart: always
    environment:
      - POSTGRES_DB=gitea_db
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=test12345
    networks:
      - valhalla
    volumes:
      - postgres_data:/var/lib/postgresql/data
volumes:
  gitea_data:
  postgres_data:

فایل رو سیو کرده و از آن خارج شوید.

سپس دستور زیر را وارد کرده تا Gitea با استفاده از فایلی که ساختیم نصب بشه:

sudo docker-compose up -d

نصب gitea به پایان رسید ادرس زیر را در مرورگر خود وارد کنید:

http://your_ip_addreess:3000

(دقت کنید به جای your_ip_address باید ip خودتون رو وارد کتید)

در صفحه زیر بر روی گزینه sing in کلیک کنید:

gite sing in page

در صفحه ای که باز میشود بخش database settings نیازی به تغییر ندارد آن را با مقادیر پیش فرض رها کنید

gitea general config

در قسمت general setting این تغییرات را اعمال کنید:

دقت کنید به جای (192.168.0.11) آدرس IP خود را وارد کنید.

حال در انتهای صفحه روی گزینه install gitea کلیک کنید.

تنظیمات nginx

وقتش رسیده است که با استفاده از تنظیمات nginx بتوانیم gitea را روی پورت 80 اجرا کنیم.

برای اینکار دستور زیر را وارد کنید:

 

sudo nano /etc/nginx/sites-available/gitea

در دستور بالا یک فایل کانفیگ برای nginx به اسم gitea ساختیم و برای edit کردن وارد آن شدیم حال کدهای زیر را وارد فایل کنید:

( دقت کنید در قسمت server_name به جای 192.168.0.11 آدرس IP خود را وارد کنید )

server {
    listen 80;
    server_name 192.168.0.11;
  client_max_body_size 100M;
    location = /favicon.ico { access_log off; log_not_found off; }
    location / {
        include proxy_params;
        proxy_pass http://127.0.0.1:3000;
    }
}

فایل را سیو کرده و خارح شوید.

سپس دستور زیر را وارد کنید:

 

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

حال با وارد کردن دستور زیر nginx را ریستارت کرده تا تغییرات بالا اعمال شود:

 

sudo systemctl restart nginx

کار تمام است و اگر IP را بدون پورت 3000 باز کنید میبینید که gitea باز میشود و میتوانید از آن استفاده کنید.

در صفحه gitea از گزینه register برای خود یک حساب و سپس یک repository بسازید و از آن استفاده کنید.

درناوب

تیم طراحی و توسعه درناوب با بیش از ۱۰ سال تجربه در ارائه خدمات طراحی، برنامه نویسی، توسعه و بهینه سازی انواع وبسایت های و اپلیکیشن موبایل میتواند به کسب و کار شما جهت حضور در فضای مجازی کمک کند

10 مطلب برتر

lead funnel

درک اصول lead funnel یا پروسه فروش.

2 آگوست 2020

افزونه جدول مشخصات کالا برای ووکامرس نسخه 0.4.1

24 می 2020
landing page

دلیل نیاز به landing page چیست.

2 آگوست 2020
start landing page

 صفحه فرود را باید از کجا شروع کنیم.

2 آگوست 2020
optimize landing page

بهینه سازی صفحه فرود ( landing page )

2 آگوست 2020
landing _ page

با صفحه فرود جذب مشتری راحت داشته باشید.

2 آگوست 2020
gitea git

آموزش راه اندازی سرور git اختصاصی با استفاده …

24 اکتبر 2020
landing-page mobile

صفحه فرود یا landing page موبایل.

2 آگوست 2020
how to creat landing page builder

landing page builder مناسب کیست.

2 آگوست 2020
successfullylandingpage

عوامل موفقیت صفحه فرود سایت

2 آگوست 2020
دیدگاه کاربران 1 دیدگاه
  • میثم

    ممنون از مقاله خوبتون، بسیار کاربردی بود.

    ارسال پاسخ جمعه 27 آگوست 2021


ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی می‌نویسم.