The core open-source platform is a monorepo that consists of:
api-gateway: A central Express.js / TypeScript API that acts as the source of truth, funneling all data into Postgres using Drizzle ORM.ui-core: A fully responsive, modern Next.js + Tailwind CSS Family Dashboard to view your loved one's health data. Includes real-time vitals streaming, IoT alert management, and Voice Sentiment Trend Analysis.packages/wearables: SDKs to connect Apple HealthKit, Garmin, and Fitbit streams.packages/voice: SDKs to connect Voice AI platforms (Retell, Vapi) and synthesize photorealistic speech (OpenAI TTS).packages/iot: SDKs to integrate smart home sensors, fall mats, and BLE devices via MQTT.
The absolute easiest way to get Agevine running on your own server (or locally) is using Docker Compose. It automatically spins up the PostgreSQL database, the Node.js API Gateway, and the Next.js Dashboard.
# Clone the repository
git clone https://github.com/agevine/agevine.git
cd agevine
# Boot up the entire stack
docker-compose up -dThat's it!
- Your dashboard is now live at
http://localhost:3001 - Your API Gateway is now live at
http://localhost:3005 - Your Docs is now live at
http://localhost:3002
Default Admin Password: agevine
Agevine relies on a powerful "push" architecture. Instead of pulling from 10 different fragmented APIs, Agevine provides three simple NPM packages that you can drop into any app to push data directly into your self-hosted dashboard.
graph TD;
A[Apple Watch / Fitbit] -->|"@agevine/wearables"| C(Agevine API Gateway);
B[Retell AI / Vapi AI Caller] -->|"@agevine/voice"| C;
F[Smart Sensors / Fall Mats] -->|"@agevine/iot"| C;
C -->|"Drizzle ORM"| D[(PostgreSQL)];
D --> E[Agevine Next.js Dashboard];
Agevine comes with three MIT-licensed Node.js SDKs for integrating your devices.
Use this SDK in your companion apps to stream live IoT vitals. It includes OAuth adapters for Oura/Whoop and native Swift/Kotlin modules for direct Apple HealthKit integrations.
import { AgevineClient } from '@agevine/wearables';
const client = new AgevineClient({ endpoint: 'http://localhost:3005' });
// REST Sync
await client.syncVitals({ patientId: 1, heartRate: 72, steps: 3500 });
// Real-Time WebSocket Streaming
client.startStream(1, () => client.streamData({ patientId: 1, heartRate: 75 }));Use this SDK in your AI Voice webhook handlers (like Retell AI or Bland AI).
import { AgevineVoiceClient } from '@agevine/voice';
const client = new AgevineVoiceClient({ endpoint: 'http://localhost:3005' });
await client.logCall({ patientId: 1, sentimentScore: 85, summary: "Feeling well." });Use this SDK to route MQTT messages from your smart home hubs into Agevine.
import { IOTClient } from '@agevine/iot';
const client = new IOTClient({ endpoint: 'http://localhost:3005' });
await client.logSensorEvent({ patientId: 1, deviceType: "motion_sensor", reading: 1 });For detailed guides on how to build custom hardware integrations or deploy Agevine to production on AWS/Render, check out our Documentation Site.
The Agevine core platform (Dashboard and API) is licensed under AGPLv3.
The Agevine SDKs (@agevine/voice and @agevine/wearables) are licensed under MIT so you can safely integrate them into proprietary applications.
