Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

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

Ver códigoProblemas y ayudaRepositorio ↗
00

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.

CASOS DE USO
  • 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
PUNTOS DESTACADOS
  • 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
PRECAUCIONES
  • 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
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU2 vCPUrecomendación inicial
MEMORIA2 GBRAM estimada
DISCO10 GBalmacenamiento base
COMPLEJIDADmediumnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Listo para automatizar

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.

✓Dockerfile
✓Compose
✓One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Next.jsGo
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
9001
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

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.