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

عکس صفحه ی اول گیتیسلام طبق معمول امیرمهدی هستم :)من می خواستم پروژم رو با گیت مدیریت کنم روی چند تا دستگاه داشته باشم و روی هر دستگاه کامیت می کنم رو اون یکی هم بیاد . چاره ی کار یک گیت سرور بود . باید پروژم رو میذاشم تو گیت هاب ولی پروژم خصوصی بود و نمی خواستم کسی سورسش رو ببینه و خب خصوصیش هم تحریم و پولی بود :) گیت لب هم که تحریمیم :) . خب باید یک گیت سرور شخصی روی یک سرور روی لوکال یا رو یک vps نصب می کردم که من رو vps نصب کردم :) دو تا گزینه برای گیت سرور شخصی داشتم :گیت لب(gitlab)گیتی(gitea) خب من اول گیت لب رو نصب کردم چون باحال و دهن پر کن بود :) ولی خب خیلی منابعم رو اشغال کرد و من که از اون vps هم برای میزبانی ۶ تا سایت و هم کلی سرویس دیگه استفاده می کردم ، مناسبم نبود :)پس به ناچار میریم سراغ گزینه ی دوم گیتی اول قبلش بگم که حالا که گیتی دارم می تونم بگم کاش از اول گیتی نصب می کردم . مزایای گیتی :سریع و چالاکسبکاستفاده از منابع کم با کلی قابلیت خوب در هین سادگینصب آسونحتی می تونید روی یک رزبری پای هم اجراش کنید.خب بریم سراغ نصب گیتی (gitea) :پیش نیاز ها : (ما هرچی نیازه رو خودمون انجام میدیم صرفا ببینید)یوزر روت ، یا اگر یوزر روت نیست و دسترسی اجرای sudo رو داشته باشهگیتماریا دی بی (مای اس کیو ال )نصب گیت :sudo yum updatesudo yum -y install gitنصب سرور و کانفیگ دیتابیس ماریا دی بی :گیتی از دیتابیس های زیر هم پشتیبانی میکنه :MariaDB/MySQLPostgreSQLSQLiteTiDBولی ما توی این این آموزش از 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 خوش و خندون باشید :)