Введение: почему террариумистам нужен свой софт, а готовых решений нет
Представьте: у вас 15 террариумов с разными видами — от бородатых агам до мадагаскарских тараканов. Каждый требует своей температуры, влажности, режима кормления и графика уборки. Вы ведёте записи в блокноте, но через месяц понимаете, что запутались. А когда рептилия заболевает, вы не можете быстро вспомнить, что изменилось в её содержании за последнюю неделю.
Эта боль знакома каждому, кто серьёзно занимается террариумистикой. Готовых CRM-систем для любителей экзотических животных нет. Крупные ветеринарные платформы (вроде Vetter или Pawprint) заточены на собак и кошек. А попытки приспособить Trello или Notion проваливаются — там нет специфических полей для температуры и влажности.
В июле 2026 года на Habr появилась история разработчика, который решил эту проблему — собрал платформу для террариумистов на голом PHP, без фреймворков и без бюджета Источник. Рассказываю, как он это сделал и почему это может быть полезно каждому, кто держит рептилий, амфибий или беспозвоночных.
Проблема: почему террариумисты тонут в бумажках
Террариумистика — это не просто хобби, а наука. Каждый вид требует точного микроклимата. Например:
- Бородатая агама: дневная температура 35–40°C, влажность 30–40%, УФ-лампа 10–12 часов в сутки.
- Маисовый полоз: 24–28°C, влажность 50–60%, обязательный период зимовки.
- Древолаз (лягушка): 24–26°C, влажность 80–90%, постоянное опрыскивание.
Если вы держите 5–10 видов, блокнот становится хаосом. А когда питомец заболевает (отказ от еды, вялость), вы не можете отследить, что пошло не так — был ли скачок температуры или вы пропустили кормление.
Автор статьи на Habr столкнулся с этим на личном опыте. У него было 12 террариумов, и он заметил, что его змея перестала есть. Перебирая недельные записи, он понял, что температура в террариуме упала на 5 градусов из-за неисправного терморегулятора. Но заметил он это только через три дня.
Решение: голый PHP и никаких фреймворков
Многие скажут: «PHP — это прошлый век, бери Laravel или Symfony». Но автор пошёл другим путём — написал всё на чистом PHP. Почему?
- Минимальные требования к хостингу. Голый PHP работает на любом дешёвом хостинге за $3–5 в месяц. Фреймворки требуют больше ресурсов и специфичных настроек.
- Полный контроль. Нет скрытых зависимостей composer, которые могут сломаться при обновлении.
- Скорость разработки. Для простого CRUD-приложения (create, read, update, delete) фреймворки избыточны. На голом PHP можно выкатить MVP за неделю.
Вот как выглядит типичная модель данных для террариума на PHP:
<?php
class Terrarium {
public int $id;
public string $name;
public string $species;
public float $temperature;
public float $humidity;
public string $feedingSchedule;
public string $notes;
public function save(): bool {
// Простой SQL-запрос без ORM
$sql = "INSERT INTO terrariums (name, species, temperature, humidity, feeding_schedule, notes)
VALUES ('$this->name', '$this->species', $this->temperature, $this->humidity, '$this->feedingSchedule', '$this->notes')";
return mysqli_query($this->db, $sql);
}
}
?>
Никаких Eloquent, Doctrine или Query Builder. Чистый SQL — и это работает.
Архитектура: простота, которая не ломается
Платформа построена на трёх основных модулях:
1. Модуль учёта террариумов
Пользователь добавляет каждый террариум: название, вид питомца, параметры микроклимата (температура, влажность, освещение). Для каждого параметра можно задать норму (например, 30–40°C) и платформа будет подсвечивать отклонения.
2. Модуль журнала событий
Сюда попадают все действия: кормление, уборка, замена ламп, замеры параметров. Всё с меткой времени. Это ключевая функция — если питомец заболел, вы можете посмотреть лог за последние 7 дней и найти аномалию.
3. Модуль уведомлений
Платформа напоминает: «Пора кормить змею», «Проверь влажность в террариуме с древолазом», «Замени УФ-лампу (она отработала 6 месяцев)». Уведомления приходят на email или в Telegram (через простой curl-запрос к Bot API).
Бюджет: сколько это стоит на самом деле
Автор потратил ровно $0 на софт и около $5 в месяц на хостинг. Вот полная смета:
| Статья расходов | Стоимость |
|---|---|
| Домен (.ru) | 199 руб/год |
| Хостинг (PHP 8.2, MySQL) | 350 руб/мес |
| SSL-сертификат (Let's Encrypt) | бесплатно |
| Telegram Bot API | бесплатно |
| Итого в месяц | ~400 руб |
Никаких платных библиотек, никаких серверов за $50. Всё работает на минималках.
Подводные камни: что пошло не так
Не всё было гладко. Вот три главные проблемы, с которыми столкнулся автор:
Проблема 1: SQL-инъекции
На первых порах автор не экранировал пользовательские данные. В итоге один из пользователей (тестировщик) случайно удалил часть базы, введя в поле «Название террариума» строку с кавычками. Пришлось срочно переписывать все запросы с подготовленными выражениями.
// НЕПРАВИЛЬНО
$sql = "SELECT * FROM terrariums WHERE name = '$_GET[name]'";
// ПРАВИЛЬНО
$stmt = $mysqli->prepare("SELECT * FROM terrariums WHERE name = ?");
$stmt->bind_param("s", $_GET['name']);
$stmt->execute();
Проблема 2: Масштабирование
Когда количество пользователей перевалило за 50, начались тормоза. База данных на MySQL без индексов — это боль. Автор добавил индексы на поля species, user_id и created_at, и скорость запросов выросла в 10 раз.
Проблема 3: Отсутствие бэкапов
В первый месяц автор не делал бэкапы. Пока хостинг не уронил сервер. База восстановилась не полностью — потерялись данные за три дня. Теперь каждый день в 3:00 запускается cron-скрипт:
mysqldump -u user -p database > /backups/terrarium_$(date +%Y%m%d).sql
Альтернативы: когда не хочется писать свой код
Если вы не программист, но тоже хотите автоматизировать учёт террариумов, есть несколько вариантов:
- Google Таблицы — бесплатно, просто, но нет уведомлений и логов.
- Notion + база данных — красиво, но требует ручного ввода.
- Специализированные мобильные приложения — Reptile Manager, Terrarium Pro (есть на Google Play), но они не дают гибкости.
Однако если у вас больше 5 террариумов, самописная платформа на PHP — это инвестиция в здоровье ваших питомцев.
Практический совет: с чего начать, если вы решили повторить
- Не берите фреймворк. Для 90% задач террариумиста хватит 3–4 файлов PHP.
- Сделайте прототип за выходные. Один террариум, одна форма добавления событий, один SQL-запрос для просмотра истории.
- Добавьте Telegram-бота. Через Bot API можно не только отправлять уведомления, но и принимать команды: «Покормить змею», «Замерить влажность».
- Бэкапьте базу каждый день. Это спасёт вас от потери данных.
Заключение: что даёт эта история
История автора на Habr — не просто технический туториал. Это пример того, как можно решить свою боль с помощью минимальных ресурсов. Голый PHP, дешёвый хостинг и пара выходных — вот и вся инвестиция.
Сегодня его платформой пользуются около 200 человек. Код открыт (лежит на GitHub), и любой может форкнуть его под свои нужды. А главное — рептилии стали получать более стабильный уход, потому что их владельцы перестали полагаться на память и блокноты.
Если вы держите террариумных животных, попробуйте автоматизировать учёт. Не обязательно писать код — можно взять готовое решение. Но если вы хотите полный контроль, голый PHP — это не страшно. Это надёжно.
Комментарии