git-sync
Sincronizador de repositorios Git desde servidores autoalojados (Forgejo, Gitea, GitLab, etc.) hacia GitHub en tiempo real mediante webhooks y polling. Binario estático en Go que consume ~11 MB RAM en idle.
Ficha actualizada 27 sept 2026, 17:08 · upstream 25 sept 2026, 14:14 · release v1.0.0
Qué es git-sync
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
git-sync es una herramienta de sincronización bidireccional diseñada para mantener repositorios Git entre servidores autoalojados (Forgejo, Gitea, GitLab, Gogs, GitBucket, OneDev, Bitbucket) y GitHub al día. Funciona como un binario estático compilado en Go que no requiere cron ni dependencias de runtime, solo la herramienta git instalada.
El sistema detecta cambios mediante webhooks del servidor origen y polling periódico cada 5 segundos por defecto. Soporta operaciones instantáneas para pushes, creación/eliminación de repositorios, y cambios de visibilidad o descripción. La sincronización es unidireccional desde el servidor origen hacia GitHub: los cambios hechos directamente en GitHub se sobrescriben.
La instalación soporta Linux (systemd), Windows (scheduled tasks) y macOS (launchd o Docker). Incluye scripts para crear usuarios, configurar servicios de sistema y gestionar firewalls. Soporta múltiples arquitecturas: amd64, arm64, armv7.
- Migrar repositorios desde un servidor Git autoalojado a GitHub manteniendo la historia completa
- Sincronizar repositorios entre múltiples servidores Git y GitHub para redundancia
- Automatizar el backup de repositorios Git en servidores internos hacia GitHub público
- Unificar flujos de trabajo entre equipos que usan GitLab/Gitea y colaboradores externos en GitHub
- Binario estático en Go sin dependencias de runtime, solo requiere git instalado
- Webhooks + polling híbrido garantiza sincronización incluso si un webhook falla
- Soporta más de 10 servidores Git autoalojados con webhooks probados en producción
- Gestión automática de tokens y creación de webhooks por repositorio o sistema
- Filtrado por topics, organizaciónes y exclusión de repositorios privados
- Operaciones atómicas para renombrar repositorios manteniendo estrellas y enlaces
- No sincroniza pull requests, issues, wikis, releases ni objetos LFS
- Cambios en GitHub hechos directamente se sobrescriben con la copia del origen
- Repositorios eliminados del origen requieren confirmación explícita antes de borrar en GitHub
- Latencia de 2-8 segundos para sincronización dependiendo del servidor y método usado
- Bitbucket Server/Data Center solo experimental sin licencia oficial
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Requiere git 2.32+ instalado. En Docker usar listen.host=0.0.0.0 y configurar public_url con la dirección del servidor Git. Tokens: GITSYNC_SOURCE_TOKEN (origen), GITSYNC_GITHUB_TOKEN (destino con scopes repo, delete_repo). El webhook necesita puerto 9001 accesible desde el servidor Git. En Linux usar gitsync install para systemd service; en Windows scheduled task como SYSTEM. Logs en journalctl o archivo según plataforma.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.