cgit: un servidor Git ligero
Cuando hablamos de alojar repositorios Git solemos pensar en gigantes como GitHub o GitLab, o en soluciones autoalojadas como Gitea. Todos ellos ofrecen un ecosistema completo con interfaz web moderna, gestión de usuarios, pull requests, issues, CI/CD y muchas otras funcionalidades.
Sin embargo, existe una alternativa mucho más minimalista y clásica: cgit., de la que os hablaré hoy.
La idea de utilizar esta herramienta, es mi necesidad de tener un pequeño repositorio local, con git. Pero no quería utilizar nada grande ni complicado, ya que será únicamente para mi. Además, mi intención es desplegar como contenedor en Docker, por lo que más adelante os enseñaré el fichero YAML que he utilizado.
Logo del proyecto
¿Qué es cgit?
cgit es un frontend web para repositorios Git, escrito en C, que ofrece una interfaz sencilla y extremadamente rápida para navegar por repositorios directamente desde un navegador.
Algunas de sus características principales:
-
Ligereza: consume muy pocos recursos, ideal para servidores pequeños o incluso una Raspberry Pi.
-
Velocidad: al estar escrito en C, la carga de páginas y listados de commits es prácticamente instantánea.
-
Interfaz limpia: proporciona vistas de ramas, commits, diffs y árbol de ficheros sin adornos extra.
-
Licencia GPLv2: software 100% libre.
Lo importante: cgit no es un gestor de repositorios completo, es solo una interfaz de lectura.
¿Qué no es cgit?
A diferencia de GitHub, GitLab o Gitea, cgit no incluye:
- Registro y gestión de usuarios.
- Pull requests o merge requests.
- Issues o gestión de proyectos.
- CI/CD ni pipelines de despliegue.
- Sistema de permisos a nivel web.
- Es decir, no busca sustituir GitHub, sino ser un visor rápido y eficiente de repositorios Git.
Mi experiencia con cgit
Bueno, como os he comentado al principio he desplegado cgit en Docker, para ello he utilizado esta configuración, por si os puede servir:
version: "3.0" services: cgit: image: joseluisq/alpine-cgit:latest container_name: cgit restart: always ports: - "8087:80" environment: - CGIT_CONFIG=/etc/cgit/cgitrc volumes: - ./cgit/cgitrc:/etc/cgit/cgitrc - ./cgit/repos:/var/lib/git
Además, he montado es estructura de directorios, antes del despliegue:
. ├── cgit -> /mnt/docker/cgit └── docker-compose.yml
Por lo que todo se guardará en mi cabina Synology.
Una cosa importante, en la página de la imagen utilizada: joseluisq/alpine-cgit, utiliza para guardar los proyectos la ruta «/srv/git«, en cambio, yo he utilizado la ruta «/var/lib/git«, por lo que he tenido que modificar el fichero de configuración «./cgit/cgitrc«
Una vez desplegado el aspecto es el siguiente:
Aspecto vía web de cgit
Ahora toca «darle a la tecla» y empezar a crear proyectos 🙂
Espero que os haya parecido interesante. ¿Habéis trabajado con cgit o con alguna herramienta similar? Me gustaría saber vuestras opiniones. ¡Comentar es gratis!
Para saber más: cgit about
Comentarios Recientes