openGym: self-hosted трекер тренировок без подписок
Обзор openGym — бесплатного self-hosted трекера тренировок с картой мышц, импортом из Hevy/Strong/FitNotes и passkey-авторизацией.
openGym: self-hosted трекер тренировок без подписок и чужих серверов
«Ваши тренировки. Ваш вес. Ваши данные.» — девиз проекта, который звучит просто, но за ним стоит полноценное приложение уровня коммерческих конкурентов.
Что такое openGym и для кого он создан
Большинство фитнес-приложений хранят ваши данные на своих серверах и подталкивают к подписке — openGym запускается на вашем собственном сервере, держит данные в папке, которую вы контролируете, и открыт для форков.
При этом он ведёт себя как современное приложение: устанавливается на главный экран, поддерживает вход по passkey, работает офлайн и синхронизируется между телефоном и ноутбуком. Никаких сторонних аккаунтов, никаких подписок, рекламы и телеметрии.
Проект создан разработчиком Duarte Santos и распространяется под лицензией AGPL-3.0. Первый публичный релиз состоялся 20 июля 2026 года. На GitHub проект уже набрал более 3 100 звёзд и 556 форков, что говорит о быстро растущем сообществе.
Кому подойдёт:
- Разработчикам и техническим пользователям, которые умеют запустить Docker
- Людям, озабоченным приватностью и суверенитетом над личными данными
- Тем, кто уже использует FitNotes, Strong или Hevy и хочет перейти на self-hosted решение
- Небольшим командам или семьям, которые хотят общий тренировочный сервер
Ключевые возможности
🗓️ Планирование и библиотека упражнений
Система позволяет назначить отдельную рутину на каждый день недели из библиотеки 1 324 упражнений с анимированными демонстрациями — с фильтрацией по мышцам на карте тела и по имеющемуся оборудованию. Сразу доступны четыре готовых плана: Push/Pull/Legs, Upper/Lower, Full Body и 5×5 — как обычные редактируемые рутины.
🏋️ Логирование тренировок
Поддерживаются суперсеты, разминочные сеты, дроп-сеты, упражнения на время (планки, вис, переноски), кардио по времени и скорости, а также настраиваемый отдых. Можно добавлять свои упражнения с фото, GIF или коротким видео.
Разминочные сеты помечаются отдельно и не учитываются в расчёте 1ПМ, прогрессии и карте усталости — они присутствуют в сессии, но не влияют на цифры.
🧠 Карта мышц: три режима
Это одна из самых уникальных функций openGym.
Карта мышц работает в трёх режимах:
- Balance — куда ушёл объём за неделю, месяц или всё время, включая нетренированные мышцы
- Fatigue — что ещё восстанавливается, взвешенное по близости каждого сета к максимуму, с плавным затуханием
- Strength — как давно тренировалась каждая мышца, с оценкой 1ПМ для упражнений
Усталость чувствительна к объёму и затухает плавно: тяжёлый день с 12 сетами на грудь начинается у потолка и занимает около шести дней до состояния «готов»; один-единственный сет почти не регистрируется и исчезает за два дня. Затухание происходит непрерывно с периодом полураспада 36 часов, а не сбрасывается по краю временного окна.
📈 Прогрессия и статистика
Правила прогрессии настраиваются на уровне рутины или отдельного упражнения: линейная, Greyskull LP, двойная прогрессия через видимый диапазон повторений или добавление времени. Расчёт целевого веса объясняет причину; пропущенные повторения не добавляют нагрузку, а стагнация запускает откат. Доступны расчёт 1ПМ с индивидуальной кривой, коэффициенты структурного баланса (Poliquin, Thibaudeau, ATG) и годовой тепловой граф активности.
📥 Импорт данных
Импорт поддерживается из FitNotes (Android и iOS), Strong и Hevy (CSV или напрямую через Hevy Pro API key), а также из экспорта веса Apple Health. Названия упражнений сопоставляются с библиотекой, нераспознанные становятся пользовательскими — ничего из файла не теряется. Доступен и экспорт всего в один JSON-файл в любой момент.
🔑 Авторизация и безопасность
Вход — по passkey (Face ID / Touch ID / отпечаток), данные каждого профиля синхронизируются между устройствами. Можно добавить несколько passkey или подключить новое устройство через одноразовый код или QR. При желании администратор может включить вход по паролю (выключен по умолчанию).
🤖 Опциональный AI-коуч
AI-коуч — опциональная функция, по умолчанию отключённая. Он разрабатывает тренировочный план на основе нескольких ответов пользователя и анализирует реально залогированные данные. Поддерживаются провайдеры: Anthropic, OpenAI, Gemini, любой OpenAI-совместимый эндпоинт (включая Ollama на локальной сети), а также Claude Agent SDK / Codex CLI в отдельной сборке.
🌍 Мультиязычность
Интерфейс переведён на 12 языков (EN, DE, ES, FR, IT, PT, PL, TR, RU, ZH, KO, HI), инструкции к упражнениям локализованы в 10 из них и загружаются по требованию, чтобы приложение оставалось быстрым.
Быстрый старт
Требования: Docker с плагином Compose. Установка занимает около 5 минут:
git clone https://github.com/DuarteSantos8/openGym
cd openGym
cp .env.example .env
docker compose pull # готовые образы amd64 + arm64
docker compose up -d
Первый запуск скачивает изображения и GIF упражнений (~140 МБ). После этого откройте http://localhost:8080 и создайте профиль с passkey.
Как устроено приложение
graph TD
A[Пользователь открывает PWA] --> B[Passkey / WebAuthn аутентификация]
B --> C[Профиль синхронизируется]
C --> D{Что делаем?}
D --> E[Планируем рутину]
D --> F[Ведём тренировку]
D --> G[Смотрим статистику]
E --> H[Библиотека: 1324 упражнения]
F --> I[Суперсеты / Кардио / Разминка]
F --> J[Таймер отдыха]
G --> K[Карта мышц: Balance / Fatigue / Strength]
G --> L[Хитмап активности]
G --> M[1ПМ и структурный баланс]
C --> N[Импорт: FitNotes / Strong / Hevy / Apple Health]
G --> O{AI-коуч включён?}
O -->|Да| P[Анализ данных → Предложения плана]
O -->|Нет| Q[Ручная прогрессия]
Стек технологий: React 19 + Vite (React Router, Zustand) на фронтенде, Node без фреймворка на бэкенде, nginx, Docker Compose, WebAuthn для авторизации.
Тарифы и цены
openGym полностью бесплатен: никаких подписок, аккаунтов на чужих серверах, рекламы и телеметрии. Единственная «стоимость» — это ваш сервер или VPS (от ~3–5 $ в месяц у большинства хостеров) и время на настройку.
| Статья расходов | Стоимость |
|---|---|
| Само приложение | Бесплатно (AGPL-3.0) |
| Хостинг (VPS / NAS / Raspberry Pi) | По стоимости вашей инфраструктуры |
| AI-коуч (опционально) | По тарифам вашего AI-провайдера |
| Android APK | Бесплатно |
Плюсы и минусы
| ✅ Плюсы | ❌ Минусы |
|---|---|
| Полный контроль над данными, нет телеметрии | Требует технических навыков для установки |
| Бесплатно и открытый исходный код (AGPL-3.0) | HTTPS и домен нужны для passkey с телефона |
| 1 324 упражнения с анимацией и фильтрацией | Нет нативных приложений (только PWA + APK) |
| Уникальная трёхрежимная карта мышц | Нет Apple Watch интеграции |
| Импорт из FitNotes, Strong, Hevy, Apple Health | AI-коуч требует собственный API-ключ |
| Passkey-авторизация, многопрофильность | Нет периодизации / блочного тренинга (в roadmap) |
| 12 языков, включая русский | Сторонние медиафайлы имеют спорный правовой статус |
| Опциональный AI-коуч на вашем провайдере | Нет интеграции с носимыми устройствами |
| Работает офлайн как PWA | |
| Активное сообщество, быстрые релизы |
Сравнение с альтернативами
Среди популярных коммерческих конкурентов — Strong (бесплатно / 4,99 $/мес, iOS и Android) и Hevy (бесплатно / 2,99 $/мес, iOS и Android).
| Параметр | openGym | Hevy | Strong |
|---|---|---|---|
| Цена | Бесплатно (self-hosted) | Бесплатно / $2,99/мес | Бесплатно / $4,99/мес |
| Хранение данных | Ваш сервер | Серверы Hevy | Серверы Strong |
| Телеметрия | Нет | Есть | Есть |
| Карта мышц (Fatigue/Strength) | ✅ Три режима | ❌ | ❌ |
| Импорт из других приложений | ✅ FitNotes/Strong/Hevy/AH | ✅ Ограниченный | ✅ CSV |
| AI-коуч | ✅ (на своём провайдере) | ❌ | ❌ |
| Русский язык | ✅ | ❌ | ❌ |
| Библиотека упражнений | 1 324 | 400+ | 200+ |
| Passkey-авторизация | ✅ | ❌ | ❌ |
| Открытый исходный код | ✅ AGPL-3.0 | ❌ | ❌ |
| Apple Watch | ❌ | ✅ | ✅ |
| Нативное приложение | Android APK / PWA | iOS + Android | iOS + Android |
| Сложность установки | Средняя (Docker) | Нет | Нет |
Hevy и Strong — отличные логгеры с почти одинаковым ядром: Hevy лидирует по социальным функциям и щедрости бесплатного тарифа, Strong немного полирует калькулятор блинов. Но ни один из них не даёт вам контроль над данными и не предлагает карту усталости мышц.
Вердикт
openGym — редкий случай, когда open-source проект не только не уступает коммерческим аналогам, но и превосходит их в ключевых функциях: приватность данных, карта мышц с тремя режимами, прогрессия с объяснениями, поддержка 12 языков и AI-коуч на собственной инфраструктуре.
В первом публичном релизе уже есть: отслеживание веса тела с интерактивным графиком, недельный планировщик с 1 324 упражнениями, ведение тренировок с таймером и обнаружением рекордов, суперсеты и кардио, рескедьюлинг дней, тепловой граф активности в стиле GitHub, passkey-вход и синхронизация профиля, светлая/тёмная темы с 8 акцентными цветами.
Кому подойдёт:
- ✅ Технически подготовленным пользователям, ценящим приватность
- ✅ Тем, кто хочет мигрировать с Hevy/Strong/FitNotes и не потерять историю
- ✅ Разработчикам и homelabber’ам
- ❌ Тем, кто хочет «просто скачать приложение» без настройки сервера
- ❌ Пользователям Apple Watch
Рейтинг: 8.5 / 10
Снято 1.5 балла за порог входа (нужен Docker и домен с HTTPS для полного функционала) и отсутствие нативных iOS/Apple Watch приложений. В остальном — один из лучших фитнес-трекеров на рынке, независимо от категории «open source».