Gitea

Entradas Archivos Wallpaper ASCCI Problemas

Gitea es un programa OpenSource para poder hostear una instancia de un servidor de git, y aprovechando que ya tengo un dominio con una computadora quise hostear mis propios proyectos usando este programa, este programa es de facil instalacion, pero si le quisieras modificar alguna plantilla hay que tener cuidado en que carpeta y usuario lo instala, primero hay que descargar el binario y luego hacerlo ejecutable.


 wget -O gitea https://dl.gitea.io/gitea/1.18.1/gitea-1.18.1-linux-amd64
 chmod +x gitea

Luego hay que crear un usuario que ejecute gitea, pues este no puede ser ejecutado por root, en la pagina oficial recomiendan el siguiente comando:

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

Pero con que este no tenga permisos elevados y una carpeta en /home es suficiente, luego necesitamos crear las carpetas custom,data,log en /var/lib/gitea, y se hace de la siguiente manera en un solo comando.

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

Despues hay que mover el ejecutable de gitea a la carpete de los binarios.

 mv gitea /usr/bin/gitea

Luego tenemos que hacer que el usuario que creamos posea estas carpetas, ademas de darle sus permisos especiales. Despues de esto los siguientes comando son para darle permiso al instalador web.

 chown -R git:git /var/lib/gitea/
 chmod -R 750 /var/lib/gitea/

 mkdir /etc/gitea
 chown root:git /etc/gitea
 chmod 770 /etc/gitea

Luego hay que crear un servicio de systemd, en el repositorio de gitea hay un ejemplo pero yo tengo otro el cual es un poco diferente, este archivo hay que guardarlo en /etc/systemd/system como gitea.service

 [Unit]
 Description=Gitea (Git with a cup of tea)
 After=syslog.target
 After=network.target
 
 [Service]
 # Uncomment the next line if you have repos with lots of files and get a HTTP 500 error because of that
 # LimitNOFILE=524288:524288
 RestartSec=2s
 Type=simple
 User=**git**
 Group=**git**
 WorkingDirectory=/var/lib/gitea/
 ExecStart=/usr/bin/gitea --config /var/lib/gitea/custom/conf/app.ini
 Restart=always
 Environment=USER=**git** HOME=/home/**git** GITEA\_WORK\_DIR=/var/lib/gitea
 
 [Install]
 WantedBy=multi-user.target

Hay que tener atencion si es que el usuario que se creo para que ejecutara gitea sea el mismo que esta especificado en el servicio de systemd. En este caso estoy haciendo que al momento que gitea se ejecute tome como el archivo de configuracion aquel que esta en /var/lib/gitea/custom/conf/app.ini, que en este caso tendriamos que sacar el archivo de configuración desde su github, pues son caso 3,000 lineas de posibles configuraciones y explicaciones sobre su funcionamiento, se have con el siguiente comando.

 curl https://raw.githubusercontent.com/go-gitea/gitea/main/custom/conf/app.example.ini >> app.ini
 chmod 640 app.ini

Y depende en que carpeta estemos hay que mover este archivo a la ubicacion especificada; En este archivo hay cambiar el puerto en el que se ejeucta, el dominio (si es que tenemos uno), en mi caso despues de la instalacion web quedo de la siguiente manera:

 APP_NAME = Senchpimy Git Server
 RUN_USER = git
 RUN_MODE = prod
 
 [repository]
 ROOT = /var/lib/gitea/data/gitea-repositories
 
 [server]
 DOMAIN = localhost
 HTTP_PORT = 3000
 ROOT_URL = https://git.senchpimy.xyz

Yo borre algunos campos pues estos tenian información delicada pero esos son los que hay que cambiar, y lo que configure en mi caso, fue para mi dominio que ya tenia.

Y si todo esta bien configurado solo hay que ejecutar los siguientes comandos.

 systemctl enable gitea.service
 systemctl start gitea.service
 

Y ahora si nos dirigimos en este caso seria a senchpimy.xyz:3000, deberiamos ver la pagina de instalacion web, en el tipo de database escogi sqlite, pues solo estare yo usando ese ervidor y no hay necesidad de una databse mas robusta, en este apartado nos dara opcion de modificar las cosas más importantes para que funcione, despues de que ya esta configurado, el servidor ya es usable, en este caso solo desde el puerto 3000 y para cambiar esto hay que hacerlo desde nginx (más información aqui).

Finalmente me gustaria cambiar la pagina principal que se muestra cuando no hay una cuenta registrada, para lograr esto hay que crear una carpeta llamada templates dentro de la carpeta custom que creamos en la parte de arriba, y despues hay que crear la template de la que va a remplazar a la original, en este caso seria home y por lo tanto hay que guardarlo como home.tmpl, Despues hay que copiar el ejemplo que esta en el repositorio de gitea, y se supone que es la misma que trae por defecto, pero al momento de cambiarla los siguientes bloques me daban error y no permitian que el servicio completo empezara a ejecutarse

 {{.locale.Tr "startpage.platform\_desc" | Str2html}}

Asi que solo borre todas las lineas que tuvieran ese contenido, de todos modos era parte de lo que me gustaria haber quitado, y finalmente es un archivo normal de html y este ya se puede modificar como uno quiera. Y para aplicar los cambios hay que restart el servicio de gitea.

Finalmente me quedo asi: