Introducción: Forgejo es una plataforma ligera para alojar repositorios Git privada, fácil de operar y con requisitos de recursos reducidos. Piensa en ella como tu propio GitHub privado donde controlas el 100% de los datos. Forgejo es un binario escrito en Golang y es autosuficiente, viene por defecto con SQLite y soporta bases de datos como MariaDB, MySQL y PostgreSQL. Para despliegues con menos de 100 usuarios SQLite suele ser suficiente.
Federación: Una limitación actual es la interacción entre usuarios de distintas instancias. Si tu vecino aloja su propia instancia y quieres seguirle o dar me gusta a un repositorio necesitas crear una cuenta en su instancia. Esto se está resolviendo con la federación basada en el protocolo ForgeFed que permitirá compartir cuentas, actividades públicas e interacciones entre instancias manteniendo el control desde tu propio servidor.
Autoalojamiento mediante Ansible: Para automatizar el despliegue puede usarse un playbook de Ansible que instala Forgejo como contenedor gestionado por systemd. El playbook descrito originalmente funciona en distribuciones basadas en RHEL y OpenSUSE. Pasos clave: instalar Ansible y colecciones necesarias con comandos como sudo dnf install ansible y ansible-galaxy collection install community.general containers.podman ansible.posix. Actualiza el archivo inventory.ini con la IP y el usuario sudo del servidor destino y ajusta variables en variables.yaml como base_url, http_port, ssh_port, container_image y base_directory. Por ejemplo container_image: codeberg.org/forgejo/forgejo:12 y base_directory: /forgejo. Ejecuta ansible-playbook -i inventory.ini playbook.yaml --ask-become-pass o make run para iniciar la instalación. Ansible conectará por SSH e instalará dependencias, configurará el contenedor y generará las unidades de systemd correspondientes.
Configuración del proxy y HTTPS: Recomiendo colocar Nginx como proxy inverso delante de Forgejo para gestionar TLS y límites de tamaño. Crea un bloque en /etc/nginx/sites-available/forge y enlázalo a sites-enabled apuntando a la dirección local del servicio, por ejemplo proxy_pass https://localhost:3000. Luego usa certbot --nginx para obtener certificados y habilitar HTTPS en el dominio elegido.
Archivos de configuración: Después de la instalación ajusta el archivo de configuración app.ini ubicado en /forgejo/gitea/conf o en la ruta que haya creado el playbook. Parámetros a considerar son DOMAIN, ROOT_URL, SSH_DOMAIN, APP_DATA_PATH, y opciones como DISABLE_REGISTRATION para desactivar el registro público. Configura también los datos de SMTP si deseas que la plataforma envíe notificaciones por correo.
Reinicio y bases de datos: Para que los cambios se apliquen reinicia el servicio con systemctl restart forgejo. Si prefieres usar una base de datos externa sigue la guía oficial para preparar MariaDB, MySQL o PostgreSQL y actualiza la configuración en app.ini.
Mantenimiento y actualizaciones: Actualizar la versión es sencillo. En el servidor host ejecuta podman pull codeberg.org/forgejo/forgejo:12 actualiza la línea Image en /etc/containers/systemd/forgejo.container y luego sudo systemctl daemon-reload y systemctl restart forgejo. De este modo se aplica la nueva imagen sin procedimientos complejos.
Gestión de usuarios desde la CLI: Si necesitas administrar usuarios sin acceso a la interfaz web puedes entrar al contenedor con podman exec -it forgejo bin/bash, cambiar al usuario git con su git y usar la herramienta de CLI integrada forgejo admin. Con forgejo admin user create puedes crear usuarios, con forgejo admin user change-password puedes restablecer contraseñas y con forgejo admin user generate-access-token generar tokens de acceso para integraciones. También existen comandos para regenerar archivos, sincronizar releases y gestionar proveedores de autenticación externa.
Buenas prácticas de seguridad: Protege la instancia limitando el acceso público cuando sea necesario, configura un firewall y utiliza certificados TLS. Considera complementar la protección con soluciones anti-bots y políticas de acceso. Si necesitas pruebas de seguridad o pentesting profesional puedes consultar nuestras soluciones de ciberseguridad para evaluar y reforzar la plataforma.
Servicios y experiencia de Q2BSTUDIO: En Q2BSTUDIO somos una empresa dedicada al desarrollo de software y aplicaciones a medida, especialistas en inteligencia artificial, ciberseguridad y servicios cloud. Ofrecemos desarrollo de aplicaciones y software a medida para equipos que necesitan soluciones personalizadas y mantenibles. Si buscas un partner para crear una plataforma de gestión de código o integrar Forgejo en un ecosistema a medida visita nuestra página de desarrollo de aplicaciones y software a medida. Para desplegar con alta disponibilidad y escalabilidad podemos acompañarte con servicios cloud en AWS y Azure, más información en nuestra página de servicios cloud AWS y Azure.
Palabras clave y ventajas: Este enfoque facilta la creación de un entorno privado de control de código y se integra con prácticas modernas como despliegue mediante contenedores, automatización con Ansible y autenticación segura. Q2BSTUDIO puede ayudar a integrar inteligencia artificial en flujos de trabajo de desarrollo, crear agentes IA para automatizar tareas repetitivas, implantar soluciones de inteligencia de negocio y paneles con power bi, y garantizar la ciberseguridad de la plataforma. Palabras clave relevantes para posicionamiento: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.
Conclusión: Autoalojar Forgejo es una opción práctica para equipos y organizaciones que desean control total sobre sus repositorios con una huella de mantenimiento baja. Si necesitas soporte para el despliegue, integración con bases de datos, certificados TLS, automatización o auditoría de seguridad, en Q2BSTUDIO ofrecemos servicios integrales para acompañarte en todo el ciclo de vida del proyecto.