Habitica self-hosted: полный гайд по развёртыванию, настройке Nginx и docker-compose
Представьте: вы контролируете свой таск-менеджер полностью. Без ограничений бесплатного аккаунта, без риска, что сервер ляжет, без передачи данных третьим лицам. Звучит как мечта любого гика, уставшего от SaaS? Именно такую возможность даёт self-hosted версия Habitica — популярного геймифицированного трекера задач. В июле 2026 года сообщество разработчиков опубликовало детальное руководство, которое превращает развёртывание собственной инстанции из квеста уровня «босс» в рутинную задачку. Разбираемся, что изменилось и как поднять свой сервер за вечер.
Что такое Habitica и зачем её хостить самому?
Habitica — это не просто список дел. Это RPG, где ваши реальные задачи становятся монстрами, привычки — умениями, а прокрастинация наносит урон здоровью персонажа. Официальный сервис работает с 2013 года, но у него есть нюансы: платная подписка для некоторых функций, зависимость от облачной инфраструктуры и невозможность кастомизировать код. Self-hosted версия решает все эти проблемы. Вы получаете полный контроль над данными, можете модифицировать интерфейс, добавлять свои механики и не платить ни копейки.
Ключевые изменения в гайде 2026 года
Недавно на Хабре появилась свежая статья, которая кардинально упрощает процесс развёртывания. Источник. Авторы учли типовые ошибки новичков и оптимизировали конфигурацию под современные реалии. Главные нововведения:
- Полная поддержка Docker Compose v2. Больше не нужно вручную настраивать зависимости между контейнерами. Всё описано в едином файле.
- Готовая конфигурация Nginx с SSL. Включает Let's Encrypt, автоматическое обновление сертификатов и реверс-прокси для MongoDB.
- Оптимизация под слабые VPS. Разработчики протестировали сборку на серверах с 1 GB RAM и 1 vCPU — работает стабильно.
- Разделение на продакшен и разработку. Отдельные docker-compose.prod.yml и docker-compose.dev.yml с разными настройками.
Пошаговый план развёртывания
1. Подготовка сервера
Перед началом убедитесь, что у вас есть:
- VPS или выделенный сервер с Ubuntu 22.04 LTS (или новее).
- Минимум 2 GB RAM (рекомендуется 4 GB для комфортной работы).
- 20 GB свободного места на диске.
- Домен, направленный на IP сервера.
Авторы статьи рекомендуют сразу настроить файрвол и отключить root-доступ по SSH.
2. Установка Docker и Docker Compose
sudo apt update
sudo apt install docker.io docker-compose-v2 -y
sudo systemctl enable --now docker
Проверьте версии: docker --version и docker compose version. Если Docker Compose не установился как плагин, установите его отдельно через официальный скрипт.
3. Клонирование репозитория
git clone https://github.com/HabitRPG/habitica.git
cd habitica
Авторы обращают внимание: не используйте мастер-ветку для продакшена — берите последний стабильный релиз. Например:
git checkout tags/v5.0.0
4. Настройка окружения
Скопируйте файл конфигурации:
cp config.json.example config.json
Отредактируйте его под свой домен. Ключевые параметры:
BASE_URL: https://ваш-домен.comADMIN_EMAIL: ваш email для уведомленийSESSION_SECRET: сгенерируйте случайную строку (можно черезopenssl rand -hex 64)
5. Настройка Nginx и SSL
В репозитории есть папка nginx/ с готовыми конфигами. Авторы советуют использовать шаблон nginx/conf.d/habitica.conf.example. Скопируйте его:
cp nginx/conf.d/habitica.conf.example nginx/conf.d/habitica.conf
Замените your-domain.com на ваш домен. Для SSL используется certbot внутри контейнера — он автоматически получит сертификат.
6. Запуск через Docker Compose
Для продакшена:
docker compose -f docker-compose.prod.yml up -d
Первый запуск может занять 5-10 минут: будут собираться образы, загружаться зависимости, инициализироваться база данных. Следите за логами:
docker compose logs -f
Если всё прошло успешно, откройте браузер и перейдите на https://ваш-домен.com. Вы увидите стандартную страницу входа Habitica.
Типичные проблемы и их решение
Проблема: Ошибка подключения к MongoDB
Симптом: Контейнер habitica не стартует, в логах MongoNetworkError.
Решение: Проверьте, запущен ли контейнер MongoDB. Иногда он стартует дольше. Добавьте в docker-compose.prod.yml параметр depends_on с условием:
depends_on:
mongo:
condition: service_healthy
Проблема: SSL-сертификат не обновляется
Симптом: Через 90 дней сайт перестаёт открываться по HTTPS.
Решение: В статье описана настройка cron-задачи внутри контейнера Nginx. Убедитесь, что в nginx/conf.d/habitica.conf указан правильный email для Let's Encrypt и открыт порт 80 для валидации.
Проблема: Низкая производительность
Симптом: Страницы грузятся по 10-15 секунд.
Решение: Авторы рекомендуют:
- Включить кэширование в Nginx (уже настроено в шаблоне).
- Увеличить mongo_memory_limit до 512 MB.
- Использовать SSD-диски.
Безопасность и обслуживание
Self-hosted версия требует внимания к безопасности. Вот что советуют авторы:
- Регулярно обновляйте образы:
docker compose pull && docker compose up -d. - Настройте автоматическое резервное копирование базы данных MongoDB. Пример скрипта:
#!/bin/bash
docker exec habitica-mongo mongodump --out /backup/$(date +%Y-%m-%d)
- Используйте fail2ban для защиты от брутфорса.
- Ограничьте доступ к портам 27017 (MongoDB) и 3000 (Node.js) через файрвол — они не должны быть открыты извне.
Что дальше?
После успешного развёртывания вы можете кастомизировать интерфейс, добавлять свои квесты и даже писать плагины. Сообщество Habitica активно развивает экосистему: есть готовые темы оформления, интеграции с Telegram и Slack. Кстати, ASI Biont поддерживает подключение к Habitica через API — подробнее на asibiont.com/courses. Это позволяет синхронизировать задачи с учебными планами и трекерами привычек.
Заключение
Self-hosted Habitica — это не просто способ сэкономить. Это возможность построить идеальный трекер задач под свои нужды. Новый гайд 2026 года снижает порог входа до уровня «скопировал-вставил-запустил». Если вы устали от диктата облачных сервисов и хотите вернуть контроль над своими данными — попробуйте. А если что-то пойдёт не так, помните: даже в RPG первые битвы самые сложные. Но опыт того стоит.
Комментарии