Gitlab adalah aplikasi manajemen repositori git berbasis web yang ditulis di Ruby. Ini mirip dengan GitHub dan menyertakan fitur seperti wiki proyek dan sistem pelacakan masalah. Proyek Gitlab dimulai oleh Dmitriy Zaporozhets dan perangkat lunak ini digunakan oleh lebih dari 100.000 perusahaan teknologi termasuk IBM, StackExchange, NASA, Alibaba, Red Hat, dll. Gitlab adalah salah satu solusi terbaik untuk membangun server git Anda sendiri.
Gitlab didukung oleh distribusi Linux utama seperti Ubuntu, Debian, dan CentOS. Gitlab menyediakan paket .deb untuk Debian/Ubuntu dan paket .rpm untuk Rhel dan CentOS. Paket ini berisi semua dependensi termasuk Ruby, Redis, Nginx, Unicorn dan PostgreSQL. Gitlab tersedia dalam 2 versi, Edisi Komunitas (Gitlab CE) dan Edisi Perusahaan (Gitlab EE). Jika Anda ingin membangun server git Anda sendiri, kemungkinan besar edisi CE gratis akan menawarkan semua fitur yang Anda butuhkan.
Dalam tutorial ini, saya akan memandu Anda langkah demi langkah melalui instalasi Gitlab CE dengan PostgreSQL sebagai sistem database, dan Nginx sebagai web server di Ubuntu versi 15.04. Kami akan menggunakan Ruby versi 2.x.x, gitlab stable versi 8.x.
Prasyarat
- Ubuntu 15.04 - 64bit.
- CPU 2 Cores - direkomendasikan dari situs gitlab .
- 2 GB RAM/Memori - direkomendasikan dari situs gitlab .
- Hak istimewa root.
Langkah 1 - Perbarui Sistem Linux
Sebelum menginstal dependensi Gitlab, kami mengambil pembaruan terbaru dari repositori ubuntu. Masuk ke server ubuntu dengan akses SSH, jadilah pengguna root, lalu perbarui repositori.
sudo su
apt-get update
Langkah 2 - Instal Dependensi Gitlab
Gitlab memiliki banyak dependensi perangkat lunak seperti redis-server, git-core, nodejs dan postfix untuk mengirim notifikasi email. Saya akan menginstalnya dengan satu perintah apt:
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4- openssl-dev libicu-dev logrotate python-docutils pkg-config cmake nodejs git-core postfix
Catatan:Selama instalasi postfix, pilih "situs internet" lalu tekan enter untuk mengkonfirmasi nama host.
Jika semua paket terinstal, periksa versi git dan pastikan versi git adalah 1.7.x atau lebih tinggi.
git --version
git versi 2.1.4
Langkah 3 - Instal Ruby dan Go
Gitlab membutuhkan ruby versi 2.x atau lebih tinggi. Dalam tutorial ini, kita akan menggunakan ruby versi 2.7. Pada tahap ini, kita harus menginstal ruby secara manual (dari sumber). Jika Anda telah menginstal Ruby di sistem Anda sebelumnya, hapus dengan perintah di bawah ini:
apt-get hapus ruby -y
Selanjutnya, kita akan menginstal ruby secara manual. Buat direktori baru untuk file sumber ruby:
mkdir -p /tmp/ruby &&cd /tmp/ruby
Unduh sumber ruby dengan perintah curl:
curl -O --progress https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.7.tar.gz
Sekarang verifikasi dan ekstrak ruby.tar.gz, lalu masuk ke direktori ruby:
echo 'e2e195a4a58133e3ad33b955c829bb536fa3c075 ruby-2.1.7.tar.gz' | shasum -c - &&\
tar xzf ruby-2.1.7.tar.gz &&\
cd ruby-2.1.7
Kompilasi dan instal Ruby:
./configure --disable-install-rdoc --prefix=/usr/local
make
make install
Sebagai langkah selanjutnya, kita harus menginstal Go. Sejak gitlab 8.0, permintaan HTTP git ditangani oleh gitlab-workhorse yang ditulis dalam Go. Untuk menginstal gitlab-workhorse, kita memerlukan kompiler go, mendownload dan menginstalnya.
Buat direktori baru untuk Go:
mkdir -p /tmp/go &&cd /tmp/go
Unduh Go - kami menggunakan versi 64 bit:
curl -O --progress https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz
Verifikasi dan ekstrak ke direktori "/usr/local/":
echo '46eecd290d8803887dec718c691cc243f2175fe0 go1.5.1.linux-amd64.tar.gz' | shasum -c - &&\
sudo tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz
Sekarang buat symlink untuk Go di direktori bin:
sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/
Sekarang kami telah menginstal Ruby and Go.
Langkah 4 - Buat pengguna Linux baru dan konfigurasikan database PostgreSQL
Pada langkah ini, kita akan membuat pengguna sistem Linux baru bernama "git" dengan direktori beranda "/home/git". Gitlab akan dijalankan sebagai pengguna git nanti.
Buat git pengguna baru dengan perintah adduser:
sudo adduser --disabled-login --gecos 'GitLab' git
Sekarang kita mengkonfigurasi database untuk gitlab. Gitlab mendukung MySQL dan PostgreSQL, dalam tutorial ini kita akan menggunakan tipe database yang direkomendasikan PostGreSQL.
Instal PostgreSQL dengan perintah apt di bawah ini:
sudo apt-get install -y postgresql postgresql-client libpq-dev
Setelah selesai, masuk ke PostgreSQL dan buat peran/pengguna baru bernama "git " untuk gitlab:
sudo -u postgres psql -d template1
BUAT PENGGUNA git CREATEDB;
Kemudian buat database baru untuk gitlab bernama "gitlabhq_production " dan berikan database ke git user/role:
BUAT DATABASE gitlabhq_production PEMILIK git;
Sekarang keluar dari shell postgresql dan uji peran/pengguna baru dengan database yang telah kita buat:
\q
sudo -u git -H psql -d gitlabhq_production
Pengguna sistem baru bernama "git" telah dibuat.
Peran/pengguna baru "git" untuk psotgreSQL yang telah diberikan ke database gitlab "gitlabhq_production" telah dibuat juga.
Langkah 5 - Konfigurasi server Redis
Sebelum kita mengedit file konfigurasi redis di direktori "/etc/redis", kita akan membuat salinan cadangan dengan nama redis.conf.original.
cd /etc/redis/
cp redis.conf redis.conf.original
Kemudian edit file "redis.conf" dengan editor vim:
vim redis.conf
Pergi ke baris 45 dan ubah nilainya menjadi 0 , karena kami ingin Redis mendengarkan hanya pada soket unix dan bukan port:
Dengarkan 0
Kemudian pergi ke akhir file dan tambahkan soket redis dan izin untuk itu:
unixsocket /var/run/redis/redis.sock
unixsocketperm 777
Simpan file dan keluar.
Selanjutnya, buat direktori baru untuk soket redis di direktori "/var/run" dan sesuaikan pemilik dan izin direktori:
mkdir -p /var/run/redis
chown redis:redis /var/run/redis
chmod 755 /var/run/redis
Buka direktori soket redis dan jalankan perintah di bawah ini:
cd /var/run/redis
if [ -d /etc/tmpfiles.d ]; lalu
echo 'd /var/run/redis 0755 redis redis 10d -' | sudo tee -a /etc/tmpfiles.d/redis.conf
fi
Jika semua sudah selesai, restart server redis dan tambahkan pengguna "git" ke grup "redis":
sudo service redis-server restart
sudo usermod -aG redis git
Langkah 6 - Instal GitLab
Buka direktori "/home/git" dan unduh gitlab dari repositori GIT-nya:
cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 8-2-stable gitlab
Catatan :
sudo -u git -H clone command =kita menjalankan perintah "clone" sebagai user "git".
- Konfigurasikan GitLab
Buka direktori gitlab untuk mengonfigurasi gitlab:
cd /home/git/gitlab
Salin contoh file konfigurasi gitlab gitlab.yml.example ke gitlab.yml di direktori "config":
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
Di direktori gitlab, ubah pemilik sub direktori "log and tmp" menjadi pengguna git:
sudo chown -R git {log,tmp}
Kemudian ubah izin untuk direktori lain sehingga gitlab (pengguna git) dapat menulis ke direktori tersebut:
mkdir -p public/uploads/
sudo chmod -R u+rwX,go-w log/
sudo chmod -R u+rwX {tmp,tmp/pids,tmp/socket,builds ,shared/artifacts}
sudo chmod -R 0750 publik/upload
Salin contoh konfigurasi serangan unicorn dan Rak:
sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rbSekarang kita harus mengkonfigurasi pengaturan global untuk pengguna git dengan perintah git di bawah ini:
sudo -u git -H git config --global core.autocrlf inputDan kita harus mengonfigurasi koneksi redis dengan menyalin file "resque.yml" ke direktori config, lalu mengeditnya dengan vim untuk mengubah konfigurasi redis, gunakan soket unix saat kita mengonfigurasi redis untuk mendengarkan di soket:
sudo -u git -H cp config/resque.yml.example config/resque.yml- Konfigurasi Basis Data
Langkah selanjutnya adalah mengkonfigurasi pengaturan GitLab DB, kami menggunakan postgreSQL untuk database kami. Salin file konfigurasi dan ubah izinnya:
sudo -u git -H cp config/database.yml.postgresql config/database.yml
sudo -u git -H chmod o-rwx config/database.yml- Instal Permata
sudo gem install bundler
sudo -u git -H bundle install --deployment --tanpa uji pengembangan mysql aws kerberosTunggu sampai perintah selesai.
- Instal Gitlab-shell
Gitlab-shell memungkinkan akses SSH dan manajemen repositori untuk Gitlab. Kami akan menggunakan konfigurasi default, jadi kami tidak perlu mengeditnya. Jalankan perintah di bawah ini untuk menginstal gitlab-shell:
sudo -u git -H bundle exec rake gitlab:shell:install[v2.6.8] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=productionREDIS_URL =pastikan Anda menggunakan soket unix untuk konfigurasi redis di lingkungan produksi.
- Instal gitlab-workhorse
Gitlab-workhorse adalah deamon kecil untuk menangani lalu lintas HTTP Git dari unicorn, dikodekan dalam Go. Kloning dan instal:
cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-workhorse.git
cd gitlab-workhorse
sudo -u git -H git checkout 0.4.2
sudo -u git -H make- Inisialisasi database dan aktifkan fitur gitlab
Buka direktori instalasi gitlab dan jalankan perintah di bawah ini:
cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=productionketik "ya" untuk membuat tabel.
Hasilnya akan menjadi akun gitlab dengan nama pengguna "root " dan sandi "5iveL!fe ".
Langkah 7 - Konfigurasi Skrip Init
Salin skrip init gitlab dari direktori instalasi gitlab dan tambahkan gitlab untuk memulai saat boot dengan perintah update-rc.d:
sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
sudo update-rc.d gitlab default 21Kemudian salin konfigurasi gitlab logrotate untuk manajemen log:
sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlabDan periksa status aplikasi dan kompilasi aset:
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=productionJika tidak ada kesalahan, mulai gitlab dengan:
/etc/init.d/gitlab start
Langkah 8 - Instal dan Konfigurasi Nginx
Kami akan menggunakan Nginx sebagai server web ujung depan untuk menangani permintaan browser. Instal saja dengan perintah apt ini:
apt-get install nginx -ySalin konfigurasi host virtual Nginx dari direktori gitlab dan hapus virtualhost default Nginx default:
sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
sudo rm /etc/nginx/sites-enabled/defaultEdit file konfigurasi dengan vim:
sudo vim /etc/nginx/sites-available/gitlabUbah nilai baris Listen dan ServerName di bagian HTTP:
Dengarkan *:80; #Port Default
#Listen 0.0.0.0:80; #komentari salah satunya
ServerName my.gitlab.me; #Gitlab FQDN/DomainSimpan dan keluar.
Aktifkan virtualhost gitlab, mulai nginx dan mulai ulang gitlab:
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
service nginx start
/etc/init.d/gitlab restartSekarang Anda dapat mengakses gitlab dengan browser Anda di my.gitlab.me (nama host yang Anda pilih untuk server Anda) dan masuk dengan nama pengguna default "root " dan kata sandi "5iveL!fe ".
Pertama, Anda harus mengganti kata sandi default gitlab dengan kata sandi Anda.
Gitlab 8 dengan PostgreSQL dan Nginx di ubuntu 15.04 berhasil diinstal sekarang.
Catatan :
Jika Anda memiliki kesalahan, misalnya "502 bad gateway", maka perbaiki dengan meningkatkan waktu unicorn atau meng-upgrade perangkat keras Anda. Buka direktori instalasi gitlab dan edit file unicorn.rb dengan vim:
sudo -u git -H vim config/unicorn.rb
Lihat lebih lanjut tentang pemecahan masalah Gitlab di sini https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide.
Kesimpulan
Gitlab adalah perangkat lunak manajemen repositori git open source yang ditulis dalam Ruby. Ini adalah salah satu solusi terbaik untuk membangun server git Anda sendiri. Gitlab dibuat oleh Dmitriy Zaporozhets dan tersedia dalam 2 versi, Gitlab CE (Edisi Komunitas) dan Gitlab EE (Edisi Perusahaan). Gitlab mudah dipasang dan dikonfigurasi dengan antarmuka yang indah, digunakan oleh lebih dari 100.000 perusahaan teknologi. Ini adalah perangkat lunak yang sangat kuat yang membantu pengembang untuk membangun aplikasi bersama dengan pengembang lain.
Server Sempurna - Ubuntu 15.10 (nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD dan ISPConfig 3) Cara menginstal ProFTPd dengan dukungan TLS di Ubuntu 15.10Ubuntu