نحوه نصب GitBucket در اوبونتو 16.04

این راهنما شامل نصب و راه اندازی اولیه GitBucket برای نمونه Vultr است که اوبونتو 16.04 را اجرا می کند ، و فرض می کند که شما به عنوان یک non-rootکاربر دستورات را اجرا می کنید .

پیش نیازها

  • یک نمونه سرور Vultr با حداقل 1 گیگابایت حافظه رم (نمونه های کوچکتر ممکن است کار کنند ، البته به آرامی).
  • openjdk-8-jre مورد نیاز ، نسخه های قدیمی تر کار نمی کنند.
  • wget برای بارگیری بسته GitBucket استفاده می شود.
  • nginx اختیاری ، یک پروکسی معکوس برای GitBucket فراهم می کند
  • systemd شروع و متوقف کردن فرآیند GitBucket را مدیریت می کند

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

GitBucket برای نصب روی سرور شما نیاز به جاوا 8 یا جدیدتر دارد. اگر Java 8 را نصب نکرده اید ، ابتدا لیست های بسته محلی خود را به روز کنید.

sudo apt update

سپس بسته اجرای زمان Java 8 را نصب کنید.

sudo apt install openjdk-8-jre

نصب GitBucket

ایجاد یک کاربر غیر شخصی

برای اجرای GitBucket قبل از هرگونه کار دیگر ، باید یک کاربر غیر شخصی ایجاد کنیم. اجرای GitBucket تحت یک کاربر غیر شخصی نصب ما را از نوشتن در خارج از فهرست داده های خود محدود می کند و امنیت سرور شما را تقویت می کند. دستور زیر را اجرا کنید تا کاربر سیستمی به نام ایجاد شود gitbucket.

sudo adduser --system gitbucket

از آنجا که ما یک کاربر سیستم ایجاد کرده ایم ، پوسته پیش فرض است /bin/false، و ما به پوسته فعلی ما باز می شویم ، مگر اینکه در هنگام اجرا آرگومان اضافی پوسته ارائه دهیم su. ورود به کاربر تازه ایجاد شده.

sudo su - gitbucket -s /bin/bash

اعلان پوسته شما باید تغییر کند و شما به کاربر سیستم جدید وارد شوید.

بارگیری / به روزرسانی GitBucket

به صفحه نسخه های GitBucket بروید و آخرین نسخه موجود را پیدا کنید. URL gitbucket.warبسته را کپی کنید ، تأیید کنید که در فهرست خانه کاربر جدید قرار دارید و آن را بارگیری کنید wget.

cd ~/
wget https://github.com/gitbucket/gitbucket/releases/download/4.18.0/gitbucket.war

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

پیکربندی اولیه GitBucket

پس از بارگیری بسته ، برای انجام پیکربندی اولیه باید به صورت دستی GitBucket را شروع کنیم.

java -jar gitbucket.war --port 8080

اگر درگاه 8080قبلاً توسط یک فرآیند دیگر گرفته شده باشد ، می توانید درگاه را تغییر دهید GitBucket اکنون گوش می دهد. این راهنما فرض می کند که GitBucket در حال گوش دادن به درگاه است8080 .

این کار GitBucket را در رابط شبکه عمومی سرور شما شروع می کند و به درگاه مشخص گوش می دهد. باید پیام خود را بعد از چند لحظه مشاهده کنید.

INFO:oejs.Server:main: Started @15891ms

اگر از دیوار آتش Vultr استفاده می کنید ، باید پورت را باز کنید که GitBucket در حال گوش دادن است ، زیرا فایروال Vultr به عنوان یک لیست سفید کار می کند ، و ترافیک را رد می کند تا بنادر را مجاز کند ، مگر اینکه خلاف این امر تعیین شده باشد.

