GitLab adalah sistem kontrol versi berbasis web dan pengembangan perangkat lunak kolaboratif berdasarkan Git. Fitur-fiturnya mencakup hal-hal seperti repositori kode, wiki atau sistem pelacakan masalah. Dalam artikel ini saya akan menunjukkan kepada Anda cara menginstal Edisi Komunitas GitLab di FreeBSD.
Ayo kita lakukan
Basis Data
Satu-satunya database yang didukung adalah PostgreSQL. Anda dapat mengikuti tutorial ini jika Anda tidak menjalankannya:https://unixcop.com/how-to-install-postgresql-in-freebsd/ .
Kami akan membutuhkan ekstensi pgtrgm, jika Anda tidak memiliki port postgresl_contrib, instal dengan:
# cd /usr/ports/databases/postgresql14-contrib
make install clean
Jika Anda menggunakan paket, instal dengan:
pkg add postgresql14-contrib
Buat pengguna database bernama git dan database produksi gitlab:
root@fbsd:~ # su postgres
$ psql
psql (14beta1)
Type "help" for help.
postgres=# CREATE USER git CREATEDB SUPERUSER;
CREATE ROLE
postgres=# ALTER ROLE git WITH PASSWORD 'superpass';
ALTER ROLE
postgres=# CREATE DATABASE gitlabhq_production OWNER git;
CREATE DATABASE
Selanjutnya sambungkan ke database gitlabhq_production dan aktifkan ekstensi pg_trgm:
postgres=# \connect gitlabhq_production
You are now connected to database "gitlabhq_production" as user "postgres".
gitlabhq_production=# CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION
GitLab-ce
Sekarang, mari kita kompilasi gitlab-ce dan dependensinya:
root@fbsd:~ # cd /usr/ports/www/gitlab-ce/
root@fbsd:/usr/ports/www/gitlab-ce # make install clean
Ini akan memakan waktu lebih atau kurang tergantung pada port yang sudah diinstal. Ikuti petunjuk di layar. Kompilasi semuanya memakan waktu beberapa jam di komputer saya yang lambat:
Merah
Cache redis harus diinstal dengan port gitlab-ce; jika Anda belum menginstal jalankan:
# cd /usr/ports/databases/redis
# make install clean
Tambahkan baris berikut ke file konfigurasi /usr/local/etc/redis.conf
:
unixsocket /var/run/redis/redis.sock
unixsocketperm 770
Ini akan mengaktifkan dan memberikan izin ke soket redis. Sekarang aktifkan layanan redis dan mulai:
# /usr/local/etc/rd.d/redis enable
# /usr/local/etc/rd.d/redis start
Tambahkan pengguna git ke grup redis dan kita selesai dengan konfigurasi redis:
# pw groupmod redis -m git
Prakonfigurasi Gitlab
Kita perlu melakukan beberapa pekerjaan ekstra.
Ubah direktori home pengguna git
Gitlab mengharapkan direktori home pengguna git menjadi /usr/home/git . Anda dapat mengubahnya dengan:
# chsh git
Karena saya tidak suka program vi, saya akan mengubahnya menjadi ee dengan perintah ini:
# EDITOR=/usr/bin/ee chsh git
Konfigurasi gitlab
Buka direktori instalasi gitlab dan edit file konfigurasi:
# cd /usr/local/www/gitlab-ce
# ee config/gitlab.yml
Jadi, saya mengubah host:localhost → host:192.168.122.234
(IP saya karena saya tidak memiliki FQDN di vm pengujian ini), dan tidak menggunakan https untuk tutorial ini. Dan untuk email_from saya menggunakan noreply@localhost
generik . Anda dapat mencari item tersebut dengan menekan ctrl-y
di editor ee.
Di config/unicorn.rb
atur jumlah pekerja ke setidaknya jumlah inti:
# ee config/unicorn.rb
Ubah ke pengguna git dan jalankan yang berikut:
# su - git
$ git config --global core.autocrlf input
$ git config --global gc.auto 0
$ git config --global repack.writeBitmaps true
$ git config --global receive.advertisePushOptions true
Yang pertama adalah untuk web editor yang membutuhkan autocrlf; yang kedua karena GitLab akan menjalankan 'git gc' saat dibutuhkan; yang ketiga mengaktifkan bitmap packfile; dan yang terakhir mengaktifkan opsi push.
Konfigurasikan pengaturan database di config/database.yml
:
Inisialisasi de DB
Berikan izin menulis sementara kepada pengguna git:
# chown git /usr/local/share/gitlab-shell
Inisialisasi database dengan perintah ini (sebagai pengguna git):
# su - git
$ cd /usr/local/www/gitlab-ce/
$ rake gitlab:setup RAILS_ENV=production
Kembali ke pengguna root dan batalkan izin sementara:
# chown root /usr/local/share/gitlab-shell
Kami hampir sampai, mari kita periksa apakah semuanya sampai sekarang dikonfigurasi dengan benar:
# su - git
$ cd /usr/local/www/gitlab-ce && rake gitlab:env:info RAILS_ENV=production
Sekarang, lanjutkan (sebagai pengguna git) kompilasi file dan aset GetText PO:
$ rake gettext:compile RAILS_ENV=production
Created app.js in /usr/local/www/gitlab-ce/app/assets/javascripts/locale/bg
Created app.js in /usr/local/www/gitlab-ce/app/assets/javascripts/locale/de
(...)
All files created, make sure they are being added to your assets.
If they are not, you can add them with this line (configurable):
//= require_tree ./locale
//= require gettext/all
$ yarn install --production --pure-lockfile
yarn install v1.22.10
[1/5] Validating package.json...
[2/5] Resolving packages...
(...)
success Dependency postinstall check passed.
Done in 150.47s.
$ rake gitlab:assets:compile RAILS_ENV=production NODE_ENV=production
[long output that I didn't capture the begin because a distraction]
`gitlab:assets:fix_urls` finished in 31.47730386 seconds
`gitlab:assets:check_page_bundle_mixins_css_for_sideeffects` finished in 10.420508114 seconds
$ ^d
Sekarang aktifkan dan mulai layanan GitLab, jalankan sebagai root:
# /usr/local/etc/rc.d/gitlab enable
gitlab enabled in /etc/rc.conf
# /usr/local/etc/rc.d/gitlab start
Nginx
Ngninx adalah server web yang didukung secara resmi. Instal dengan:
# cd /usr/ports/www/nginx
make install clean
Konfigurasi nginx cukup sederhana:sertakan konfigurasi yang disediakan oleh gitlab dengan menambahkan baris berikut di dalam blok http di /usr/local/etc/nginx/nginx.conf
:
include /usr/local/www/gitlab-ce/lib/support/nginx/gitlab;
Aktifkan dan mulai Nginx:
# /usr/local/etc/rc.d/nginx enable
# /usr/local/etc/rd.d/nginx start
Masuk pertama
Seperti yang terlihat di akhir inisialisasi basis data, Anda akan diminta untuk mengubah kata sandi root:
Dan ini dia, Anda sekarang dapat login dengan pengguna root dan kata sandi baru, dan mulai bekerja.
Ke mana harus pergi dari sini
Seperti yang selalu saya katakan:buka dokumentasi, di GitLab disertakan dalam menu di kanan atas layar:
Dan di layar berikutnya Anda akan menemukan beberapa tautan berguna seperti: