# Instalador de componente Git

Este directorio contiene el instalador de Git para OpenGnsys.

Descarga, instala y configura Forgejo, crea los repositorios por defecto, y configura claves de SSH.

# Instalación rápida

## Ubuntu 24.04

### Agregar repositorio

Crear el archivo `/etc/apt/sources.list.d/opengnsys.sources` con este contenido:

    Types: deb
    URIs: https://ognproject.evlt.uma.es/debian-opengnsys/opengnsys
    Suites: noble
    Components: main
    Signed-By:
     -----BEGIN PGP PUBLIC KEY BLOCK-----
     .
     mDMEZzx/SxYJKwYBBAHaRw8BAQdAa83CuAJ5/+7Pn9LHT/k34EAGpx5FnT/ExHSj
     XZG1JES0Ik9wZW5HbnN5cyA8b3Blbmduc3lzQG9wZW5nbnN5cy5lcz6ImQQTFgoA
     QRYhBC+J38Xsso227ZbDVt2S5xJQRhKDBQJnPH9LAhsDBQkFo5qABQsJCAcCAiIC
     BhUKCQgLAgQWAgMBAh4HAheAAAoJEN2S5xJQRhKDW/MBAO6swnpwdrbm48ypMyPh
     NboxvF7rCqBqHWwRHvkvrq7pAP9zd98r7z2AvqVXZxnaCsLTUNMEL12+DVZAUZ1G
     EquRBbg4BGc8f0sSCisGAQQBl1UBBQEBB0B6D6tkrwXSHi7ebGYsiMPntqwdkQ/S
     84SFTlSxRqdXfgMBCAeIfgQYFgoAJhYhBC+J38Xsso227ZbDVt2S5xJQRhKDBQJn
     PH9LAhsMBQkFo5qAAAoJEN2S5xJQRhKDJ+cBAM9jYbeq5VXkHLfODeVztgSXnSUe
     yklJ18oQmpeK5eWeAQDKYk/P0R+1ZJDItxkeP6pw62bCDYGQDvdDGPMAaIT6CA==
     =xcNc
     -----END PGP PUBLIC KEY BLOCK-----

Es necesario ejecutar `apt update` después de crear el archivo.

### Instalar paquetes:

    sudo apt install -y python3-git opengnsys-libarchive-c python3-termcolor python3-requests python3-tqdm bsdextrautils


## Agregar claves de SSH a oglive

El sistema de Git accede al ogrepository por SSH. Para funcionar, necesita que el oglive tenga una clave de SSH, y que el ogrepository la acepte.

El instalador de Git puede realizar los cambios requeridos, extrayendo una clave de SSH de un oglive e instalándola en Forgejo. Si hay una instalación de ogboot local, el instalador lo hará automáticamente. Si no la hay, es necesario darle al instalador un oglive del que extraer la clave con el parámetro `--oglive-file` o `--oglive-url`.

Por ejemplo:

    ./opengnsys_git_installer.py --oglive-url https://example.com/ogLive-noble.iso

El instalador procederá a descargar el archivo, montar el ISO, y extraer la clave.

Para hacer el proceso después de haber completado la instalación y solo agregar una clave a una instalación existente, usar el parámetro `--set-ssh-key`:

    ./opengnsys_git_installer.py --set-ssh-key --oglive-url https://example.com/ogLive-noble.iso

# Ejecutar


    # ./opengnsys_git_installer.py

Debe ejecutarse como `root`.

El instalador descarga e instala Forgejo, un interfaz web de Git. La configuración se genera automáticamente.

Forgejo gestiona los repositorios y el acceso por SSH, por lo cual debe quedarse siempre corriendo. Por defecto se instala en el puerto 3000.

El usuario por defecto es `oggit` con password `opengnsys`.


# Paquetes con dependencias

El sistema OgGit requiere módulos de Python que no vienen en Ubuntu 24.04 o tienen versiones demasiado antiguas.

Los paquetes se pueden obtener desde el repositorio de OpenGnsys (ver arriba).

Los fuentes de los paquetes se encuentran en oggit/packages.

# Documentación de código fuente

Se puede generar documentación de Python con una utilidad como pdoc3 (hay multiples alternativas posibles):

    # Instalar pdoc3
    pip install --user pdoc3

    # Generar documentación
    pdoc3 --force --html opengnsys_git_installer.py

