Меня зовут Виталий (ну или просто "тот парень, который не любит, когда его сервер падает"), я из команды Arcane Gaming.
Сегодня я хочу рассказать вам о своем пет-проекте, который немного вышел из-под контроля и превратился в полноценный продукт. Встречайте - Snuffer !
😫 С чего всё началось?
Знаете это чувство, когда вам пишет клиент (или, что еще хуже, мама):

"А почему сайт не открывается?"
И ты такой:
"Да ладно, у меня всё работает!"
А потом оказывается, что сервер упал 3 часа назад, база данных ушла в дедлок, а ты в это время спокойно пил кофе и смотрел мемы.
Я перепробовал кучу сервисов: UptimeRobot, Pingdom, Better Uptime. Они крутые, спору нет.
Но:
- Дорого , если нужно много проверок.
- Ограниченные локации . Иногда нужно проверить доступность именно из конкретной сети или региона.
- Скучно . Где веселье в том, чтобы просто заплатить денег?
И тут я посмотрел на ящик своего стола. Там лежали они... Герои прошлых лет. Samsung Galaxy S7, какой-то старый Xiaomi с треснутым экраном и Pixel первого поколения. Они смотрели на меня своими пыльными камерами и шептали: "Мы еще можем быть полезны..." .
И меня осенило! 💡
А что, если использовать эти устройства как узлы мониторинга?
Ведь смартфон - это мощный компьютер с Wi-Fi и GSM модулем. Он может пинговать, делать HTTP-запросы, проверять порты. И если раздать такие телефоны друзьям в разных городах (или просто подключить к разным провайдерам), получится настоящая распределенная сеть мониторинга .
Так родился Snuffer .
📱 Что такое Snuffer?
Если говорить умными словами, это распределенная система мониторинга доступности сервисов с использованием мобильных агентов .
"Давай короче, что это такое?":
- Вы регистрируетесь в админке .
- Скачиваете Android-приложение .
- Сканируете QR-код.
- БУМ! Ваш телефон превращается в "Снуффера" (нюхача), который постоянно проверяет, живы ли ваши сайты.
🛠 Что он умеет?
- HTTP / Keyword Monitor : Проверяет, отдает ли сайт 200 OK и есть ли на странице нужное слово (например, "Success"). Если нет - бьет тревогу.
- Ping / Port Monitor : Пингует серверы и проверяет открытые порты (полезно для баз данных или кастомных сервисов).
- DNS Monitor : Следит, чтобы ваши домены резолвились куда надо (а не на фишинговые заглушки).
- Vulnerability Scanner : В админке есть встроенный сканер уязвимостей! (Но я пока его еще не сделал, но обязательно доделаю, честно!)
- Telegram Бот : Уведомления прилетают мгновенно. Потому что почту мы читаем редко, а телегу - каждые 5 минут.
🤓 Немного "под капотом"
Я люблю, когда всё работает быстро и четко. Поэтому стек выбрал проверенный и надежный:
- Backend : Node.js + Express (старая добрая классика).
- Database : PostgreSQL + Prisma (потому что писать SQL руками в 2025 — это моветон, хотя я умею!).
- Frontend : React + Tailwind CSS (чтобы было красиво и адаптивно).
- Mobile : React Native / Expo (одна кодовая база, минимум боли).
Самое интересное - это архитектура .
Сервер раздает "задачи" (tasks) подключенным устройствам через WebSocket. Устройства выполняют проверки и шлют отчеты обратно.
Если устройство говорит "Сайт лежит", сервер не верит ему на слово (вдруг у телефона просто Wi-Fi отвалился?). Он ждет подтверждения от других узлов или от самого сервера. Это минимизирует ложные срабатывания.
🌍 Почему это круто?
- Вторая жизнь вещам . Ваши старые гаджеты не загрязняют природу, а приносят пользу. Экологично! 🌱
- Полный контроль . Вы сами выбираете, откуда мониторить. Хотите проверить доступность из офиса конкурента? Просто подбросьте им телефон с Snuffer (шутка... или нет?).
- Бесплатно (почти). Вы платите только за электричество для зарядки телефона.
Немного забавных моментов разработки😂
Конечно, не обошлось без факапов.
- Однажды я случайно заставил все подключенные телефоны (около 20 штук) одновременно пинговать один несчастный сервер с интервалом в 1 секунду. Получился такой мини-DDoS своими руками. Сервер выстоял, но админы хостинга, наверное, напряглись.
- Борьба с режимом энергосбережения Android - это отдельная война. Android очень любит "убивать" фоновые процессы, чтобы сэкономить 1% батареи. Пришлось попотеть, чтобы объяснить системе: "Эй, этот процесс ВАЖЕН, не трогай его!".
🚀 Что дальше?
Проект живет и развивается. Сейчас я выкатил версию v4.15.11 (да,я часто обновляю его!).
В планах:
- iOS версия (Apple, пустите в AppStore, ну пожалуйста!).
- Больше типов проверок (например, скриншоты сайтов).
- Публичное API.
Если вам интересно попробовать или просто потыкать палочкой — залетайте:
Буду рад любому фидбеку, критике или просто мемам в комментариях!
Спасибо, что дочитали! Пусть ваш аптайм всегда будет 99.999%! 💚
P.S.: Ни один старый смартфон не пострадал при разработке этого приложения (кроме того Xiaomi, он упал со стола, но это другая история).
P.S.S.: Один минус забыл указать, что бы это работало, нужно что бы прила была запущена и горел экран, в фоне работать не будет, есть ограничения ОС.


Top comments (0)