Instalación de Forgejo en Debian 13

¿Que es Forgejo?
Forgejo es una forja de software autoalojada: un servidor Git con interfaz web donde alojar repositorios, gestionar issues, pull requests, wikis, etc. Es un fork de Gitea, mantenido por la comunidad, y destaca por ser muy ligero: está escrito en Go y se distribuye como un único binario, sin dependencias, lo que lo hace ideal para un homelab o una Raspberry Pi frente a alternativas más pesadas como GitLab.
En este tutorial lo instalaremos en Debian 13 usando SQLite como base de datos (la opción más sencilla, no necesita un servidor de base de datos aparte). El servidor es una Raspberry Pi 5 con arquitectura ARM de 64 bits (aarch64), por lo que descargaremos el binario linux-arm64.
Requisitos
- Debian 13 instalado (en este caso sobre Raspberry Pi 5, aarch64).
gitinstalado en el sistema.- Privilegios de sudo o root.
Crear el usuario del sistema
Por seguridad, Forgejo se ejecuta con un usuario del sistema sin privilegios. Lo creamos junto a su directorio de trabajo:
root@forgejo:~# apt install git -y
root@forgejo:~# adduser --system --shell /bin/bash --gecos 'Forgejo' --group --disabled-password --home /opt/forgejo forgejo
Descargar el binario
Descargamos el binario de Forgejo para nuestra arquitectura (arm64) desde la página oficial de releases y le damos permisos de ejecución:
root@forgejo:~# wget -O /opt/forgejo/forgejo https://codeberg.org/forgejo/forgejo/releases/download/v14.0.3/forgejo-14.0.3-linux-arm64
root@forgejo:~# chmod +x /opt/forgejo/forgejo
En un servidor x86 descargaríamos el binario
linux-amd64en lugar delinux-arm64. El resto de la configuración es idéntica.
Creamos también los directorios donde Forgejo guardará los datos y ajustamos el propietario:
root@forgejo:~# mkdir -p /opt/forgejo/data /opt/forgejo/custom/conf
root@forgejo:~# chown -R forgejo:forgejo /opt/forgejo
Crear el servicio systemd
Para que Forgejo arranque con el sistema, creamos el fichero /etc/systemd/system/forgejo.service con el siguiente contenido:
[Unit]
Description=Forgejo
After=network.target
[Service]
Type=simple
User=forgejo
Group=forgejo
WorkingDirectory=/opt/forgejo
ExecStart=/opt/forgejo/forgejo
Restart=always
Environment=USER=forgejo HOME=/opt/forgejo
[Install]
WantedBy=multi-user.target
Recargamos systemd y habilitamos el servicio para que arranque automáticamente:
root@forgejo:~# systemctl daemon-reload
root@forgejo:~# systemctl enable --now forgejo
Asistente de instalación web
La primera vez, Forgejo levanta un asistente de instalación en el puerto 3000. Abrimos un navegador y accedemos a la IP del servidor seguida del puerto 3000. En la primera parte del formulario configuramos la base de datos y los ajustes generales:

- Tipo de base de datos: seleccionamos SQLite3, la opción más simple (Forgejo creará el fichero
/opt/forgejo/data/forgejo.dbautomáticamente). - Título del sitio y, en la configuración del servidor, el dominio o la IP del servidor y la URL base.
Más abajo, en el mismo formulario, desplegamos Configuración de la cuenta de administrador para crear el usuario administrador y pulsamos en Instalar Forgejo:

Al pulsar en “Instalar Forgejo”, se genera el fichero de configuración en /opt/forgejo/custom/conf/app.ini y ya podremos iniciar sesión.
Primer inicio de sesión
Una vez completada la instalación, accedemos con el usuario administrador que acabamos de crear y llegamos al panel principal de Forgejo:

Crear el primer repositorio
Desde el botón + de la barra superior elegimos Nuevo repositorio:

Rellenamos el formulario indicando el propietario, el nombre del repositorio (en el ejemplo, Prueba1), una descripción opcional y la rama por defecto (main), y pulsamos en Crear repositorio:

Al crearlo vacío, Forgejo nos muestra una guía rápida con la URL de clonación y los comandos necesarios para empezar a trabajar con él:

Prueba de funcionamiento
Para comprobar que todo funciona, seguimos la guía rápida: creamos un repositorio local, lo enlazamos con Forgejo y subimos un primer commit:
usuario@debian:~$ mkdir prueba1 && cd prueba1
usuario@debian:~/prueba1$ echo "# Mi primer repositorio en Forgejo" > README.md
usuario@debian:~/prueba1$ git init
usuario@debian:~/prueba1$ git add README.md
usuario@debian:~/prueba1$ git commit -m "first commit"
usuario@debian:~/prueba1$ git remote add origin http://192.168.50.116:3000/administrador/Prueba1.git
usuario@debian:~/prueba1$ git push -u origin main
Si actualizamos la página del repositorio en Forgejo, veremos el archivo README.md que acabamos de subir.
Con esto ya tenemos Forgejo funcionando en Debian 13 como servidor Git ligero y autoalojado para nuestro homelab.
Categories
Base de datos Implantación de aplicaciones Monitorización Redes Seguridad Servicios Sistemas Virtualización y contenedoresRecent Posts