635 palabras
3 minutos
Instalaci贸n Gitea

Gitea#

Gitea es una soluci贸n ligera de alojamiento de c贸digo gestionada por la comunidad y escrita en Go, tiene las principales caracter铆sticas que tiene github, incluyendo actions. Ahora veremos la instalaci贸n de gitea en la VPS.

Preparaci贸n#

En mi caso voy a instalarlo utilizando docker-compose, para ello, y teniendo en cuenta que uso debian, es necesario ejecutar los siguientes comandos:

apt update
apt install -y docker.io docker-compose

Instalaci贸n#

Para instalarlo, voy a optar por la opci贸n con una base de datos PostgreSQL. Para ello, en un directorio vac铆o creamos el siguiente fichero docker-compose.yml (cambiando las credenciales, claro):

version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: gitea/gitea:nightly
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=gitea
    restart: always
    networks:
      - gitea
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3200:3000"
      - "222:22"
    depends_on:
      - db

  db:
    image: postgres:14
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea
      - POSTGRES_DB=gitea
    networks:
      - gitea
    volumes:
      - ./postgres:/var/lib/postgresql/data

y lo desplegamos con

docker-compose up -d

Con eso ya se habr铆an creado los contenedores. Adem谩s, para poder entrar en gitea desde fuera de la VPS usando el dominio, vamos a a帽adir el siguiente proxy inverso al servidor nginx:

server {
    if ($host ~ ^[^.]+\.admichin\.es$) {
        return 301 https://$host$request_uri;
    } # managed by Certbot
        listen 80;
        listen [::]:80;
        server_name gitea.admichin.es;
        return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl    on;
    ssl_certificate /etc/letsencrypt/live/admichin.es-0001/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/admichin.es-0001/privkey.pem; # managed by Certbot

    index index.html index.php index.htm index.nginx-debian.html;
    server_name gitea.admichin.es;

    location / {
            proxy_pass http://localhost:3200;
            include proxy_params;
    }
}

Con esto hecho, si accedemos a gitea.admichin.es por primera vez, se abrir谩 la p谩gina de configuraci贸n:

configuracion1

En esta configuraci贸n es importante poner el dominio (m谩s abajo, no donde sale en la foto ya que esa es la configuraci贸n de la base de datos). As铆 como establecer la configuraci贸n de ssh y el nombre del sitio. Tras finalizar la configuraci贸n, o en la misma ya que es una opci贸n, el primer usuario que se cree ser谩 el administrador. Con esto ya tendr铆amos gitea instalado y funcionando.

principal

Actions#

Gitea, desde la versi贸n 1.19 permite a帽adir actions, que son similares a las GitHub actions. Aunque actualicemos a dicha versi贸n, no aparecer谩n, ya que tenemos que a帽adir lo siguiente al final del fichero de configuraci贸n, que se encuentra en data/gitea/conf/app.ini:

[actions]
ENABLED=true

Una vez activado, aparece la siguiente opci贸n en el apartado de administraci贸n:

actions

Para el paso que ir谩 a continuaci贸n, vamos a necesitar el token de registro. Para obtenerlo se accede al apartado de Runners y al bot贸n de Create a new Runner:

token

Runners#

Un runner es una m谩quina que ejecuta las tareas de un workflow de actions. En mi caso voy a utilizar un contenedor como runner dentro de la VPS tambi茅n, pero hay varios m茅todos:

En local#

Descargamos el binario de https://gitea.com/gitea/act_runner adecuado para nuestro sistema y ejecutamos los siguientes comandos:

./act_runner register --no-interactive --instance <instance> --token <token>

Donde la instancia es la direcci贸n o IP en la que est茅 alojada Gitea, y el token es el token que hemos obtenido previamente. Tras esto, ejecutamos el runner:

./act_runner daemon

En contenedor#

Para ejecutarlo con docker voy a usar docker-compose. para ello, creo un nuevo directorio con el siguiente fichero docker-compose.yml:

version: "3"

services:
  runner:
    image: gitea/act_runner
    restart: always
    volumes:
      - ./data/act_runner:/data
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - GITEA_INSTANCE_URL=instance
      - GITEA_RUNNER_REGISTRATION_TOKEN=token

Al igual que en el caso anterior la instancia es la direcci贸n o IP en la que est茅 alojada Gitea, y el token es el token que hemos obtenido previamente.

Una vez en ejecuci贸n, los runners aparecen de la siguiente manera:

runners

Activar actions#

Aunque est茅 configurado, las actions est谩n desactivadas por defecto en los repositorios. Para activarlas hay que acceder a la configuraci贸n, y en el apartado de ajustes avanzados activarlas:

activar

Podemos ver que se ha activado porque aparece el bot贸n de actions en el repositorio, y podemos a帽adirlas como se a帽adir铆an en GitHub:

boton

Enlaces de inter茅s#

Instalaci贸n Gitea
https://www.robertops.com/posts/2023-06-14_instalacion-gitea/
Autor
Roberto Rodr铆guez
Publicado el
2023-06-14