Saltar a contenido
Forgejo

Git · CI/CD (integración y despliegue continuo) · Repositorio · Acciones

📌 v15.0.1 · 2026-04-29

Forgejo — Fuente única de verdad y CI/CD

Sustituiría a GitHub y GitLab. El repositorio central donde vive todo el código de SmallCountry. Cada cambio en el sistema nace aquí como un commit. Forgejo Actions ejecuta el CI/CD que planifica, verifica y despliega cada cambio. También es el buzón oficial de incidencias y sugerencias.

Como usuario

Para todos los usuarios del país

Funcionalidad Navegador Ubuntu Android FireTV
Reportar problemas o sugerir mejoras (Forgejo Issues)
Seguir el historial de cambios del sistema
Acceder a documentación versionada

Para el administrador y arquitecto

Funcionalidad Navegador Ubuntu Android FireTV
Repositorios Git con todo el código de infraestructura
CI/CD con Forgejo Actions para despliegues automáticos
Registro OCI de imágenes Docker
Issues y milestones para seguimiento de tareas
Wiki para documentación colaborativa
Git CLI (push, pull, clone)

Primeros pasos: Accede a https://forgejo.sc. Inicia sesión con tu cuenta de Authentik. Navega a Explorar para ver todos los repositorios públicos. Usa Issues desde el panel de inicio para reportar cualquier problema técnico o sugerir una mejora.

Integración con otros servicios de SmallCountry

Servicio Cómo se integra
Ansible Repositorio de playbooks de infraestructura
OpenTofu Módulos de infraestructura como código
Semaphore Dispara playbooks desde Forgejo Actions
MkDocs Documentación versionada del sistema
code-server Entorno de desarrollo integrado
Todos los servicios Cada cambio en el sistema pasa por Forgejo
ntfy Notificaciones de estado de CI/CD
Matrix Notificaciones de despliegues
InvenioRDM Backend de scripts de ciencia abierta. InvenioRDM es el frontend público de publicación; Forgejo aloja el código científico

Servicios que lo hacen posible

  • Forgejo — Git hosting y CI/CD
  • PostgreSQL — Base de datos
  • Forgejo Runner — Ejecutores de Actions
Para el administrador (diseño previsto)

LXC (contenedor ligero de Proxmox): 140
IP: 10.10.10.140
Tier: 2
Impacto: 🔴 Crítico — Sin Forgejo no hay fuente de verdad ni CI/CD

ZFS (sistema de archivos con integridad de datos) persistente: rpool/datos/forgejo/opt/forgejo/

Docker compose: Forgejo + PostgreSQL

Healthcheck: curl https://forgejo.sc

Logs: docker logs forgejo en el LXC 140

Backup manual: PBS (sistema de copias de seguridad de Proxmox) diario + mirrors de repos en Horus (servidor secundario con GPU para IA) y Thoth (Raspberry Pi árbitro del clúster y backup offsite)

Registry OCI local: Todas las imágenes Docker se cachean aquí. Los nodos nunca descargan imágenes de internet directamente.

Cuarentena de software: Nuevas versiones pasan 60/14/7 días según Tier antes de producción.

Problemas comunes:
- "CI/CD no se ejecuta" → verificar runners de Forgejo Actions
- "No puedo hacer push" → verificar permisos y clave SSH
- "Registry lleno" → limpiar imágenes antiguas con garbage collection

Para el arquitecto (diseño previsto)
graph TD
    A[Usuario] -->|git push| B[Forgejo LXC 140]
    B -->|webhook| C[Forgejo Actions Runner]
    C -->|plan| D[OpenTofu]
    D -->|snapshot| E[ZFS]
    D -->|apply| F[Proxmox]
    C -->|verify| G[Healthchecks]
    B -->|OCI pull| H[Nodos Docker]
    H -->|nunca| I((Internet))
    B -->|notify| J[ntfy / Matrix]

Bridge: vmbr1
Puertos: 3000 (web), 2222 (SSH git)

Pi-hole: forgejo.sc10.10.10.140

Caddy: forward_auth + reverse_proxy (necesita WebSocket para Actions)

Authentik: Provider OAuth2, grupos admin y arquitecto

Pipeline de CI/CD:
1. Push a Forgejo
2. Forgejo Actions ejecuta
3. Plan de OpenTofu
4. Snapshot ZFS
5. Apply
6. Verify
7. Commit
Si hay drift, se crea commit forense y se detiene.

Orquestación:
- Playbook: deploy-forgejo.yml
- Rol Ansible: roles/forgejo/
- Tofu: modules/forgejo/
- Semaphore, Forgejo Actions
- Repo: sc-infra/forgejo

Secciones relacionadas

🌐 Enlaces de interés