GitLab je webový systém správy verzí a kolaborativní vývoj softwaru založený na Gitu. Mezi jeho funkce patří věci jako úložiště kódu, wiki nebo systém sledování problémů. V tomto článku vám ukážu, jak nainstalovat komunitní edici GitLab na FreeBSD.
Pojďme na to
Databáze
Jedinou podporovanou databází je PostgreSQL. Pokud nemáte žádný spuštěný, můžete se řídit tímto návodem:https://unixcop.com/how-to-install-postgresql-in-freebsd/ .
Budeme potřebovat rozšíření pgtrgm, pokud nemáte port postgresl_contrib, nainstalujte jej pomocí:
# cd /usr/ports/databases/postgresql14-contrib
make install clean
Pokud používáte balíčky, nainstalujte je pomocí:
pkg add postgresql14-contrib
Vytvořte uživatele databáze s názvem git a produkční databázi 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
Dále se připojte k databázi gitlabhq_production a povolte rozšíření 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
Nyní pojďme zkompilovat gitlab-ce a jeho závislosti:
root@fbsd:~ # cd /usr/ports/www/gitlab-ce/
root@fbsd:/usr/ports/www/gitlab-ce # make install clean
To zabere více či méně času v závislosti na již nainstalovaných portech. Postupujte podle pokynů na obrazovce. Kompilace všeho trvala v mém pomalém počítači několik hodin:
Redis
Mezipaměť Redis by měla být instalována s portem gitlab-ce; pokud jste nenainstalovali, spusťte:
# cd /usr/ports/databases/redis
# make install clean
Přidejte následující řádky do konfiguračního souboru /usr/local/etc/redis.conf
:
unixsocket /var/run/redis/redis.sock
unixsocketperm 770
Tím povolíte a udělíte oprávnění k soketu redis. Nyní povolte služby redis a spusťte je:
# /usr/local/etc/rd.d/redis enable
# /usr/local/etc/rd.d/redis start
Přidejte uživatele git do skupiny redis a máme hotovo s konfigurací redis:
# pw groupmod redis -m git
Předkonfigurace Gitlabu
Musíme udělat nějakou práci navíc.
Změňte domovský adresář uživatele git
Gitlab očekává, že domovský adresář uživatele git bude /usr/home/git . Můžete to změnit pomocí:
# chsh git
Protože se mi nelíbí program vi, změním se na ee pomocí tohoto příkazu:
# EDITOR=/usr/bin/ee chsh git
Nakonfigurujte gitlab
Přejděte do instalačního adresáře gitlab a upravte konfigurační soubor:
# cd /usr/local/www/gitlab-ce
# ee config/gitlab.yml
Takže měním host:localhost → host:192.168.122.234
(moje IP, protože v tomto testovacím vm nemám FQDN) a nepoužívám https pro tento tutoriál. A pro email_from používám obecný noreply@localhost
. Tyto položky můžete vyhledat stisknutím ctrl-y
v editoru ee.
V config/unicorn.rb
nastavte počet pracovníků alespoň na počet jader:
# ee config/unicorn.rb
Změňte na git user a spusťte následující:
# 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
První je pro webový editor, který potřebuje autocrlf; za druhé je to proto, že GitLab v případě potřeby spustí „git gc“; třetí umožňuje bitmapy souborů balíčků; a poslední umožňuje volby push.
Nakonfigurujte nastavení databáze v config/database.yml
:
Inicializovat DB
Udělte dočasné oprávnění k zápisu uživateli git:
# chown git /usr/local/share/gitlab-shell
Inicializujte databázi tímto příkazem (jako uživatel git):
# su - git
$ cd /usr/local/www/gitlab-ce/
$ rake gitlab:setup RAILS_ENV=production
Vraťte se k uživateli root a zrušte dočasná oprávnění:
# chown root /usr/local/share/gitlab-shell
Už jsme skoro tam, pojďme zkontrolovat, zda je vše až dosud správně nakonfigurováno:
# su - git
$ cd /usr/local/www/gitlab-ce && rake gitlab:env:info RAILS_ENV=production
Nyní pokračujte (jako uživatel git) v kompilaci souborů GetText PO a aktiv:
$ 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
Nyní povolte a spusťte službu GitLab, spusťte jako root:
# /usr/local/etc/rc.d/gitlab enable
gitlab enabled in /etc/rc.conf
# /usr/local/etc/rc.d/gitlab start
Nginx
Ngninx je oficiálně podporovaný webový server. Nainstalujte jej pomocí:
# cd /usr/ports/www/nginx
make install clean
Konfigurace nginx je docela jednoduchá:zahrňte konfiguraci poskytnutou gitlab přidáním následujícího řádku do bloku http v /usr/local/etc/nginx/nginx.conf
:
include /usr/local/www/gitlab-ce/lib/support/nginx/gitlab;
Povolte a spusťte Nginx:
# /usr/local/etc/rc.d/nginx enable
# /usr/local/etc/rd.d/nginx start
První přihlášení
Jak je vidět na konci inicializace databáze, budete požádáni o změnu hesla root:
A je to, nyní se můžete přihlásit s uživatelem root a novým heslem a začít pracovat.
Kam jít odtud
Jak vždy říkám:přejděte na dokumentaci, v GitLabu je zahrnuta v nabídce vpravo nahoře na obrazovce:
A na další obrazovce najdete několik užitečných odkazů jako: