Kindred
Kindred es un CRM personal auto-alojado para gestionar contactos, interacciones, regalos y deudas. Utiliza FastAPI y React con sincronización CardDAV y búsqueda full-text.
Ficha actualizada 26 sept 2026, 2:37 · upstream 26 sept 2026, 2:35 · release v0.2.122
Qué es Kindred
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Kindred es una herramienta de gestión de relaciones personales diseñada para ser auto-alojada en entornos como homelabs. Permite a los usuarios mantener un registro detallado de contactos, incluyendo historiales de interacciones (llamadas, mensajes), recordatorios inteligentes, seguimiento de regalos y deudas pendientes, así como un diario personal.
La arquitectura se basa en FastAPI para el backend, React con TanStack Router para el frontend, PostgreSQL como base de datos principal, Redis para la cola y Meilisearch para la búsqueda full-text. Incluye soporte nativo para CardDAV, lo que permite sincronizar contactos con dispositivos móviles estándar sin necesidad de aplicaciones propietarias.
El proyecto se despliega mediante Docker Compose y utiliza Traefik como inversor proxy. La gestión de secretos se realiza a través de sops y age para entornos de producción, garantizando la seguridad de las credenciales. Es importante destacar que el software está disponible bajo Elastic License 2.0, lo que permite su uso personal pero restringe su comercialización como servicio.
- Gestión privada de contactos con mapas de relaciones y etiquetas para organizar redes sociales.
- Recordatorios automáticos de cumpleaños, aniversarios e interacciones pasadas para mantener el contacto.
- Seguimiento financiero informal entre personas, registrando quién debe dinero a quién o regalos intercambiados.
- Sincronización bidireccional de contactos con teléfonos móviles mediante protocolo CardDAV estándar.
- Diario personal integrado para reflexionar sobre las interacciones y eventos del día a día.
- Arquitectura moderna con frontend React y backend FastAPI optimizado para rendimiento.
- Búsqueda full-text potente utilizando Meilisearch para consultas rápidas en grandes volúmenes de datos.
- Soporte nativo para CardDAV, integrándose con clientes móviles sin desarrollo adicional.
- Sistema de colas robusto con Redis y ARQ para tareas asíncronas como indexación de búsqueda.
- Despliegue simplificado mediante Docker Compose con soporte para entornos de producción y desarrollo.
- Licencia clara (Elastic License 2.0) que define el uso personal versus comercial sin ambigüedades.
- La licencia Elastic License 2.0 impide ofrecer la herramienta como un servicio SaaS o hosting gestionado para terceros sin licencia comercial.
- No incluye Dockerfile directo, requiriendo el uso de `docker compose` para la orquestación de servicios.
- La gestión de secretos en producción requiere configuración manual con sops y age, no siendo totalmente automatizado por defecto.
- El despliegue inicial requiere ejecución de migraciones Alembic y creación del superusuario desde variables de entorno.
- Aislamiento estricto entre entornos (Prod/Dev) que impide compartir volúmenes o credenciales para evitar conflictos.
Capturas del proyecto
Imágenes reales detectadas en la documentación del repositorio.
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.
Ejecutar `docker compose up -d --build` para producción. Configurar `.env.sops` con credenciales cifradas antes del arranque. El primer inicio ejecutará migraciones Alembic y creará el usuario admin desde `FIRST_SUPERUSER`. Asegurar acceso a la red Traefik y verificar puertos 5173, 8000 y 7700.
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.







