امیرمهدی
امیرمهدی
خواندن ۵ دقیقه·۵ سال پیش

نصب سرور گیت شخصی روی centos7

عکس صفحه ی اول گیتی
عکس صفحه ی اول گیتی


سلام طبق معمول امیرمهدی هستم :)

من می خواستم پروژم رو با گیت مدیریت کنم روی چند تا دستگاه داشته باشم و روی هر دستگاه کامیت می کنم رو اون یکی هم بیاد . چاره ی کار یک گیت سرور بود . باید پروژم رو میذاشم تو گیت هاب ولی پروژم خصوصی بود و نمی خواستم کسی سورسش رو ببینه و خب خصوصیش هم تحریم و پولی بود :) گیت لب هم که تحریمیم :) . خب باید یک گیت سرور شخصی روی یک سرور روی لوکال یا رو یک vps نصب می کردم که من رو vps نصب کردم :) دو تا گزینه برای گیت سرور شخصی داشتم :

  • گیت لب(gitlab)
  • گیتی(gitea)

خب من اول گیت لب رو نصب کردم چون باحال و دهن پر کن بود :) ولی خب خیلی منابعم رو اشغال کرد و من که از اون vps هم برای میزبانی ۶ تا سایت و هم کلی سرویس دیگه استفاده می کردم ، مناسبم نبود :)

پس به ناچار میریم سراغ گزینه ی دوم گیتی اول قبلش بگم که حالا که گیتی دارم می تونم بگم کاش از اول گیتی نصب می کردم . مزایای گیتی :

  • سریع و چالاک
  • سبک
  • استفاده از منابع کم
  • با کلی قابلیت خوب در هین سادگی
  • نصب آسون

حتی می تونید روی یک رزبری پای هم اجراش کنید.




خب بریم سراغ نصب گیتی (gitea) :

پیش نیاز ها : (ما هرچی نیازه رو خودمون انجام میدیم صرفا ببینید)

  • یوزر روت ، یا اگر یوزر روت نیست و دسترسی اجرای sudo رو داشته باشه
  • گیت
  • ماریا دی بی (مای اس کیو ال )


نصب گیت :

sudo yum update
sudo yum -y install git



نصب سرور و کانفیگ دیتابیس ماریا دی بی :

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

  • MariaDB/MySQL
  • PostgreSQL
  • SQLite
  • TiDB

ولی ما توی این این آموزش از mariadb(mysql) استفاده می کنیم :)

sudo yum -y install mariadb-server

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

systemctl enable mariadb.service systemctl start mariadb.service

بعد از اجرای دستورات بالا ، میریم تا mariadb(mysql) رو کانفیگ کنیم و برای روتش پسورد بزاریم و نزاریم کسی به صورت ریموت بهش کانکت بشه :)

sudo mysql_secure_installation

وقتی دستور بالا رو زدید سوالات رو طبق زیر پر کنید :

Enter current password for root (enter for none): فقط ایننتر رو بزنید Set root password? [Y/n]: Y New password: پسورد انتخابی برای روت مای اسکیوالتون رو بزنید Re-enter new 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

حالا مای اسکیو ال رو ری استارت می کنیم :

sudo systemctl restart mariadb.service

با روت مای اسکیوال لاگین می کنیم :

sudo mysql -u root -p

بعد از زدن دستور بالا پسوردی که برای روت مای اسکیوالتون انتخاب کردید رو بزنید و بعد با پیغام خوش آمد رو به رو میشید. با دستور زیر یک دیتابیس برای گیتی می سازیم :

CREATE DATABASE gitea;

خب حالا یک یوزر با نام giteauser برای دیتابیس می سازیم:

CREATE USER 'giteauser'@'localhost' IDENTIFIED BY 'پسورد برای یوزر';

حالا تمامی دسترسی ها رو به giteauser روی دیتابیس gitea میدیم :

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

راه انداختن محیط گیتی :

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

sudo adduser --system --shell /bin/bash --comment 'Git Version Control' --user-group --home-dir /home/git -m 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


نصب گیتی :

با دستور زیر گیتی رو دانلود می کنیم و و بهش دسترسی اجرا شدن میدیم :)در صورت این که خیلی از زمان انتشار این نوشته میگذره، شما می توتیند از این لینک ، لینک دانلود جدید رو با لینک دانلود قدیمی پایین جایگذین کنید :)

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

انتقال فایل اجرایی gitea توی path تا بشه با یک دستور اجراش کرد و ...

sudo cp gitea /usr/local/bin/gitea

ساخت یک سرویس فایل برای گیتی برای این که اتوماتیک اجرا بشه (بعد از ریبوت و ...) :

خب با دستور زیر ، یک سرویس فایل برای گیتی می سازیم :

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

و با یک ادیتور مانند vi یا nano اطلاعات زیر رو توش میریزیم :

[Unit] Description=Gitea (Git with a cup of tea) 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

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

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


کانفیگ کردن فایروال برای گیتی :

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

sudo firewall-cmd --add-port 3000/tcp --permanent sudo firewall-cmd --reload




کانفیگ نهایی توی وب :

خب و همه چیز تموم شد :)

مرورگرتون رو باز کنید و بزنید :

http://YOUR_SERVER_IP:3000/install

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


ترجمه شده به صورت بهتر و با جمله بندی بهتر و کلا بهتر (با راهنمایی بیشتر)‌ از VULTR

خوش و خندون باشید :)

برنامه نویسیگیتلینوکسسنت او اسپایتون
برنامه نویسی ساده :) یخورده دواپس :) پایتون، گو، علاقمند/دوستدار/استفاده کننده گنو/ لینوکس :) خیلی علاقمند به یادگیری و یاد دادن:) ایمیل من: a.tafreshi440@gmail.com تلگرام من: Amirmahdi_tafreshi@
شاید از این پست‌ها خوشتان بیاید