Elija la capa de colaboración
Forgejo y Gitea son ejemplos de software de forja ligero; el Git simple de SSH puede bastar para un flujo de trabajo más pequeño. Ajusta las incidencias, las revisiones, el almacenamiento de paquetes y los requisitos de identidad al proyecto. Verifica las versiones y licencias compatibles actuales.
Separa las compilaciones del forge
Un ejecutor de CI ejecuta código controlado por el proyecto y no debería tener credenciales de forge o de host sin restricciones. Aísla los ejecutores, limita el alcance de los tokens y evita ejecutar trabajos no confiables con la misma cuenta privilegiada que el servicio del repositorio.
Protege el acceso y el registro
Desactive el registro público cuando el servicio sea privado. Use cuentas individuales, autenticación fuerte y claves de despliegue cuidadosamente delimitadas. Documente el puerto SSH y la clave de host; no entrene silenciosamente a los usuarios para que ignoren las advertencias de clave de host.
Haga una copia de seguridad del servicio completo
Los repositorios por sí solos pueden no incluir incidencias, cuentas, adjuntos y configuración. Sigue el procedimiento de copia de seguridad coherente de la forja y prueba una restauración con los permisos de archivo y los secretos de la aplicación intactos.
Una lista de verificación para la recuperación de la forja
Exporte la base de datos de forma consistente y conserve el almacenamiento del repositorio, los adjuntos, el almacenamiento de archivos grandes si está habilitado, la configuración y los secretos de cifrado. Verifique un clon a través de la ruta prevista SSH o HTTPS tras la restauración. Mantenga el forge y cualquier worker de CI aislados para que una compilación no pueda reescribir la propia configuración del servicio.
Mantén los derechos de despliegue limitados
Una clave de despliegue de solo lectura puede ser suficiente para un servidor que solo descarga código. Una automatización de versiones puede necesitar un pequeño alcance adicional. Prefiere claves independientes para distintas máquinas, registra su propósito y elimínalas cuando la máquina se retire.
Usa el servicio de colaboración más pequeño que se ajuste
Para unos pocos repositorios privados, Git bare sobre SSH restringido puede ser suficiente. Forgejo o Gitea añaden cuentas, pull requests, issues y paquetes opcionales a costa de una base de datos, actualizaciones de la aplicación y más estado persistente. Registra qué funciones usará realmente el equipo. Presupuesta por separado el crecimiento de los repositorios, los objetos de archivos grandes, los adjuntos y los artefactos de compilación; el cómputo de CI puede superar al propio forge.
- Elige un nombre canónico de HTTPS y protege su cuenta de DNS.
- Decide si el registro está cerrado, basado en invitación o moderado.
- Asigna al servicio de forge una identidad sin privilegios y almacenamiento privado duradero.
Documentación oficial: Instalación de Forgejo en contenedor
Separa las rutas de la web, de SSH y de la base de datos
Usa la configuración upstream de la versión seleccionada y fija la versión de imagen prevista. Un proxy inverso TLS debería llegar al listener web interno; la base de datos solo debería ser accesible por la forja. Si Git SSH usa un puerto de contenedor, mantén su host anunciado y su puerto externo coherentes con la asignación. No sustituyas ni expongas por accidente el listener SSH del administrador del host al cambiar la forja. Cierra el acceso de instalación/configuración una vez creado el propietario inicial.
- Verifica la propiedad del volumen persistente antes de iniciar la aplicación.
- Usa un usuario de base de datos restringido a la base de datos de la forja.
- Mantén los runners de CI en un límite de confianza separado, especialmente para repositorios no confiables.
Documentación oficial: Redes y persistencia de Forgejo en Docker
Verifica la clonación, el push y una operación denegada
Crea un repositorio privado desechable y prueba su clonación HTTPS o SSH URL desde una cuenta de desarrollador normal. Confirma y sube un archivo inofensivo, luego verifica que otro lector autorizado pueda obtenerlo. Una cuenta no invitada debe fallar al leer el repositorio privado. Comprueba el manejo de archivos grandes y el correo de notificación si está habilitado. Para máquinas de solo despliegue, prueba que una clave de solo lectura pueda obtener y no pueda subir; un éxito de autenticación por sí solo no demuestra el límite de permisos previsto.
# Use the disposable repository URL advertised by your forge:
git clone ssh://[email protected]:2222/team/check.git
# In a clone, inspect which remote is configured:
git remote -vRecupere la discusión además del repositorio
Realice una copia de seguridad coherente de la aplicación y la base de datos, el almacenamiento del repositorio, los adjuntos, los datos LFS, la configuración y los secretos de cifrado necesarios. Siga el procedimiento de copia de seguridad de la versión de forge instalada; los comandos de copia de seguridad de Gitea no son automáticamente intercambiables con todas las versiones de Forgejo. Reconstruya de forma aislada y verifique una incidencia, un adjunto, un inicio de sesión y un clon. Si el push falla tras un traslado, compruebe el host/puerto de SSH, la asignación de claves, los permisos de almacenamiento y las URL de clon anunciadas antes de cambiar los permisos del repositorio de forma global.
Documentación oficial: Copia de seguridad y restauración de Gitea