wgerv2.7.0a2
Трекер тренировок, питания и веса: программы с прогрессией, дневник питания, справочник упражнений и приложения для Android и iOS.
wger - зрелый open-source трекер для силовых и общефизических тренировок: программы с автопрогрессией, дневник питания с подсчетом БЖУ на базе Open Food Facts, учет веса и замеров тела, вики упражнений с анатомическими схемами. Есть REST API и официальные мобильные приложения (Android, iOS, F-Droid) - wger можно использовать и как backend своего фитнес-приложения. В отличие от коммерческих трекеров данные о вашем теле и активности живут на вашем сервере, без подписки и без рекламы.
После создания сервера wger ставится автоматически: docker поднимает официальный стек из готовых образов (приложение на Django, PostgreSQL, Redis, Celery, nginx, powersync), а Caddy выпускает Let's Encrypt и открывает доступ по HTTPS на magic-DNS домене. Базовая библиотека упражнений синхронизируется в фоне уже на работающем сайте.
Что внутри
- wger 2.7.0a2 (Django)
- приложение и REST API, слушает только localhost.
- PostgreSQL
- база данных (том стека), production-grade хранилище.
- Redis + Celery (worker и beat)
- кэш и фоновая синхронизация упражнений.
- nginx
- раздача статики и медиа.
- powersync
- сервис синхронизации для мобильных приложений (роль в базе создается при установке).
- Caddy
- reverse-proxy и авто-TLS (Let's Encrypt) на magic-DNS домене.
Как войти
Адрес формируется из IP сервера: замените точки на дефисы и добавьте
.fatmetal.net. Пример: IP45.15.159.10->https://45-15-159-10.fatmetal.net.Логин -
admin, пароль - пароль сервера из личного кабинета (тот же, что для входа по SSH).Открытая регистрация по умолчанию закрыта: новых пользователей заводит
adminв Django-админке (/django-admin/). Для зала или мульти-юзера регистрацию включают одной строкойALLOW_REGISTRATION=Trueв/opt/wger/config/prod.env.
Важно
Стек - это 7 контейнеров, а не один: при первом старте Celery в фоне тянет базовую библиотеку упражнений (около 900 позиций) и картинки, поэтому каталог наполняется в течение нескольких минут после запуска. Полная база продуктов Open Food Facts (миллионы позиций) по умолчанию НЕ синхронизируется - это заняло бы часы; догрузить можно вручную (manage.py sync-ingredients-async). Секреты приложения генерируются при установке, дефолтный SECRET_KEY из образца заменяется. Бэкап: docker compose -f /opt/wger/docker-compose.yml exec db pg_dump -U wger wger > wger.sql.
Лицензия
wger - свободное ПО под лицензией AGPL-3.0-or-later, в том числе для коммерческого использования (зал, студия). Условие AGPL: если вы даете доступ к своей модифицированной версии по сети, исходники модификации нужно открыть. Для личного и внутреннего использования ограничений нет. Данные упражнений и ингредиентов - под лицензиями Creative Commons.
Свой домен
Наведите A-запись на этот сервер, впишите домен в /opt/wger/config/prod.env (SITE_URL, ALLOWED_HOSTS, CSRF_TRUSTED_ORIGINS) и в /etc/caddy/Caddyfile, затем docker compose -f /opt/wger/docker-compose.yml up -d и systemctl restart caddy - Caddy выпустит Let's Encrypt. SITE_URL должен совпадать с публичным адресом, иначе ломаются CSRF-проверки и ссылки.
Требования
Ubuntu 24.04, открытые порты 80/443. Рекомендуемая конфигурация CPU2-RAM4-DISK50 (стек в простое ~1.35 ГБ, под фоновой синхронизацией до ~1.75 ГБ; RAM2 в притык). Образы готовые, тянутся с Docker Hub с ретраем (РФ-egress), у клиента ничего не компилируется.