About this project

Allos is a self-hosted health record, tracker and coaching application aimed at individuals, households and caregivers. Its name refers to allostasis, the body's way of maintaining stability through change. The project's stated goal is to gather personal health information into one private timeline rather than scattering it across third-party services. Data is stored in the operator's own SQLite database, most analysis runs locally against bundled datasets, and AI features are optional. Scope of tracking The app covers daily health (symptoms, mood, sleep, vitals, body measurements, nutrition, wellness practices), training (strength, cardio, sports, routines, goals, recovery context), medical history (conditions, allergies, procedures, immunizations, appointments, care plans, family history), labs and documents (biomarkers, reference ranges, scans, PDFs, record imports), and medications and supplements (schedules, dose history, refills, adherence, locally checked interaction warnings). Household support includes separate profiles, caregiver access, read-only grants and cross-profile views, and profiles do not each require a login. Data can arrive through Health Connect, Strava, Oura, Fitbit exports, Withings, calendar feeds and FHIR/CCD-based imports such as MyChart. Reminders can be delivered over Telegram, Web Push, Home Assistant or email, and everything can be exported as JSON, CSV, FHIR or uploaded files. Design principles The README lists five: local by default, with external services opt-in; health presented as steering rather than scoring, so raw signals are shown instead of a single invented health score; findings that are informational and cite sources rather than prescriptive; a calm tone unless safety matters, with medication safety reminders handled more carefully than other observations; and user control, meaning manual corrections survive syncs, priorities stay user-owned and data can be exported. Deployment Docker Compose is the recommended path. It starts the web app plus a small scheduler service for notifications and backups. Operators clone the repository, copy .env.example to .env, and set at minimum an admin password and an absolute DATA_DIR outside the checkout (the default is ./data). The first admin password only applies when the first login is created. The stack is then started with docker compose up -d --pull always and reached on port 3000. Updates pull the published image from GitHub Container Registry; a specific build can be pinned via the IMAGE variable. Database migrations run automatically at startup, and the database is copied to data/backups/pre-migration first, with the container refusing to start if that copy cannot be made. Running from source requires Node.js 24 (pinned in .nvmrc), npm and the native build prerequisites for better-sqlite3; npm ci and npm run dev are enough, with the SQLite database created at data/allos.db. A seed command can load several weeks of synthetic sample data, which the README warns against running on an instance holding real records. People and access Administrators create profiles for the people tracked, logins for those who sign in, and grants giving read/write or read-only access to selected profiles, all under Settings, People & access. Admins can reach every profile, so their entry there selects which profiles' reminders reach them; notifications are opt-in per profile. Data, backups and privacy Persistent state under DATA_DIR includes allos.db, uploaded medical files, logs and verified backups plus pre-migration copies. The built-in nightly snapshot shares a volume with the live database, so the README recommends configuring BACKUP_DEST_DIR as a second mounted location and verifying it from Settings. Snapshots do not include uploaded files, which the off-volume backup feature mirrors separately. Optional services receive only the data required for the feature being enabled: an Anthropic-compatible endpoint can be configured (including a self-hosted one via AI_BASE_URL), and SMTP provides login invitations, password resets and opt-in notification email that is content-free by default so no health details reach an inbox. Technology and license The stack is Next.js 16 with the App Router and Server Actions, React 19, TypeScript, SQLite through better-sqlite3, Tailwind CSS and Recharts, with optional Anthropic-compatible AI. Development checks include formatting, lint, typecheck, unit tests, separate SQLite integration tests, Playwright end-to-end tests against isolated seeded databases, and a production build; contributors are pointed to AGENTS.md for architecture, data scoping, migration and testing conventions. Allos is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-only).