Saltar a contenido

Descripción general del stack tecnológico

KanjiIQ está construido con una filosofía de autoalojamiento y código abierto primero. Cada componente se ejecuta en infraestructura que controlamos, sin dependencia de proveedores.

Resumen de tecnologías

Capa Tecnología Propósito
Frontend Flutter Web Framework de UI multiplataforma
Backend Dart Frog Servidor REST API ligero
Base de datos PostgreSQL 15 Almacén de datos principal con JSONB
Traducción OpenAI API Traducción dinámica de contenido
Orquestación k3s (Kubernetes) Orquestación de contenedores
Ingress Traefik Proxy inverso, terminación TLS, limitación de velocidad
TLS cert-manager + Let's Encrypt Gestión automatizada de certificados SSL
CI/CD Forgejo Actions Automatización de compilación, publicación y despliegue
Registro de contenedores Forgejo Container Registry Almacenamiento de imágenes Docker
Control de versiones Forgejo (fork de Gitea) Plataforma Git autoalojada
Alojamiento Hetzner Dedicated Server Proveedor de infraestructura
Administración Flutter Web Panel de administración para gestión de locales/analítica

¿Por qué estas elecciones?

Dart en todas partes

La decisión arquitectónica más distintiva es usar Dart tanto para el frontend como para el backend:

  • Flutter (Dart) para el frontend
  • Dart Frog (Dart) para el backend

Esto permite:

  • Definiciones de modelos compartidas entre cliente y servidor
  • Experiencia en un solo lenguaje para todo el equipo
  • Herramientas consistentes (analizador de Dart, formateador, framework de pruebas)
  • Potencial para paquetes de lógica de negocio compartida

Stack autoalojado

KanjiIQ evita deliberadamente los servicios gestionados en la nube en favor de alternativas autoalojadas:

Servicio gestionado KanjiIQ usa Beneficio
GitHub/GitLab Forgejo Control total, sin precio por usuario
Docker Hub Forgejo Container Registry Co-ubicado con el código fuente
GitHub Actions Forgejo Actions Misma sintaxis YAML, runners autoalojados
AWS RDS PostgreSQL en k8s Sin cargos por hora de base de datos
AWS ALB Traefik Integrado en k3s, gratuito
AWS ACM cert-manager + Let's Encrypt Certificados TLS gratuitos

Eficiencia de costos

Todo el stack de producción se ejecuta en un único servidor dedicado de Hetzner, manteniendo los costos mensuales predecibles y significativamente más bajos que los servicios gestionados equivalentes en la nube. Consulta Infraestructura para más detalles.

Principios de arquitectura

  1. Contenedores primero: Cada componente está contenerizado con compilaciones Docker multi-etapa
  2. Infraestructura como código: Todos los manifiestos de Kubernetes están bajo control de versiones
  3. Ejecución sin root: Todos los contenedores se ejecutan como UID 1000 por seguridad
  4. Health checks: Cada contenedor tiene sondas de liveness y readiness
  5. Capacidad offline: El frontend funciona sin internet mediante caché SQLite local
  6. Consciente de la privacidad: Analítica compatible con GDPR/CCPA con anonimización automática