How to install GitBucket on Ubuntu Server 20.04

  • محصول GitBucket رو می‌توان یکی از جایگزین‌های GitLab دانست.
  • این محصول از هر نظر روان است.
  • برای نصب ابتدا بسته‌ی default-jdk را نصب کنید.
# apt-get install default-jdk
  • یک گروه با نام gitbucket ایجاد کنید.
# groupadd -g 555 gitbucket
  • یک کاربر با مشخصات گفته شده در زیر ایجاد کنید.
# useradd -g gitbucket --no-user-group --home-dir /opt/gitbucket --no-create-home --shell /usr/sbin/nologin --system --uid 555 gitbucket
  • بسته‌ی gitbucket را از گیت‌هاب پروژه دریافت نمایید.
# wget https://github.com/gitbucket/gitbucket/releases/download/4.31.2/gitbucket.war
  • با توجه به این که این ابزار به صورت third party در حال نصب بر روی سیستم است یه پوشه درون opt برای آن در نظر بگیرید.
# mkdir /opt/gitbucket
# mv gitbucket.war /opt/gitbucket
# chown -R gitbucket:gitbucket /opt/gitbucket
  • به منظور ساحت سرویس (قابل کنترل توسط systemd) برای سامانه به صورت زیر عمل کنید.
# vim /etc/systemd/system/gitbucket.service
# GitBucket Service
[Unit]
Description=Manage Java service

[Service]
WorkingDirectory=/opt/gitbucket
ExecStart=/usr/bin/java -Xms128m -Xmx256m -jar gitbucket.war
User=gitbucket
Group=gitbucket
Type=simple
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
# systemctl daemon-reload
# systemctl start gitbucket
# systemctl enable gitbucket
  • انتظار می‌رود با start شدن سرویس ، سامانه بر روی پورت ۸۰۸۰ در دسترس باشد.
  • نام کاربری و کلمه‌ی عبور پیش‌فرض root می‌باشد.
  • می‌توان از Apache یا Nginx به منظور Reverse Proxy استفاده نمود.

پیاده‌سازی Reverse Proxy توسط Apache

  • به منظور نصب آپاچی به صورت زیر عمل کنید.
# apt-get update
# apt-get install apache2
  • ماژول‌های زیر را فعال کنید.
# a2enmod proxy
# a2enmod proxy_http
# a2enmod proxy_balancer
# a2enmod lbmethod_byrequests
  • یک پرونده‌ی تنظیمات مثل زیر در نظر بگیرید.
# cat /etc/apache2/sites-available/git.homayouni.info.conf
<VirtualHost *:80>
ProxyPreserveHost On

ServerName git.homayouni.info
ServerAlias www.git.homayouni.info

ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>
  • یک Symbolic Link از پرونده‌ی تنظیمات به صورت زیر ایجاد کنید.
# ln -s /etc/apache2/sites-available/git.homayouni.info.conf /etc/apache2/sites-enabled/
  • در نهایت سرویس Apache را راه‌اندازی مجدد نمایید.
# systemctl restart apache2
  • تست شده بر روی Ubuntu 20.04

پیاده‌سازی Reverse Proxy توسط Nginx

  • به منظور نصب Nginx به صورت زیر عمل کنید.
# apt-get update
# apt-get install nginx
  • یک پرونده‌ی تنظیمات مثل زیر در نظر بگیرید.
# cat /etc/nginx/sites-available/gitbucket.conf
upstream gitbucket {
server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}

server {
listen 80;
server_name git.homayouni.info;

location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://gitbucket/;
}
}
  • یک Symbolic Link از پرونده‌ی تنظیمات به صورت زیر ایجاد کنید.
# ln -s /etc/nginx/sites-available/gitbucket.conf /etc/nginx/sites-enabled/
  • در نهایت سرویس nginx را راه‌اندازی مجدد نمایید.
# systemctl restart nginx
  • تست شده بر روی Ubuntu 20.04

  • آدرس گیت‌هاب پروژه در اینجا