Об этом проекте
Allos — это самодостаточное приложение для ведения медицинских записей, отслеживания и коучинга, ориентированное на отдельных пользователей, домохозяйства и ухаживающих. Его название отсылает к аллостазису — способу организма поддерживать стабильность через изменения. Заявленная цель проекта — собрать личную информацию о здоровье в одну приватную хронологию, а не разбрасывать её по сторонним сервисам. Данные хранятся в собственной базе данных SQLite оператора, большая часть аналитики выполняется локально по встроенным наборам данных, а функции ИИ являются опциональными.
Область отслеживания
Приложение охватывает ежедневное здоровье (симптомы, настроение, сон, жизненные показатели, измерения тела, питание, практики благополучия), тренировки (сила, кардио, спорт, рутины, цели, контекст восстановления), медицинскую историю (состояния, аллергии, процедуры, иммунизации, приёмы, планы ухода, семейный анамнез), лабораторные исследования и документы (биомаркеры, референтные диапазоны, сканы, PDF, импорт записей), а также лекарства и добавки (расписания, история доз, пополнения, соблюдение режима, локально проверяемые предупреждения о взаимодействиях). Поддержка домохозяйства включает отдельные профили, доступ для ухаживающих, предоставление прав только для чтения и перекрёстные виды профилей, при этом профили не требуют отдельного входа. Данные могут поступать через Health Connect, Strava, Oura, экспорт Fitbit, Withings, календарные ленты и импорты на основе FHIR/CCD, такие как MyChart. Напоминания могут доставляться через Telegram, Web Push, Home Assistant или электронную почту, а всё можно экспортировать в форматах JSON, CSV, FHIR или загруженных файлов.
Принципы дизайна
В README перечислены пять: локально по умолчанию, внешние сервисы — опционально; здоровье представлено как управление, а не как оценка, поэтому показываются исходные сигналы вместо одного выдуманного показателя здоровья; результаты носят информационный характер и ссылаются на источники, а не являются предписывающими; спокойный тон, за исключением вопросов безопасности, при этом напоминания о безопасности лекарств обрабатываются более тщательно, чем другие наблюдения; и контроль пользователя, означающий, что ручные исправления сохраняются после синхронизации, приоритеты остаются в собственности пользователя, а данные можно экспортировать.
Развёртывание
Рекомендуемый путь — Docker Compose. Он запускает веб‑приложение и небольшую службу планировщика для уведомлений и резервных копий. Операторы клонируют репозиторий, копируют .env.example в .env и задают минимум пароль администратора и абсолютный путь DATA_DIR вне проверки (по умолчанию ./data). Первый пароль администратора действует только при создании первого входа. Затем стек запускается командой docker compose up -d --pull always и доступен на порту 3000. Обновления скачивают опубликованный образ из GitHub Container Registry; конкретную сборку можно зафиксировать через переменную IMAGE. Миграции базы данных выполняются автоматически при старте, а база копируется в data/backups/pre-migration перед этим, причём контейнер отказывается запускаться, если копия не может быть создана.
Запуск из исходного кода
Требуется Node.js 24 (зафиксировано в .nvmrc), npm и необходимые для сборки нативные зависимости better‑sqlite3; достаточно выполнить npm ci и npm run dev, после чего база SQLite будет создана по пути data/allos.db. Команда seed может загрузить несколько недель синтетических примерных данных, однако в README предупреждается не запускать её на экземпляре, содержащем реальные записи.
Люди и доступ
Администраторы создают профили отслеживаемых людей, логины для тех, кто входит в систему, и предоставляют права чтения/записи или только чтения к выбранным профилям — всё в разделе Settings, People & access. Администраторы имеют доступ ко всем профилям, поэтому их запись там определяет, какие профили получат напоминания; уведомления являются опциональными для каждого профиля.
Данные, резервные копии и конфиденциальность
Постоянное состояние в каталоге DATA_DIR включает базу allos.db, загруженные медицинские файлы, журналы, проверенные резервные копии и предварительные копии перед миграцией. Встроенная ночная снимок делит том с живой базой, поэтому в README рекомендуется настроить BACKUP_DEST_DIR как вторую смонтированную директорию и проверять её в разделе Settings. Снимки не содержат загруженные файлы, которые отдельно дублируются функцией резервного копирования вне тома. Опциональные сервисы получают только те данные, которые необходимы для включённой функции: можно настроить конечную точку, совместимую с Anthropic (в том числе самодостаточную через AI_BASE_URL), а SMTP предоставляет приглашения для входа, сброс паролей и опциональные уведомления по электронной почте, которые по умолчанию не содержат контента, поэтому никакие данные о здоровье не попадают в почтовый ящик.
Технологии и лицензия
Стек состоит из Next.js 16 с маршрутизатором App Router и Server Actions, React 19, TypeScript, SQLite через better‑sqlite3, Tailwind CSS и Recharts, с опциональной поддержкой ИИ, совместимой с Anthropic. Проверки разработки включают форматирование, линтинг, проверку типов, юнит‑тесты, отдельные интеграционные тесты SQLite, end‑to‑end тесты Playwright против изолированных seeded баз данных и сборку production; contributors направляются в AGENTS.md для ознакомления с архитектурой, областью данных, миграциями и соглашениями тестирования. Allos распространяется под лицензией GNU Affero General Public License v3.0 (AGPL-3.0-only).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.