نصب GitBucket شما اکنون باید بصورت آنلاین و در دسترس از اینترنت باشد. با استفاده از یک مرورگر وب ، به آدرس عمومی سرور خود متصل شوید (مطمئن شوید که پورت GitBucket را روشن می کند) ( http://203.0.113.0:8080یا یا http://example.com:8080) ، و شما در صفحه اصلی GitBucket خواهید نشست.

اما باید گذرواژه حساب مدیر پیش فرض تغییر یابد. برای این کار از طریق Sign inدکمه در سمت راست بالای رابط وب به حساب سرپرست وارد شوید . ورود پیش فرض برای حساب سرپرست rootبرای نام کاربری و سپس rootدوباره برای رمز عبور است. پس از ورود به سیستم ، دکمه با یک نماد نمایه جایگزین شده و به پایین کشیده می شود. کشویی را باز کرده و را انتخاب کرده Account Settingsو سپس یک رمزعبور جدیدتر و امن تر در جادوگر تنظیمات حساب تنظیم کنید.

بعد از اینکه اعتبارنامه مدیر پیش فرض را به روز کردید و تأیید کردید که GitBucket در این تنظیمات حداقل شروع می شود ، فرایند جاوا را با " CTRL+C" بکشید و پوسته فعلی را با " " بسته کنید exit.

ایجاد سرویس Systemd

در حال حاضر ، ما فقط می توانیم با دسترسی به سرور خود از طریق SSH و شروع فرایند از یک پوسته ، GitBucket را اجرا کنیم. خوشبختانه ، اوبونتو با بسته های مختلف آماده می شود Systemd، به ما این امکان را می دهد تا خدماتی را ایجاد کنیم که با استفاده از آن سیستم GitBucket به صورت خودکار شروع به کار کند و آن را حفظ کند.

با استفاده nano، یک فایل واحد جدید را در /etc/systemd/systemفهرست ایجاد کنید.

sudo nano /etc/systemd/system/gitbucket.service

سپس مطالب زیر را در پرونده کپی کنید.

[Unit]
Description=GitBucket
After=network.target
[Service]
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080
ExecStop=/bin/kill -SIGINT $MAINPID
Type=simple
User=gitbucket
[Install]
WantedBy=multi-user.target

این پرونده واحد ، راه اندازی اولیه و خاموش کردن عملکرد را برای GitBucket تعریف می کند و سرویس را در زیر کاربر سیستم غیر شخصی ما در رابط شبکه تنها محلی اجرا می کند.

اگر شماره پورت را تغییر داده اید که GitBucket به آن گوش می دهد ، --portآرگومان مربوط به ExecStartفرمان را تغییر دهید.

CTRL+Oفایل واحد جدید را ذخیره کنید (" ") و سپس از ویرایشگر خارج شوید (" CTRL+X"). برای کشف پرونده واحد جدید ، باید Systemd را بارگیری مجدد کنید.

sudo systemctl daemon-reload

پس از بارگیری مجدد Systemd ، بررسی کنید که واحد جدید کشف و بارگذاری شده است.

sudo systemctl status gitbucket

شما باید خروجی زیر را ببینید.

gitbucket.service - GitBucket
   Loaded: loaded (/etc/systemd/system/gitbucket.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

در آخر ، واحد جدید را فعال کنید تا به طور خودکار از زمان سرور شما شروع به کار کند ، و سپس برای اولین بار سرویس را شروع کنید.

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

پس از شروع سرویس ، می توانید با استفاده از آدرس IP و شماره پورت دوباره از مرورگر خود به GitBucket دسترسی پیدا کنید.

پیکربندی پروکسی معکوس Nginx

در حالی که می توانید GitBucket را مستقیماً از طریق پورت در معرض دید قرار دهید 8080، می توانید با در معرض نمایش GitBucket از طریق Nginx ، عملکرد و پیکربندی ویژگی هایی مانند HTTP / 2 ، رمزگذاری TLS و قوانین ذخیره را بهبود بخشید.

راه اندازی اولیه Nginx

اگر Nginx را قبلاً نصب نکرده اید ، لیست های بسته خود را به روز کنید.

sudo apt update

سپس بسته Nginx را نصب کنید.

sudo apt install nginx

پس از نصب Nginx ، تأیید کنید که می توانید از طریق آدرس IP سرور خود بدون شماره پورت (به عنوان مثال http://203.0.113.0یا http://example.com) به سرور وب دسترسی پیدا کنید . در صورت موفقیت ، صفحه فرود پیش فرض Nginx را برای اوبونتو مشاهده خواهید کرد.

ایجاد پروکسی معکوس

ما پیکربندی پیش فرض سایت را به /etc/nginx/sites-availableعنوان نقطه شروع برای پروکسی معکوس کپی می کنیم .

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/gitbucket

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

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

location /بلوک موجود را در خط 43 پیدا کنید.

location / {
  # First attempt to serve request as file, then
  # as directory, then fall back to displaying a 404.
  try_files $uri $uri/ =404;
}

در حال حاضر ، Nginx سعی خواهد کرد پرونده هایی را که در /var/www/htmlآن با HTTPدرخواست های دریافتی مطابقت دارد ، برگرداند . ما باید با پیکربندی یک پروکسی معکوس در این بلوک ، این رفتار را تغییر دهیم که به جای آن ، تمام درخواست های HTTP ساخته شده به سرور Nginx را به نمونه GitBucket ارسال می کنیم. location /بلوک را به روز کنید تا با موارد زیر مطابقت داشته باشد.

location / {
    proxy_pass              http://localhost:8080; # The address GitBucket is listening on
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout   150;
    proxy_send_timeout      100;
    proxy_read_timeout      100;
    proxy_buffers           4 32k;

    client_max_body_size    512m; # Needed for large Git operations over HTTP
    client_body_buffer_size 128k;
}

اگر شماره پورت را تغییر داده اید که GitBucket به آن گوش می دهد ، proxy_passگزینه ای را برای انعکاس این گزینه به روز کنید.

برای فعال کردن پیکربندی جدید ما ، باید پیکربندی پیش فرض موجود را غیرفعال کنید /etc/nginx/sites-enabled، سپس پیکربندی جدید ما را /etc/nginx/sites-enabledاز طریق شکل زیر پیوند دهید.

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/gitbucket /etc/nginx/sites-enabled/gitbucket

پس از فعال کردن پرونده پیکربندی ، خطاهای نحوی را بررسی کنید.

sudo nginx -t

سپس ، سرور Nginx را مجدداً راه اندازی کنید تا پیکربندی سایت جدید ما فعال شود.

sudo systemctl restart nginx

اکنون می توانید بدون شماره پورت به نصب GitBucket خود در آدرس عمومی سرور خود دسترسی داشته باشید .

امنیت فرآیند GitBucket از طریق اینترنت عمومی

در حال حاضر ، نمونه GitBucket ما در حال گوش دادن به رابط شبکه عمومی سرور ما است. با این کار به کاربران امکان می دهد پروکسی Nginx را با اتصال به آدرسی که اکنون GitBucket در آن گوش می دهد ، دور بزنند ، که احتمالاً ناخواسته است. برای رفع این مشکل باید فایل واحدی را که قبلاً ایجاد کردیم اصلاح کنیم. پرونده واحد را با nano.

sudo nano /etc/systemd/system/gitbucket.service

اضافه --host 127.0.0.1به ExecStartدستور، مانند.

...
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080 --host 127.0.0.1
...

این امر باعث می شود که GitBucket فقط اتصالات رابط شبکه محلی سرور ما را بپذیرد. بار دیگر ، فایل (" CTRL+O") را ذخیره کنید ، CTRL+Xویرایشگر را ببندید (" ") ، سیستم را بارگذاری مجدد کنید و واحد GitBucket را مجدداً راه اندازی کنید.

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

اگر از Firewall Vultr استفاده می کنید ، همچنین باید هر پورت قانونی را که اضافه کردید برای دسترسی به سرور GitBucket در هنگام تنظیم اولیه حذف کنید.



Leave a Comment

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

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

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد