- Forgejo es una forja de software ligera para autoalojamiento pensada para equipos que quieren operar su propia plataforma de desarrollo, con enfoque en reducir la carga de instalación y mantenimiento
- Está impulsado por una comunidad bajo Codeberg e.V., y tanto el proyecto como el proceso de desarrollo se mantienen basados en software libre
- Ofrece un entorno fácil de adoptar para usuarios familiarizados con GitHub, pero diseñado para que los propios usuarios controlen la propiedad de la plataforma y la productividad de la colaboración
- Ofrece muchas funciones mientras mantiene bajos requisitos de servidor, y afirma requerir una cantidad de recursos de un solo dígito frente a otras forjas
- Prioriza la seguridad, la escalabilidad, la federación y la privacidad, con una orientación hacia el desarrollo colaborativo descentralizado
Posicionamiento y modelo operativo de Forgejo
- Forgejo es una forja de software ligera para autoalojamiento que permite operar una plataforma de desarrollo de software en servidores propios
- Su objetivo es que la instalación y el mantenimiento sean sencillos, con baja carga administrativa
- También puedes crear una cuenta en Codeberg o en otras instancias públicas, o descargarlo y autoalojarlo por tu cuenta
- La entidad que lo opera es una comunidad inclusiva bajo Codeberg e.V.
- Codeberg e.V. se presenta como una organización democrática sin fines de lucro
- Forgejo afirma ser confiable por ser exclusivamente software libre
- El enfoque del producto está en la seguridad, la escalabilidad, la federación y la privacidad
- Las diferencias frente a otras forjas de software pueden verse en la página comparativa
Dirección funcional y áreas de participación
- Forgejo busca recuperar el control del proceso de desarrollo de software, autoalojar los proyectos y ayudar a que quienes participan se enfoquen juntos en ofrecer software de calidad
-
Usabilidad y carga operativa
- Promueve una gestión de proyectos sencilla y prioriza la experiencia de usuario para la colaboración y la productividad
- Ofrece un entorno familiar para usuarios de GitHub, para que puedan migrar a una plataforma que les pertenece
- Reduce la carga de instalación y mantenimiento para que se pueda operar una forja de software propia incluso sin conocimientos técnicos especializados
-
Software libre y colaboración descentralizada
- Mantiene un perfil de servidor bajo aun ofreciendo muchas funciones
- Tanto Forgejo como el proceso de desarrollo del proyecto usan software libre
- Plantea una dirección que hace posible el desarrollo colaborativo de software a través de una plataforma descentralizada
-
Áreas en las que se puede contribuir
1 comentarios
Opiniones en Hacker News
Según las FAQ, se pronuncia forˈd͡ʒe.jo y, para un oído del Medio Oeste de EE. UU., suena como “4 Jay yo”. Dicen que en esperanto significa Forge
Es un fork de Gitea, pero me gusta que se opere como organización sin fines de lucro y que todo tenga licencia libre (GPL), sin ventas adicionales premium. También me agrada que la comunicación de la comunidad sea por Matrix y Mastodon
Parece que Codeberg lo usa y, por fuera, se ve como Gitea/GitHub, sin problema. El código fuente se puede ver desde el pequeño ícono de rama en la parte superior derecha, y está alojado en Codeberg. Lo que aprendí hoy es que Codeberg en sí es una instancia de Forgejo
https://forgejo.org/2024-02-forking-forward/
https://v10.next.forgejo.org/explore/repos
https://codeberg.org/forgejo/forgejo
Según entiendo, el fork surgió porque Gitea creó una empresa que desarrolla funcionalidades a medida si una compañía las solicita, y no porque hubiera muchas señales de algo como un cambio de licencia
Dicen que el Fedora Project se está mudando hacia esto: https://fedoramagazine.org/fedora-moves-towards-forgejo-a-unified-decision/
Me dio curiosidad por qué Forgejo se separó de Gitea y, al buscar, parece otro caso más de creadores/mantenedores de software libre y de código abierto sin dinero siendo golpeados desde arriba, y quizá también desde abajo.
Si uno ve el anuncio de la constitución de Gitea como empresa, parece que el software libre y de código abierto por sí solo no alcanzaba para cubrir los costos, y que había usuarios ricos que se beneficiaban gratis, algo permitido por la licencia MIT.
El punto clave es este pasaje: “Durante años probamos varias formas de apoyar a los mantenedores y al proyecto, como recompensas, patrocinios directos y subvenciones. Muchas personas excelentes y algunas empresas fueron muy generosas, pero algunas compañías, aun con ingresos mayores que el PIB de algunos países, usaban Gitea en sus productos principales y no devolvían sus mejoras”.
No soy fan de Bruce Perens, pero su frase “tenemos un excelente programa de bienestar corporativo, y sus usuarios son algunas de las empresas más ricas del mundo. En cambio, los desarrolladores reciben muy poca compensación si no trabajan en esas empresas” da justo en el clavo.
Por otro lado, cuando los fundadores crearon una empresa, la comunidad reaccionó en contra; al parecer no tanto por la creación de la empresa en sí, sino porque esa empresa tenía el dominio y la marca registrada. A simple vista parece un motivo menor, pero no conozco los detalles.
En cualquier caso, fuera de los desarrolladores por hobby y de FAANG, parece el caso #187 de fracaso de FOSS.
El software libre originalmente era un movimiento ético y no tenía por qué priorizar fuentes de ingresos. Su objetivo no era el desarrollo sostenible, sino la libertad de los usuarios. En la idea de que “los usuarios deben tener la libertad de hacer lo que quieran con el software” no aparece por ningún lado “y además debe poder pagarles un sueldo a algunos desarrolladores que trabajan por ese objetivo ético”.
Según la propia historia de la OSI, en algún momento la gente empezó a pensar que el modelo de desarrollo abierto era intrínsecamente bueno para los negocios, Netscape se sumó y algunos se reunieron para cambiarle la marca al software libre como código abierto.
http://web.archive.org/web/20071115150105/https://opensource.org/history/
La palabra FOSS me suena parecida al budismo corporativo al estilo estadounidense. Así como el mindfulness y la meditación fueron separados de su profundo contexto religioso original y convertidos en programas de autoayuda, terminó siendo una forma difícil de reconocer para sus practicantes originales. El software libre no trataba de desarrollo sostenible, sino de hacer lo correcto: la libertad del usuario; todo lo demás era un medio para ese fin. Pero en algún momento el medio se convirtió en el fin, y ahora nos preguntamos por qué FOSS no paga las cuentas por sí solo.
Quien leyó bien la tendencia fue GitLab. Encontró un punto de equilibrio: ofrecer el producto al estilo open source y aun así cubrir los costos operativos; ganó tanto confianza como ingresos, así que lo hizo bien.
Si quieres ganarte la vida con trabajo de código abierto, tienes que operarlo como un negocio y usar los mecanismos comerciales adecuados. De lo contrario, tu propio esfuerzo puede terminar volviéndose una forma de explotación contra ti mismo. No hablo de mala intención, pero la justicia es una cuestión de equilibrio, y si el trabajo duro no te trata como corresponde, eso también es injusto.
Es difícil entender que alguien se niegue a añadir condiciones copyleft adicionales a la licencia y, al final, espere que las empresas actúen de buena fe como si esas condiciones existieran.
A empresas como Google les gustan las licencias permisivas, e incluso patrocinan alternativas con licencia MIT/BSD para componentes comunes, como toybox.
Al parecer, Forgejo v9 y posteriores sí usan licencia GPL.
El cuento de terror sobre las big tech es útil para justificar que un proyecto open source cambie su licencia, pero aquí no encaja. En general tampoco tiene mucho sentido, pero en este caso ni siquiera parece que los propios mantenedores hayan dicho algo así.
Proyectos como MongoDB, ElasticSearch y Redis se volvieron populares porque eran open source, y durante años posiblemente también limitaron la competencia porque es difícil competir contra lo gratis. Luego, más adelante, terminaron dándoles la espalda a sus usuarios. Si MongoDB 1.0 hubiera sido un producto comercial, nadie lo habría usado; por lo tanto, el dinero que ganaron existió precisamente porque originalmente era open source.
Lo interesante de Forgejo es que se está trabajando en la federación de forjas (federation)
https://codeberg.org/forgejo/forgejo/issues/59#issuecomment-1652830
En un mundo ideal, GitHub y GitLab también soportarían la federación, pero probablemente eso no ocurra
Como alternativa en el mismo espacio de problemas, existe algo como https://radicle.xyz/, que usa un enfoque P2P
Una federación útil entre instancias de Forgejo podría resolverse perfectamente con OIDC y unos cuantos webhooks. Por ejemplo, colaboración entre instancias, forks y pull requests. No entiendo por qué haría falta una federación entre Forgejo y Mastodon, y tampoco queda claro qué significaría eso
Antes incluso publicaban reportes anuales de avance hasta 2023, pero ese sitio ya no parece ser accesible: https://web.archive.org/web/20240830030315/https://forgefriends.org/blog/2023/06/21/2023-06-state-forge-federation/
Aun así, la última mención de la federación en las actualizaciones mensuales fue en octubre, cuando subrayaron que la federación era la “máxima prioridad” del proyecto Forgejo y que lo seguiría siendo
https://forgejo.org/2024-10-monthly-update/#:~:text=Forgejo%20federation%20is%20and%20will%20always%20be%20the%20highest%20priority%20of%20the%20Forgejo%20project
Exponer un repositorio Git en la red es muy fácil vía HTTP o SSH, y también soporta flujos de revisión de código basados en correo electrónico. Eso sí, me gusta bastante el enfoque de almacenar las revisiones dentro del repositorio, como hace git-appraise
https://github.com/google/git-appraise
Las pipelines de CI/CD también pueden integrarse de forma simple si se pueden disparar con un push. Pero construimos interfaces centralizadas encima de Git y ahora intentamos que esas interfaces se integren entre sí. Si consideramos que Git ya está descentralizado, parece como ir en sentido contrario
Contenido relacionado: https://gitlab.com/groups/gitlab-org/-/epics/11247#why
Ahora mismo estoy haciendo mirroring entre mi Forgejo autohospedado, github.com y gitlab.com, y mi instancia de Forgejo es más parte de mi hobby de autohosting que infraestructura imprescindible
GitLab Cells también parece poder ir en la misma dirección, y sus documentos de diseño mencionan la federación
https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/cells/
Durante varios años pasé de Gogs a Gitea y luego a Forgejo, y es un software realmente excelente.
Para el 90%, basta con poner repositorios Git personales en un servidor SSH. Si solo quieres tener un repositorio de Chezmoi en un lugar accesible desde todas tus computadoras, la familia Forgejo no aporta demasiado.
Pero para el 10% de los casos, es decir, cuando quieres compartir código en privado con algunos amigos, es excelente. Gratis es mejor que el plan de pago de GitHub y, si de todos modos lo vas a correr por ese 10% de proyectos, conviene usarlo también para el resto como repositorio Git personal de referencia.
También tiene kanban y editor de código.
Al cambiar a Gitea fue un alivio, y Forgejo me llamó la atención cuando Fedora lo eligió como servidor de repositorios.
Mis requisitos son simples: básicamente un almacenamiento central de archivos para notas y código fuente. Probé migrar de Gitea 1.21 a Forgejo 9 y no hubo fricción.
Estoy considerando seriamente cambiarme, pero todavía estoy pensando cuál de los dos tendrá mejor soporte a largo plazo y será más adecuado para uso gratuito.
Sinceramente, creo que mi próximo destino será Forgejo con Forgejo Actions para CI/CD (https://forgejo.org/docs/next/user/actions/), o irme al extremo y volver a Jenkins.
El tagline no es muy descriptivo. Recién después de hacer scroll una o dos veces en la página principal pude entender cuál era su propósito: una alternativa a GitHub autoalojada.
En software, la palabra “forge” puede interpretarse de varias maneras, así que sería mejor decirlo claramente más arriba.
Técnicamente, sistemas de esa época como Redmine también podrían haberse llamado forge, pero parece que el término se consolidó después.
Referencia: https://en.wikipedia.org/wiki/Forge_(software)
Cuando pienso en “forge”, me viene a la mente una herramienta que transforma materia prima en un producto terminado. Por ejemplo, herramientas de herrería que convierten hierro en herraduras.
Como metáfora de software, encajaría mejor con algo que convierte código fuente de texto en binarios ejecutables, es decir, un compilador o intérprete.
GitHub y SourceForge mueven código fuente de un lugar a otro. Si estiramos la metáfora, se parece más a una combinación de tienda y servicio de entrega. El código fuente se mueve, pero no se transforma.
Por eso, desde la perspectiva de un desarrollador veterano de C/C++, forge se siente como un término bastante extraño para referirse a un servidor Git autoalojado.
Después de sufrir intentando mantener GitLab CE por su alto consumo de CPU y memoria, me cambié a Forgejo y no me decepcionó.
Corre como contenedor rootless y casi no usa memoria ni CPU. Las actualizaciones también funcionan sin problemas con un simple
podman pull.Ahora también corro Actions para ejecutar Jekyll y otras cosas, y mantener actualizados sitios web estáticos.
Me gusta tener mi propia forja, desde la que puedo importar repositorios, issues y demás desde otras forjas como GitHub y GitLab, y también espero con ganas una integración más amplia con el Fediverse basada en ActivityPub en el futuro.
Un enfoque de hosting de código descentralizado pero conectado era algo que siempre quise, y siento que ahora estamos casi ahí.
Durante varios años pasé de GitHub → GitLab autoalojado → Gitea → Forgejo, y no me arrepiento.
Forgejo es excelente, y creo que será aún mejor cuando la federación esté completa. Si se vuelven posibles los forks y pull requests distribuidos entre múltiples instancias, se resolverá el problema de fragmentación de las soluciones autoalojadas.
Gitea perdió mi confianza cuando creó una rama comercial respaldada por capital de riesgo, y justamente por eso nació Forgejo como fork.
Lo único que perdí al dejar GitLab fue la plataforma CI/CD integrada. Pero pude mover los pipelines a Drone CI y dispararlos con webhooks. Eso sí, dependiendo de qué tan complejos sean los pipelines de GitLab, puede que no siempre sea una opción viable.
En cualquier caso, no quería alojar un servidor GitLab que consumía 5 GB de RAM para unos pocos proyectos pequeños. Forgejo usa alrededor de 500 MB de RAM incluso en picos.
Me da curiosidad cómo es la experiencia de revisión de código. Supongo que será parecida a Gitea, pero no he usado ninguno de los dos
Hace poco hice una revisión de código bastante seria en GitHub, y como herramienta de revisión de código se sentía casi como una versión de juguete. A menos que diseñes todo el modelo de control de código fuente en torno a esa herramienta, no parecía usable para trabajo de ingeniería serio, y entonces se sacrifican otros factores que afectan la gestión del historial
Estoy acostumbrado principalmente a Gerrit; el modelo básico es razonable, pero tiene muchas asperezas y también problemas de rendimiento
Pensándolo de pronto, creo que nunca he usado una herramienta de revisión que realmente me guste. Me pregunto si la industria simplemente está aguantando sin una herramienta adecuada
Según recuerdo, GitLab era un poco mejor que GitHub, pero no recuerdo los detalles
Me pregunto si la respuesta a “¿qué es Forgejo?” sería algo como: “Forgejo es una forja de software ligera que puede alojarse por cuenta propia. Es fácil de instalar, requiere poco mantenimiento y hace lo que tiene que hacer”
Claro que no todo tiene que adaptarse al inglés, y dicen que es esperanto, pero como otras partes del sitio no lo son, la mayoría no lo interpretará así