Habitica self-hosted: полный гайд по развёртыванию, настройке Nginx и docker-compose

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://ваш-домен.com
  • ADMIN_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 первые битвы самые сложные. Но опыт того стоит.

← Все статьи

Комментарии