GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar el servicio Gitea Git en Debian 11

Gitea es un servidor Git gratuito, de código abierto, autohospedado y muy conocido, escrito en el lenguaje de programación Go. Es una plataforma de control de versiones similar a Github. Es robusto, escalable y ofrece muchas funciones, incluidos problemas y seguimiento de tiempo, bifurcación de repositorios, bloqueo y etiquetado de archivos, fusión y muchos otros. Si está buscando un servicio Git autohospedado, probablemente Gitea sea la mejor opción que pueda usar.

En este tutorial, le mostraré cómo instalar Gitea en Debian 11.

Requisitos

  • Un servidor que ejecuta Debian 11.
  • Se configura una contraseña raíz en el servidor.

Instalar y configurar la base de datos MariaDB

Gitea utiliza MariaDB/MySQL como base de datos. Por lo tanto, el servidor de la base de datos debe estar instalado en su servidor. Si no está instalado, puede instalarlo ejecutando el siguiente comando:

apt-get install mariadb-server -y

Una vez que MariaDB esté instalado, deberá establecer una contraseña de MariaDB y asegurar la instalación. Puede hacerlo ejecutando el script mysql_secure_installation:

mysql_secure_installation

Responda todas las preguntas como se muestra a continuación:

Enter current password for root (enter for none): 
OK, successfully used password, moving on...
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Luego, conéctese a la interfaz MariaDB usando el siguiente comando:

mysql -u root -p

Una vez que esté conectado, cree una base de datos y un usuario para Gitea con el siguiente comando:

MariaDB [(none)]> CREATE DATABASE gitea;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY 'password';

A continuación, elimine los privilegios y salga de MariaDB con el siguiente comando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> QUIT;

Instalar Gitea

Primero, deberá crear un usuario dedicado para ejecutar Gitea. Puedes crearlo con el siguiente comando:

adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /opt/git git

Debería ver el siguiente resultado:

