Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

koochooloo

Acortador de URLs auto-hospedado en Go con panel admin embebido, soporte para SQLite/PostgreSQL/MySQL, OIDC SSO y control de acceso basado en roles (RBAC). Proyecto de referencia para arquitectura Go.

Ficha actualizada 24 sept 2026, 3:53 · upstream 24 sept 2026, 3:26 · release sin release detectada

Ver códigoProblemas y ayudaRepositorio ↗
00

Qué es koochooloo

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

koochooloo es un servicio de acortamiento de URLs desarrollado en Go que permite crear enlaces cortos personalizados con seguimiento de clics, fechas de expiración y redirecciones HTTP 302. Incluye panel administrativo embebido construido con React SPA integrado mediante go:embed, eliminando la necesidad de servicios externos o herramientas Node.js para el despliegue.

El sistema implementa control de acceso basado en roles (RBAC) con tres niveles jerárquicos: user, admin y superadmin. Soporta autenticación local con JWT y federación mediante OIDC/OAuth2 contra proveedores como Keycloak. La arquitectura sigue patrones Go modernos con fx para inyección de dependencias, koanf para configuración tipada, GORM para persistencia y OpenTelemetry para observabilidad.

El proyecto incluye manifestaciones Kubernetes, docker-compose y scripts de despliegue distribuidos en deployments/. Soporta métricas Prometheus en puerto separado (:8080) y logging estructurado con zap. La configuración es multicapa: valores por defecto → archivo TOML → variables de entorno con prefijo koochooloo_.

CASOS DE USO
  • Acortar enlaces para campañas de marketing con seguimiento de clics y expiración programada
  • Implementar autenticación federada OIDC en entornos corporativos sin panel público de registro
  • Proyecto de referencia para aprender arquitectura Go moderna con fx, koanf y GORM
  • Servicio interno de acortamiento que reemplaza soluciones comerciales como bit.ly o TinyURL
PUNTOS DESTACADOS
  • Panel admin React embebido en binario Go sin necesidad de Node.js para despliegue
  • Soporte nativo para SQLite, PostgreSQL y MySQL mediante GORM con configuración multicapa
  • Autenticación dual: JWT local con bcrypt y OIDC federado con mapeo de roles desde claims
  • API REST completa documentada en OpenAPI con endpoints públicos y administrativos separados
PRECAUCIONES
  • No incluye Dockerfile ni docker-compose nativo según análisis técnico, aunque README menciona deployments/docker-compose.yml
  • Requiere 4 núcleos CPU y 4GB RAM mínimo para despliegue recomendado
  • Sin registro público de usuarios: cuentas bootstrapadas exclusivamente vía CLI
  • Métricas Prometheus en puerto separado (:8080) que debe exponerse manualmente
VISUAL

Capturas del proyecto

Imágenes reales detectadas en la documentación del repositorio.

koochooloo — self-hosted URL shortener written in Go
01

Perfil de infraestructura

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

CPU4 vCPUrecomendación inicial
MEMORIA4 GBRAM estimada
DISCO30 GBalmacenamiento base
COMPLEJIDADhighnivel de operación
02

Despliegue detectado

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

Despliegue manual

Desplegar con docker-compose -f deployments/docker-compose.yml up -d o compilando binario Go directamente. Configurar database.dialect y database.url según motor elegido. Para producción, establecer auth.jwt_secret fuerte y exponer :8080/metrics en red interna. Inicializar superadmin con ./koochooloo user create --username root --superadmin.

—Dockerfile
—Compose
—One-click
03

Stack y dependencias

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

FRAMEWORKS
ReactNode.jsGo
SERVICIOS
PostgreSQLMySQLNATS
BASES DE DATOS
PostgreSQLMySQL
PUERTOS
1378
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.