Gogs یک سرور git با منبع آزاد است که شامل ویرایشگر پرونده مخزن ، ردیابی مسئله پروژه است. Gogs یک برنامه سبک وزن و قابل نصب بر روی سیستم های کم مصرف است. این مقاله مراحل نصب و پیکربندی Gogs در اوبونتو ۱۸٫۰۴ را در بر می گیرد. با ما در شتابان هاست همراه باشيد.
قبل از اینکه شروع کنید
Gogs می توانند از ديتابيس SQLite ، PostgreSQL یا MySQL / MariaDB برای ذخیره اطلاعات خود استفاده کنند.
در این مقاله از SQLite به عنوان ديتابيس مورد نظر استفاده خواهیم کرد. اگر SQLite روی سیستم شما نصب نشده است می توانید با تایپ کردن آن را نصب کنید:
sudo apt install sqlite3
برای ایجاد یک لایه امنیتی بیشتر ، توصیه می شود یک فایروال اساسی تنظیم کنید. شما می توانید مراحل راهنمای راه اندازی فایروال با UFW در راهنمای اوبونتو ۱۸٫۰۴ را دنبال کنید.
ما Gogs را از binary نصب خواهیم کرد.
اولین قدم نصب Git روی سرور شماست. برای انجام این کار ، فهرست بسته محلی را تازه کنید و با اجرای دستورات زیر به عنوان کاربر sudo ، بسته git را نصب کنید:
sudo apt update
sudo apt install git
با نمایش نسخه Git ، نصب را تأیید کنید:
git --version
git version 2.17.1
با تایپ کردن کاربر سیستم جدیدی را برای اجرای سرویس Gogs ایجاد کنید:
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
این دستور کاربر را ایجاد می کند و فهرست خانه را روی / home / git تنظیم می کند. خروجی چیزی شبیه به زیر خواهد بود:
Adding system user `git' (UID 111) ... Adding new group `git' (GID 116) ... Adding new user `git' (UID 111) with group `git' ... Creating home directory `/home/git' ...
از صفحه بارگیری Gogs دیدن کرده و آخرین binary را برای خود بارگیری کنید. آخرین نسخه ۰٫۱۱٫۸۶ است ، اگر نسخه جدید موجود است ، متغیر VERSION را در دستور زیر تغییر دهید.
با استفاده از دستور wget بایگانی Gogs را در فهرست / tmp بارگیری کنید:
ERSION=0.11.86
wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp
پس از اتمام بارگیری ، فایل Gogs tar.gz را استخراج کرده و آن را به فهرست / home / git منتقل کنید:
sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git
دستور زیر را تغییر دهید تا مالکیت دایرکتوری نصب Gogs را به کاربر و گروه git تغییر دهید:
sudo chown -R git: /home/git/gogs
یک فایل واحد سیستماتیک ایجاد کنید
Gogs با یک فایل واحد Systemd همراه است که قبلاً برای مطابقت با تنظیمات ما پیکربندی شده است.
پرونده را با تایپ کردن در / etc / systemd / system / Directory کپی کنید:
sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/
پس از اتمام ، سرویس Gogs را شروع و فعال کنید:
sudo systemctl start gogs
sudo systemctl enable gogs
تأیید کنید که این سرویس با موفقیت شروع شده است:
gogs.service - Gogs Loaded: loaded (/etc/systemd/system/gogs.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-04-25 04:13:44 PDT; 9s ago Main PID: 14376 (gogs) Tasks: 8 (limit: 2319) CGroup: /system.slice/gogs.service `-۱۴۳۷۶ /home/git/gogs/gogs web
اکنون که Gogs بارگیری و اجرا می شود ، زمان آن رسیده است که نصب را از طریق رابط وب نهایی کنید.
مرورگر خود را باز کنید ، http: // YOUR_DOMAIN_IR_IP: 3000 را تایپ کنید و صفحه ای مشابه موارد زیر ظاهر می شود:
پس از اتمام دکمه “نصب gogs ” را بزنید. نصب فوری است و پس از اتمام شما به صفحه ورود هدایت می شوید.
روی پیوند “Sign up now” کلیک کنید.
اولین کاربر ثبت نام شده به طور خودکار به گروه Admin اضافه می شود.
Gogs در دستگاه اوبونتو شما نصب شده است.
این مرحله اختیاری است اما بسیار توصیه می شود. برای استفاده از Nginx به عنوان یک پروکسی معکوس ، باید یک دامنه یا زیر دامنه داشته باشید که به IP عمومی سرور شما اشاره می کند. در این مقاله از gogs.example.com استفاده خواهیم کرد.
ابتدا Nginx را نصب کنید.
ویرایشگر متن خود را باز کرده و پرونده سرور دامنه را ویرایش کنید:
sudo nano /etc/nginx/sites-enabled/gogs.example.com
server { listen 80; server_name gogs.example.com;
include snippets/letsencrypt.conf; return 301 https://gogs.example.com$request_uri; }
server { listen 443 ssl http2; server_name gogs.example.com;
proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s;
client_max_body_size 50m;
# Proxy headers proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr;
# SSL parameters ssl_certificate /etc/letsencrypt/live/gogs.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/gogs.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/gogs.example.com/chain.pem; include snippets/letsencrypt.conf; include snippets/ssl.conf;
# log files access_log /var/log/nginx/gogs.example.com.access.log; error_log /var/log/nginx/gogs.example.com.error.log;
# Handle / requests location / { proxy_redirect off; proxy_pass http://127.0.0.1:3000; } }
برای اعمال تغییرات ، سرویس Nginx را مجدداً راه اندازی کنید:
sudo systemctl restart nginx
در مرحله بعد ، باید دامنه Gogs و url root را تغییر دهیم. برای انجام این کار ، پرونده پیکربندی را باز کرده و خطوط زیر را ویرایش کنید:
sudo nano /home/git/gogs/custom/conf/app.ini
server] DOMAIN = gogs.example.com ROOT_URL = https://gogs.example.com/
سرویس Gogs را با تایپ مجدد شروع کنید:
sudo systemctl restart gogs
در این مرحله ، gogs پیکربندی شده است و می توانید به آن دسترسی داشته باشید: https://gogs.example.com
به منظور اینکه Gogs بتواند ایمیل اعلان ارسال کند ، می توانید Postfix را نصب کنید یا از برخی سرویس های ایمیل متقابل مانند SendGrid ، MailChimp ، MailGun یا SES استفاده کنید.
برای فعال کردن اعلان های ایمیل ، پرونده پیکربندی را باز کرده و خطوط زیر را ویرایش کنید:
sudo nano /home/git/gogs/custom/conf/app.ini
mailer] ENABLED = true HOST = SMTP_SERVER:SMTP_PORT FROM = SENDER_EMAIL USER = SMTP_USER PASSWD = YOUR_SMTP_PASSWORD
اطمینان حاصل کنید که اطلاعات صحیح سرور SMTP را درج کرده اید.
برای اعمال تغییرات ، سرویس Gogs را مجدداً راه اندازی کنید:
sudo systemctl restart gogs
Gogs همچنین به شما امکان می دهد با ایجاد webhook web به Slack وصل شوید و اعلان هایی را به کانال های Slack خود ارسال کنید.
برای به روزرسانی Gogs ، چندین مرحله دستی لازم است.
۱) ابتدا سرویس Gogs را متوقف کنید:
sudo systemctl stop gogs
۲) دایرکتوری نصب Gogs را تغییر نام دهید.
sudo mv /home/git/gogs{,_old}
۳) آخرین نسخه Gogs را بارگیری کرده و آن را به فهرست / home / git منتقل کنید:
VERSION=<THE_LATEST_GOGS_VERSION>
wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp
sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git
اطمینان حاصل کنید که VERSION را با نسخه واقعی نسخه Gogs تغییر داده اید.
۴) با استفاده از دستور rsync زیر ، دایرکتوری ها را در فهرست استخراج شده کپی کنید:
sudo rsync -a /home/git/gogs_old/{custom,data,log,gogs.db} /home/git/gogs/
۵) سرانجام ، سرویس Gogs را شروع کنید:
sudo systemctl restart gogs
این مقاله شما را از طریق نصب و تنظیمات Gogs در اوبونتو ۱۸٫۰۴ طی کرده است. اکنون می توانید اولین پروژه خود را ایجاد کرده و شروع به استفاده از سرور جدید Gogs کنید. ما را در شتابان هاست دنبال كنيد.