Adding system user `git' (UID 109) ...
Adding new group `git' (GID 115) ...
Adding new user `git' (UID 109) with group `git' ...
Creating home directory `/opt/git' ...

A continuación, descarga la última versión de Gitea con el siguiente comando:

curl -s https://api.github.com/repos/go-gitea/gitea/releases/latest |grep browser_download_url | cut -d '"' -f 4 | grep '\linux-amd64$' | wget -i -

A continuación, mueva el binario de Gitea a la ruta del sistema con el siguiente comando:

mv gitea-*-linux-amd64 /usr/local/bin/gitea

A continuación, establezca el permiso ejecutable para el binario de Gitea:

chmod +x /usr/local/bin/gitea

A continuación, verifica la versión de Gitea usando el siguiente comando:

gitea --version

Debería ver el siguiente resultado:

Gitea version 1.15.3 built with GNU Make 4.1, go1.16.8 : bindata, sqlite, sqlite_unlock_notify

A continuación, deberá crear una estructura de directorios para Gitea. Puedes crearlo con el siguiente comando:

mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}

A continuación, establezca el permiso y la propiedad adecuados con el siguiente comando:

chown git:git /var/lib/gitea/{data,indexers,log}
chmod 750 /var/lib/gitea/{data,indexers,log}
chown root:git /etc/gitea
chmod 770 /etc/gitea

Una vez que haya terminado, puede continuar con el siguiente paso.

Crear un archivo de servicio Systemd para Gitea

A continuación, deberá crear un archivo de servicio systemd para Gitea. Puedes crearlo con el siguiente comando:

nano /etc/systemd/system/gitea.service

Agregue las siguientes líneas:

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mysql.service

[Service]
LimitMEMLOCK=infinity
LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/opt/git GITEA_WORK_DIR=/var/lib/gitea

[Install]
WantedBy=multi-user.target

Guarde y cierre el archivo, luego vuelva a cargar el demonio systemd con el siguiente comando:

systemctl daemon-reload

A continuación, inicie y habilite el servicio de Gitea con el siguiente comando:

systemctl start gitea
systemctl enable gitea

Para verificar el servicio de Gitea, ejecute el siguiente comando:

systemctl status gitea

Debería ver el siguiente resultado:

? gitea.service - Gitea (Git with a cup of tea)
     Loaded: loaded (/etc/systemd/system/gitea.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-10-02 12:59:27 UTC; 9s ago
   Main PID: 19179 (gitea)
      Tasks: 8 (limit: 4679)
     Memory: 128.3M
        CPU: 1.415s
     CGroup: /system.slice/gitea.service
             ??19179 /usr/local/bin/gitea web -c /etc/gitea/app.ini

Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 cmd/web.go:102:runWeb() [I] Starting Gitea on PID: 19179
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/setting/setting.go:569:NewContext() [W] Custom config '/etc/gitea/app.ini' not>
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:21:PreloadSettings() [I] AppPath: /usr/local/bin/gitea
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:22:PreloadSettings() [I] AppWorkPath: /var/lib/gitea
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:23:PreloadSettings() [I] Custom path: /var/lib/gitea/custom
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:24:PreloadSettings() [I] Log path: /var/lib/gitea/log
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:25:PreloadSettings() [I] Preparing to run install page
Oct 02 12:59:28 debian11 gitea[19179]: 2021/10/02 12:59:28 ...s/install/setting.go:28:PreloadSettings() [I] SQLite3 Supported
Oct 02 12:59:29 debian11 gitea[19179]: 2021/10/02 12:59:29 cmd/web.go:196:listen() [I] Listen: http://0.0.0.0:3000
Oct 02 12:59:29 debian11 gitea[19179]: 2021/10/02 12:59:29 ...s/graceful/server.go:62:NewServer() [I] Starting new Web server: tcp:0.0.0.0:300>

En este punto, Gitea se inicia y escucha en el puerto 3000. Puede verificarlo con el siguiente comando:

ss -antpl | grep 3000

Debería ver el siguiente resultado:

LISTEN 0      4096               *:3000             *:*    users:(("gitea",pid=19179,fd=6))

Una vez que haya terminado, puede continuar con el siguiente paso.

Configurar Nginx para Gitea

A continuación, deberá instalar y configurar Nginx como proxy inverso para Gitea. Primero, instale Nginx con el siguiente comando:

apt-get install nginx -y

A continuación, cree un archivo de configuración de host virtual Nginx con el siguiente comando:

nano /etc/nginx/conf.d/gitea.conf

Agregue las siguientes líneas:

server {
    listen 80;
    server_name gitea.example.com;
    access_log /var/log/nginx/gitea_access.log;
    error_log /var/log/nginx/gitea_error.log;


    location / {
        proxy_pass http://localhost:3000;
    }
}

Guarde y cierre el archivo, luego verifique el Nginx para cualquier error de sintaxis:

nginx -t

Debería ver el siguiente resultado:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

A continuación, reinicie el servicio Nginx con el siguiente comando:

systemctl restart nginx

Para verificar el estado de Nginx, ejecute el siguiente comando:

systemctl status nginx

Debería ver el siguiente resultado:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-10-02 13:00:33 UTC; 4s ago
       Docs: man:nginx(8)
    Process: 19209 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 19211 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 19212 (nginx)
      Tasks: 3 (limit: 4679)
     Memory: 3.2M
        CPU: 50ms
     CGroup: /system.slice/nginx.service
             ??19212 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??19213 nginx: worker process
             ??19214 nginx: worker process

Oct 02 13:00:33 debian11 systemd[1]: Starting A high performance web server and a reverse proxy server...
Oct 02 13:00:33 debian11 systemd[1]: Started A high performance web server and a reverse proxy server.

A continuación, deberá editar el archivo Gitea app.ini y definir la información de su dominio:

nano /etc/gitea/app.ini

Cambie las siguientes líneas:

DOMAIN           = gitea.example.com
ROOT_URL         = http://gitea.example.com/

Guarde y cierre el archivo y luego reinicie el servicio de Gitea para aplicar los cambios:

systemctl restart gitea

Una vez que haya terminado, puede continuar con el siguiente paso.

Acceder a la interfaz web de Gitea

Ahora, abra su navegador web y acceda a la interfaz web de Gitea usando la URL http://gitea.example.com . Será redirigido a la siguiente página:

Proporcione la información de su base de datos de Gitea, la URL, el nombre de usuario del administrador, la contraseña, el puerto y haga clic en Instalar Gitea botón. Debería ver el panel de control de Gitea en la siguiente página:

Conclusión

¡Felicidades! Ha instalado correctamente Gitea con Nginx como proxy inverso en Debian 11. Puede implementar Gitea en su entorno de desarrollo para realizar un seguimiento y administrar su proyecto.


Debian
  1. Cómo instalar Apache ZooKeeper en Debian 10

  2. Cómo instalar osquery en Debian 10

  3. Cómo instalar WildFly en Debian 11

  4. Cómo instalar Gitea en Debian 9

  5. Cómo instalar Suricata en Debian 11

Cómo instalar Icinga 2 en Debian 8

Cómo instalar Git en Debian 9 Stretch

Cómo instalar Git en Debian 10

Cómo instalar Gitea en Debian 10

Cómo instalar Gitea en Debian 11

¿Cómo instalar Git en Debian 10?