MAATRIX / Блог / Репетитор платит за пять подписок: один сервер вместо связки сервисов

Репетитор платит за пять подписок: один сервер вместо связки сервисов

MAATRIX

Если вы частный репетитор и ведёте больше десятка учеников, у вас наверняка набралась целая связка платных сервисов: один для записи на занятия, второй — чтобы хранить и раздавать материалы, третий — для видеозвонков, ещё где-то крутится таблица с оплатами и переписка с родителями в мессенджере. Каждый сервис сам по себе стоит недорого, но вместе они превращаются в постоянную статью расходов, а данные при этом раскиданы по чужим системам, из которых их не так просто забрать. Ниже — как собрать те же функции на одном арендованном сервере и платить один раз в месяц за инфраструктуру, а не по счёту за каждый отдельный инструмент.

Из чего на самом деле складывается связка сервисов репетитора

Давайте честно разберём, что обычно используется в практике репетитора, если не сводить всё к одному приложению для видеозвонков:

  • Система записи на занятия — календарь, куда ученик или родитель сам бронирует слот, с напоминаниями и защитой от двойной записи.
  • Хранилище материалов — рабочие тетради, конспекты, аудиозаписи произношения, домашние задания, которые нужно раздавать и обновлять.
  • Видеосвязь — сами занятия онлайн, часто с записью экрана или демонстрацией документа.
  • Обмен файлами с учениками — отдельно от материалов: то, что присылают сами ученики (фото тетрадей, аудио, эссе).
  • Учёт оплат и расписания — таблица или мини-CRM, куда заносится, кто когда занимался и заплатил ли.

Проблема не в том, что каждый сервис плохой — сами по себе они обычно неплохо решают свою узкую задачу. Проблема в том, что это пять разных логинов, пять разных интерфейсов и пять отдельных ежемесячных списаний, которые редко привязаны к рублёвой карте напрямую — а если сервис зарубежный, оплата ещё и превращается в отдельный квест с конвертацией и комиссиями. Когда ученик спрашивает «а где у нас лежат материалы за прошлый месяц» — вы вспоминаете, в каком именно из сервисов.

Что меняется, если перейти на свой сервер

Идея простая: вместо пяти отдельных облачных сервисов вы арендуете один сервер и разворачиваете на нём открытые (open source) инструменты, которые закрывают те же задачи. Экономика меняется так:

Связка подписокОдин сервер
ОплатаНесколько ежемесячных списаний, часто в валютеОдин фиксированный платёж за сервер
ДанныеРазбросаны по разным облакамВсё в одном месте, под вашим контролем
ОграниченияТарифные лимиты каждого сервиса (число учеников, объём хранилища, длительность звонков)Ограничены только ресурсами сервера
НастройкаГотово из коробки, но не гибкоТребует разовой настройки, дальше — гибко под себя
Точка отказаЕсли сервис закрылся или заблокировал аккаунт — данные под вопросомСервер и данные принадлежат вам

Это не значит, что свой сервер — универсально лучший вариант для всех. Если у вас два-три ученика и вы всем занимаетесь через один бесплатный мессенджер — городить сервер не нужно, овчинка не стоит выделки. Но если вы работаете с материалами, регулярным расписанием и десятком-двумя учеников одновременно, разница в удобстве и деньгах становится заметной уже через несколько месяцев.

Дальше — как именно закрыть три ключевые задачи (запись, хранение, видеосвязь) на одном сервере, без иллюзий о том, что это займёт пять минут.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Хранилище материалов вместо облачного диска

Для хранения и раздачи материалов на сервере разворачивается открытая система файлового хранилища — например, Nextcloud. По сути это ваш личный аналог облачного диска, но на собственном сервере: папки для каждого ученика, ссылки на файлы вместо пересылки тяжёлых вложений в мессенджере, версионирование документов, если конспект правится несколько раз.

Базовая установка через Docker Compose выглядит примерно так:

version: "3"
services:
  db:
    image: mariadb:10.6
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: "смените_этот_пароль"
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: "и_этот_тоже"
    volumes:
      - db_data:/var/lib/mysql

  app:
    image: nextcloud:latest
    restart: always
    ports:
      - "8080:80"
    depends_on:
      - db
    environment:
      MYSQL_HOST: db
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: "и_этот_тоже"
    volumes:
      - nextcloud_data:/var/www/html

volumes:
  db_data:
  nextcloud_data:

