Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

pulshealth

PulsHealth es una solución open source para sincronizar datos de Apple Health a un backend auto-alojado controlado por el usuario. Incluye una app iOS nativa en Swift y un stack de servidor basado en Go, PostgreSQL y TimescaleDB.

Ficha actualizada 24 sept 2026, 1:52 · upstream 24 sept 2026, 1:24 · release v0.2.0

Ver códigoProblemas y ayudaRepositorio ↗Sitio oficial
00

Qué es pulshealth

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

PulsHealth es una herramienta open source diseñada para sincronizar el contenido de Apple Health hacia un servidor backend que el usuario controla completamente. La solución consta de dos partes principales: una aplicación nativa iOS desarrollada en Swift (incluida como paquete embebible) y un stack de servidor de referencia auto-alojado. El sistema lee datos de HealthKit mediante consultas ancladas y streams en tiempo real, enviando los datos comprimidos en formato NDJSON a un endpoint HTTP configurado por el usuario.

El backend de referencia se ejecuta sobre una arquitectura robusta que incluye PostgreSQL 17 con TimescaleDB para series temporales, un servidor de ingestión en Go y una API de producto con documentación OpenAPI. El ecosistema también proporciona visualizadores web en Next.js, dashboards preconfigurados en Grafana y un servidor MCP (Model Context Protocol) que permite a asistentes de IA como Claude o Cursor consultar métricas directamente desde los datos locales sin exponerlos externamente.

Es importante destacar que el backend se encuentra en fase pre-lanzamiento y requiere conocimientos técnicos para su despliegue, típicamente mediante Docker Compose. La sincronización soporta tanto un repleno histórico completo como actualizaciones continuas de casi tiempo real. El proyecto enfatiza la privacidad y el control de datos, advirtiendo que las copias de seguridad son opcionales y desactivadas por defecto hasta su configuración manual.

CASOS DE USO
  • Visualización de métricas de salud en dashboards personalizados con Grafana.
  • Análisis de datos históricos mediante consultas SQL directas o notebooks Python.
  • Integración con asistentes de IA (Claude, Cursor) para responder preguntas sobre el historial de actividad.
  • Desarrollo de aplicaciones propias que embeben el paquete Swift PulsHealthSync.
  • Monitorización en tiempo real del progreso de sincronización y estado de los datos.
PUNTOS DESTACADOS
  • Arquitectura auto-alojada con control total sobre la infraestructura y los datos.
  • Paquete Swift embebible sin dependencias externas para integración en otras apps iOS.
  • Protocolo de sincronización NDJSON idempotente y comprimido para eficiencia.
  • Servidor MCP integrado que habilita consultas estructuradas a modelos de IA locales o remotos.
  • Soporte nativo para repleno histórico (backfill) y actualizaciones continuas.
  • Documentación OpenAPI 3.1 completa para la API de producto y el protocolo de sincronización.
PRECAUCIONES
  • El protocolo de sincronización v1 es joven y puede requerir reportes de brechas o aclaraciones.
  • Las copias de seguridad están desactivadas por defecto y deben configurarse manualmente.
  • El despliegue del servidor requiere conocimientos avanzados de Docker y Linux/macOS.
  • La aplicación iOS requiere equipo Apple Developer para funcionalidades de entrega en segundo plano.
  • Los datos se envían a texto plano (HTTP) en redes locales sin TLS, requiriendo proxy seguro para acceso externo.
VISUAL

Capturas del proyecto

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

Dashboard after a backfill: 1.3M samples exported, per-type sync statusBackground Activity: wakes granted by iOS over the last day and weekFirst-run welcome screen: the app reads Apple Health and sends it to a server you runA type
01

Perfil de infraestructura

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

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

Despliegue detectado

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

Despliegue manual

Despliegue con `docker compose up -d` tras ejecutar `scripts/bootstrap.sh`. Es crítico configurar la zona horaria (`--time-zone`) coincidiendo con el dispositivo iOS para evitar errores de agrupación diaria. Para redes locales, usar `--lan` (HTTP sin TLS) es aceptable en redes controladas; para acceso externo, implementar un proxy TLS o Tailscale. Los backups deben activarse explícitamente mediante el perfil `backup`. Actualizar con `git pull && make pull up`.

—Dockerfile
—Compose
—One-click
03

Stack y dependencias

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

FRAMEWORKS
Next.jsPython
SERVICIOS
PostgreSQLS3/MinIO
BASES DE DATOS
PostgreSQL
PUERTOS
30013000250
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.