GNU/Linux >> Tutoriales Linux >  >> FreeBSD

Cómo instalar Gitlab en FreeBSD

GitLab es un sistema de control de versiones basado en web y desarrollo de software colaborativo basado en Git. Sus características incluyen cosas como el repositorio de código, wiki o sistema de seguimiento de problemas. En este artículo, le mostraré cómo instalar la Edición comunitaria de GitLab en FreeBSD.

Hagámoslo

Base de datos

La única base de datos admitida es PostgreSQL. Puede seguir este tutorial si no tiene uno ejecutándose:https://unixcop.com/how-to-install-postgresql-in-freebsd/ .

Necesitaremos la extensión pgtrgm, si no tiene el puerto postgresl_contrib, instálelo con:

# cd /usr/ports/databases/postgresql14-contrib
make install clean

Si está utilizando paquetes, instálelo con:

pkg add postgresql14-contrib

Cree un usuario de base de datos llamado git y la base de datos de producción de 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

A continuación, conéctese a la base de datos gitlabhq_production y habilite la extensión 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

Ahora, compilemos gitlab-ce y sus dependencias:

root@fbsd:~ # cd /usr/ports/www/gitlab-ce/
root@fbsd:/usr/ports/www/gitlab-ce # make install clean

Esto llevará más o menos tiempo dependiendo de los puertos ya instalados. Sigue las instrucciones en la pantalla. La compilación de todo tomó un par de horas en mi computadora lenta:

Redis

La memoria caché de Redis debe instalarse con el puerto gitlab-ce; si no lo ha instalado, ejecute:

# cd /usr/ports/databases/redis
# make install clean

Agregue las siguientes líneas al archivo de configuración /usr/local/etc/redis.conf :

unixsocket /var/run/redis/redis.sock
unixsocketperm 770

Esto habilitará y otorgará permisos al socket redis. Ahora habilite los servicios redis e inícielo:

# /usr/local/etc/rd.d/redis enable
# /usr/local/etc/rd.d/redis start

Agregue el usuario de git al grupo de redis y hemos terminado con la configuración de redis:

#  pw groupmod redis -m git

Configuración previa de Gitlab

Tenemos que hacer un poco de trabajo extra.

Cambiar el directorio de inicio del usuario git

Gitlab espera que el directorio de inicio del usuario de git sea /usr/home/git . Puedes cambiarlo con:

# chsh git

Como no me gusta el programa vi, cambiaré a ee con este comando:

 # EDITOR=/usr/bin/ee chsh git

Configurar gitlab

Vaya al directorio de instalación de gitlab y edite el archivo de configuración:

# cd /usr/local/www/gitlab-ce
# ee config/gitlab.yml 

Entonces, estoy cambiando host:localhost → host:192.168.122.234 (mi IP ya que no tengo un FQDN en esta máquina virtual de prueba) y no uso https para este tutorial. Y para email_from estoy usando un genérico noreply@localhost . Puede buscar esos elementos presionando ctrl-y en el editor ee.

En config/unicorn.rb establezca el número de trabajadores en al menos el número de núcleos:

# ee config/unicorn.rb

Cambie a usuario git y ejecute lo siguiente:

# 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

El primero es para el editor web que necesita autocrlf; el segundo es porque GitLab ejecutará 'git gc' cuando sea necesario; el tercero habilita mapas de bits de archivos empaquetados; y el último habilita las opciones push.

Configure los ajustes de la base de datos en config/database.yml :

Inicializar la BD

Otorgue permisos de escritura temporales al usuario de git:

# chown git /usr/local/share/gitlab-shell

Inicialice la base de datos con este comando (como usuario de git):

# su - git
$ cd /usr/local/www/gitlab-ce/
$ rake gitlab:setup RAILS_ENV=production

Regrese al usuario raíz y deshaga los permisos temporales:

# chown root /usr/local/share/gitlab-shell 

Ya casi llegamos, vamos a comprobar si todo hasta ahora está configurado correctamente:

# su - git 
$ cd /usr/local/www/gitlab-ce && rake gitlab:env:info RAILS_ENV=production

Ahora, continúe (como usuario de git) compilando los archivos y activos 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

Ahora habilite e inicie el servicio GitLab, ejecútelo como root:

# /usr/local/etc/rc.d/gitlab enable
gitlab enabled in /etc/rc.conf
# /usr/local/etc/rc.d/gitlab start

Nginx

Ngninx es el servidor web oficialmente compatible. Instálalo con:

# cd /usr/ports/www/nginx
make install clean

La configuración de nginx es bastante simple:incluya la configuración proporcionada por gitlab agregando la siguiente línea dentro del bloque http en /usr/local/etc/nginx/nginx.conf :

include       /usr/local/www/gitlab-ce/lib/support/nginx/gitlab;

Habilite e inicie Nginx:

# /usr/local/etc/rc.d/nginx enable
# /usr/local/etc/rd.d/nginx start

Primer inicio de sesión

Como se ve al final de la inicialización de la base de datos, se le pedirá que cambie la contraseña de root:

Y eso es todo, ahora puede iniciar sesión con el usuario root y la nueva contraseña, y comenzar a trabajar.

Adónde ir desde aquí

Como siempre digo:ve a la documentación, en GitLab está incluido en el menú de la parte superior derecha de la pantalla:

Y en la siguiente pantalla encontrará algunos enlaces útiles como:


FreeBSD
  1. Cómo instalar Git en Ubuntu 18.04 / 20.04

  2. Cómo instalar Git en CentOS 8

  3. Cómo instalar Git en AlmaLinux

  4. Cómo instalar Git en Ubuntu 18.04

  5. Cómo instalar Git en CentOS 8

Cómo instalar mediawiki en FreeBSD

Cómo instalar HAProxy en FreeBSD

Cómo instalar Git en AlmaLinux 8

Cómo instalar Git en Manjaro 20

Cómo instalar Gitlab en Debian 8

Cómo instalar Gitlab en Debian 11