После docker compose up -d сервис поднимается на порту 8080, дальше его закрывают за reverse-proxy с бесплатным SSL-сертификатом (Let's Encrypt), чтобы ученики заходили по обычному https://материалы.вашдомен.ru, а не по IP-адресу с портом. Заводить отдельную папку на каждого ученика с правами доступа только для него — обычная практика: так родитель одного ребёнка физически не увидит материалы другого.

Подробный пошаговый разбор установки и первичной настройки — в статье Nextcloud на VPS: пошаговая установка и настройка.

Система записи на занятия своими силами

Вторая по важности задача — чтобы ученик мог сам выбрать удобный слот в вашем расписании, не переписываясь с вами «а вы свободны в четверг?». Для этого на сервер ставится открытая система бронирования (например, EasyAppointments) — это, по сути, календарь с публичной страницей записи, куда вы заранее выкладываете свободные окна, а ученики бронируют их сами.

Что практически даёт такая система:

  • Публичная ссылка для записи, которую можно отправить новому ученику или разместить в шапке своего канала.
  • Автоматическая защита от двойной записи на один и тот же слот.
  • Email- или SMS-напоминания за день или за час до занятия (в зависимости от того, что настроено).
  • Разные типы занятий с разной длительностью — например, пробный урок на 30 минут и обычное занятие на 60.
  • Отдельные рабочие часы под разные дни недели, если у вас плавающий график.

Разворачивается система тоже через Docker Compose, конфигурация с готовым файлом и объяснением переменных окружения разобрана в статье EasyAppointments в Docker Compose: готовый файл, а базовая установка с нуля — в материале Установка и настройка EasyAppointments на VPS. Если раньше запись велась в мессенджере или в бумажном ежедневнике, переход на автоматическую форму обычно снимает часть переписки — сколько именно, зависит от того, насколько активно вы общались с учениками помимо самих занятий.

Видеосвязь без сторонней платформы

Для самих онлайн-занятий на сервер можно поставить открытую платформу видеоконференций — например, Jitsi Meet. Ключевое отличие от привычных сервисов видеосвязи: ученику не нужно ничего регистрировать и устанавливать — он просто переходит по ссылке в браузере, и всё. Для вас это значит, что комнаты для занятий не ограничены по времени сторонним тарифом, а сама ссылка на «ваш класс» может быть постоянной — не нужно каждый раз генерировать новую.

Минимальный запуск через Docker Compose и разбор основных параметров конфигурации — в статье Jitsi Meet в Docker Compose: готовый файл, а базовая установка — в материале Установка и настройка Jitsi Meet на VPS.

Важный нюанс, о котором стоит сказать честно: качество видеосвязи на своём сервере сильно зависит от канала и мощности сервера, особенно если вы проводите групповые занятия на несколько учеников одновременно, а не индивидуальные один на один. Для формата «один репетитор — один ученик» ресурсов среднего сервера обычно достаточно с запасом. Для регулярных групповых занятий на пять и больше человек стоит закладывать сервер помощнее и заранее проверить связь на реальном количестве участников, а не полагаться на то, что «должно хватить».

Как это выглядит в связке на одном сервере

Три сервиса — хранилище, запись, видеосвязь — прекрасно уживаются на одном сервере, если развёрнуты через Docker: каждый в своём контейнере, со своими портами, за общим reverse-proxy (например, Nginx или Traefik), который раздаёт каждому сервису свой поддомен по HTTPS.

Условная схема доменов на одном сервере:

files.вашдомен.ru   → Nextcloud (материалы и обмен файлами)
booking.вашдомен.ru → EasyAppointments (запись на занятия)
call.вашдомен.ru    → Jitsi Meet (видеосвязь)

Ученик за день видит только знакомую цепочку: заходит на booking.вашдомен.ru, бронирует слот, накануне занятия получает напоминание со ссылкой на call.вашдомен.ru, а материалы находит по постоянной ссылке на files.вашдомен.ru. Для него ничего не меняется по сравнению со связкой отдельных сервисов — разница только в том, что за кулисами всё это работает на вашей инфраструктуре, а не на трёх-пяти чужих.

Практический момент: если вы не разворачивали такие связки раньше, закладывайте на первоначальную настройку не один вечер, а несколько — база данных для каждого сервиса, SSL-сертификаты, DNS-записи для поддоменов, первичное наполнение расписания и папок. Это разовая работа, но она реальная, и обещать, что «всё заведётся за десять минут», было бы нечестно.

Что с оплатой сервера, если вы работаете из России

Отдельная причина, по которой связка зарубежных подписочных сервисов неудобна именно для репетитора в России, — это оплата. Валютная карта, привязка PayPal, ограничения по странам — с иностранными сервисами это регулярная головная боль, а иногда сервис просто отказывается принимать оплату из-за геолокации.

Аренда сервера у провайдера, который прямо поддерживает оплату из России картой или криптовалютой, снимает этот вопрос: один платёж в месяц закрывает всю инфраструктуру целиком, а не пять отдельных списаний с разными способами оплаты и разными датами продления. Для локации стоит смотреть в сторону сервера в Великобритании — стабильное соединение с Европой, разумный пинг, если часть ваших учеников или их родителей находится за пределами России, и меньше рисков блокировки, чем с российским хостингом при работе с иностранными платформами.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

Не проще ли остаться на привычных отдельных сервисах, если их бесплатных тарифов пока хватает?

Если бесплатных лимитов хватает и учеников немного — да, переезд не имеет смысла прямо сейчас. Свой сервер оправдан, когда вы упираетесь в платные тарифы сразу нескольких сервисов одновременно или устали от разрозненности данных.

Нужны ли навыки администрирования Linux, чтобы всё это развернуть?

Базовые — да: работа с командной строкой, Docker Compose, настройка DNS и SSL-сертификата. Каждый из перечисленных сервисов разбирается в блоге отдельной пошаговой статьёй, но полностью «нулевой» уровень потребует времени на освоение матчасти.

Что будет с данными, если сервис на сервере сломается?

Данные остаются в контейнерах и на диске сервера — это не облако с чужими правилами восстановления. Тем не менее регулярный бэкап (хотя бы папки с данными Nextcloud и дампа баз данных) обязателен: своя инфраструктура не отменяет необходимости резервных копий, а скорее делает вас единственным ответственным за них.

Можно ли постепенно переезжать, а не сразу переносить всё?

Да, и это разумный подход: начните с одного сервиса — например, файлового хранилища, — обкатайте его пару недель, потом добавляйте систему записи, и только затем видеосвязь. Так риск не разобраться сразу во всём и всё бросить заметно ниже.

Что делать с учениками, которые уже привыкли к прежнему формату записи или созвонов?

Переход стоит анонсировать заранее и держать старый канал открытым недели две-три параллельно с новым, чтобы никто не потерялся. Обычно ученики и родители легко переключаются, если ссылка на запись и созвон работает стабильно и понятно с первого раза.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →