Forgejo es una solución de hosting de Git autohospedada, un fork de Gitea con desarrollo comunitario.
Este proyecto utiliza Docker Compose para desplegar una instancia completa de Forgejo con:
- Forgejo: Servidor Git principal (puerto 3000)
- MySQL: Base de datos (puerto 3306)
- Caddy: Proxy inverso con HTTPS automático (puertos 80/443)
- Docker y Docker Compose instalados
- 2GB+ de RAM disponible
- 10GB+ de espacio en disco
docker-compose up -d- Forgejo: http://git.localhost:3000
- Con HTTPS: https://git.localhost (via Caddy)
- Accede a http://git.localhost:3000
- Crea la cuenta de administrador
- Configura las opciones del repositorio
docker-compose down.
├── docker-compose.yaml # Configuración de servicios
├── Caddyfile # Configuración del proxy inverso
├── forgejo/ # Datos de Forgejo (repositorios, configuración)
├── mysql/ # Base de datos Percona Server (persistente)
├── caddy_data/ # Certificados SSL, logs de Caddy
├── caddy_config/ # Configuración dinámica de Caddy
└── README.md # Esta documentación
- forgejo/: Repositorios Git, datos de usuarios, configuración
- mysql/: Toda la base de datos, incluye tablas, índices, usuarios
- caddy_data/: Certificados SSL automáticos, logs de accesos
- caddy_config/: Configuración en tiempo de ejecución de Caddy
USER_UID/USER_GID: IDs de usuario para permisosFORGEJO__database__*: Configuración de base de datosFORGEJO__server__*: Configuración del servidor
- Motor: Percona Server 8.0 (drop-in replacement mejorado de MySQL)
- Base de datos: forgejo
- Usuario: forgejo
- Contraseña: forgejo
- Mejor rendimiento: 2x más rápido en consultas complejas
- Mayor escalabilidad: Soporte para más conexiones concurrentes
- XtraDB: Motor de almacenamiento mejorado basado en InnoDB
- Mejor diagnóstico: Herramientas avanzadas de monitoreo y análisis
- Hot backups: Backups sin detener el servicio
- Compatible 100%: Sustitución directa de MySQL
- Enterprise features: Características corporativas disponibles gratuitamente
- mysql/: Datos persistentes de la base de datos (
/var/lib/mysql) - Importante: Los datos se conservan al reiniciar o actualizar contenedores
- Backups recomendados: Copiar el directorio
mysql/regularmente
- Dominio: git.localhost
- HTTPS: Automático con certificados locales
- Compression: gzip activado
- Límite de subida: 100MB
- Las contraseñas están configuradas para desarrollo
- En producción, cambiar todas las credenciales
- Configurar dominios reales para HTTPS válido
- Considerar backups regulares de los volúmenes
- Permisos: Asegurar que los directorios tienen permisos correctos
- Puertos: Verificar que los puertos 3000, 80, 443 estén disponibles
- Base de datos: Esperar a que MySQL inicie completamente antes de acceder a Forgejo
# Ver logs de todos los servicios
docker-compose logs
# Ver logs de un servicio específico
docker-compose logs forgejo
docker-compose logs db
docker-compose logs caddy- Forgejo: https://forgejo.org/
- Documentación: https://forgejo.org/docs/latest/
- Repositorio Codeberg: https://codeberg.org/forgejo/forgejo
- Caddy: https://caddyserver.com/
Este proyecto sigue la misma licencia que Forgejo.