Эфир 51 (мессенджер)
efir51.ru, вики-пространство: wiki.efir51.ru), объединяющей радиолюбителей и операторов связи Мурманской области.
| «Северный эфир» · Радиосеть Кольского Заполярья | |
|
📻
ЭФИР 51 · 51 РЕГИОН
|
|
| Тип | Региональный веб-мессенджер, координационная радиосеть, SPA-платформа |
|---|---|
| Автор и разработчик | Артём Заков (zkvich.ru) |
| Дата основания | 3 ноября 2026 (запуск ядра Артёмом Заковым) 12 ноября 2026 (публичный запуск) |
| Регион охвата | Мурманская область (51 регион РФ) |
| Официальный сайт | efir51.ru |
| Вики-портал | wiki.efir51.ru |
| Стек бэкенда | Node.js 22+, встроенный модуль node:sqlite (Zero external dependencies) |
| Стек фронтенда | Нативный JavaScript (ES3/ES5), чистый CSS без препроцессоров (поддержка IE8+) |
| База данных | SQLite 3 (severny-efir.db, WAL-режим) |
| Безопасность | Scrypt (пароли), AES-256-GCM (сессии), Nginx Rate Limiting |
| Почтовые шлюзы | noreply@efir51.ru, support@efir51.ru (SMTPS 465 TLS) |
| Статус | Активная разработка и круглосуточная эксплуатация (24/7) |
«Эфир 51» (также известный как «Северный эфир») — специализированный веб-мессенджер и цифровая координационная платформа, созданная для радиолюбителей, коротковолновиков (КВ), ультракоротковолновиков (УКВ), операторов гражданского диапазона (Си-Би 27 МГц) и энтузиастов радиомониторинга Мурманской области.
Автором и единственным ведущим разработчиком проекта является Артём Заков (официальный персональный сайт: zkvich.ru).
Главная отличительная черта платформы — бескомпромиссная ориентация на «Связь без балласта» (Ultra-Lightweight Web). Сервис написан без использования тяжеловесных современных фреймворков (React, Angular, Vue, Webpack), потребляет минимум сетевого трафика и обеспечивает полную совместимость как с современными смартфонами, так и с винтажными ПК под управлением старых операционных систем (включая Windows XP и браузер Internet Explorer 8+), что критически важно в суровых условиях Заполярья при нестабильном или низкоскоростном радиомодемном соединении.
1. История создания[история]
1.1 Предпосылки и зарождение идеи
Мурманская область обладает уникальной радиогеографией: протяжённые расстояния между населёнными пунктами, сложный сопочный рельеф Хибин и Ловозёрских тундр, суровый арктический климат и полярная ночь. В таких условиях традиционная радиосвязь на ультракоротких (УКВ) и коротких (КВ) волнах часто становится единственным надёжным средством коммуникации при чрезвычайных ситуациях, буранах и авариях на федеральной трассе Р-21 «Кола».
Однако до создания «Эфир 51» сообщество радиолюбителей области было фрагментировано: операторы Мурманска, Североморска, Апатитов и Кандалакши пользовались разрозненными группами в коммерческих социальных сетях. Эти сервисы были перегружены рекламой, требовали высокоскоростного интернета и совершенно не учитывали радиолюбительскую специфику (позывные сигналы, рабочие частоты, виды модуляции FM/SSB/CW и каналы репитеров).
В начале ноября 2026 года разработчик Артём Заков сформулировал концепцию единого регионального радиопортала, который бы объединил возможности веб-чата и оперативной координации радиоэфира. Уже 3 ноября 2026 года Артём Заков успешно запустил первый рабочий прототип ядра (Core Engine) на Node.js и SQLite, доказав состоятельность концепции сверхлёгкой архитектуры без внешних фреймворков и библиотек.
1.2 Хронология разработки (Ноябрь 2026)
support@efir51.ru, строгая изоляция закрытых маршрутов и создание официальной Вики-энциклопедии (wiki.efir51.ru).
2. Концепция и философия проекта[философия]
2.1 «Связь без балласта» и стандарты ES3/ES5
Современный веб страдает от избыточной сложности: типичный сайт загружает мегабайты JavaScript-бандлов, фреймворков и трекеров. В «Эфир 51» был применён радикально иной инженерный подход:
«Интерфейс должен работать везде, где есть экран, клавиатура и хоть какой-то доступ к сети: от старенького ноутбука на радиостанции до современного флагманского смартфона».
- Клиентский стек: строгий стандарт ECMAScript 3 / ECMAScript 5 (
var, классические функции,XMLHttpRequest, без стрелочных функций и промисов на клиенте). - Чистый CSS: отсутствие CSS-переменных и капризных свойств, ломающих отображение в старых версиях Trident (IE8–IE11).
- Отсутствие внешних CDN: ни один скрипт, шрифт или библиотека не загружаются со сторонних серверов (Google, Cloudflare и др.), что исключает поломку интерфейса при блокировках или разрыве магистральных каналов.
2.2 Радиолюбительская специфика: позывные и частоты
В отличие от обычных мессенджеров, профиль пользователя в «Эфир 51» адаптирован под регламент радиосвязи:
- Официальный радиопозывной: возможность указания позывного (например,
R1AA,UB1AAA,UA1ZAA/P). Пользователь может выбрать, как отображаться в эфире: по имени, позывному или обоим идентификаторам сразу. - Парк радиостанций: в профиле и при регистрации можно указать до 5 используемых трансиверов и радиостанций (например, Yaesu FT-857D, Baofeng UV-5R, Icom IC-7300).
- Панель вызова «CQ»: специализированный интерфейс для оперативного оповещения коллег о выходе на частоту с указанием мегагерц и типа модуляции (FM, USB, LSB, CW, AM, DMR, C4FM, FT8).
2.3 Сетка городов Кольского Заполярья
Платформа охватывает ключевые населённые пункты Мурманской области, предоставляя как Общий областной эфир, так и выделенные городские комнаты:
| Город / Район | Идентификатор | Особенности радиомониторинга |
|---|---|---|
| Мурманск | murmansk | Вызывная частота 145.500 МГц, репитер R4 на сопке Варничной (145.700 МГц) |
| Североморск | severomorsk | Морской радиоканал, автоканал 27.200 МГц трассы Североморск — Мурманск |
| Апатиты & Кировск | apatity, kirovsk | Хибинский горный узел, репитеры горнолыжных спасателей |
| Мончегорск & Оленегорск | monchegorsk, olenegorsk | Центральная часть области, контроль автотрассы «Кола» |
| Кандалакша & Полярные Зори | kandalaksha, polyarnye-zori | Южный радиоузел, Кандалакшский залив Белого моря |
| Печенгский округ (Заполярный, Никель) | zapolyarny, nikel | Северо-западная приграничная радиозона |
| ЗАТО (Снежногорск, Полярный, Гаджиево) | polyarny, gadzhievo | Побережье Кольского залива, морские радиолюбительские частоты |
2.4 Кодекс эфира и система взаимного уважения «73!»
В радиолюбительской традиции сочетание цифр «73!» означает наилучшие пожелания и дружеский радиопривет. В мессенджере реализована механика репутации: нажатием кнопки «🤝 Сказать 73!» пользователи могут повышать доверие друг к другу за помощь на частоте, полезные радиоотчёты или технические консультации. Статус «Проверенный пользователь» также присваивается при верификации адреса электронной почты.
3. Технические трудности и их преодоление[инженерия]
В процессе проектирования и развёртывания инфраструктуры команде проекта пришлось преодолеть ряд серьёзных инженерных преград:
3.1 Блокировка порта 25 провайдерами и SMTPS-релей
Проблема: При переходе на обязательную верификацию регистрации через электронную почту возникла типичная для российских интернет-провайдеров проблема — исходящий TCP-порт 25 (стандартный порт межсерверного протокола SMTP) полностью заблокирован на уровне интернет-провайдера хоста для предотвращения спам-ботнетов. Из-за этого прямая доставка проверочных кодов на Gmail, Mail.ru и Яндекс была невозможна.
Решение: Разработчик Артём Заков интегрировал отказоустойчивый почтовый шлюз на базе нативного клиента с защищённым протоколом SMTPS (порт 465 SSL/TLS). В качестве релея была задействована собственная инфраструктура автора (mail.app.zkvich.ru) с корректной авторизацией, что позволило легитимно отправлять служебные письма от красивого корпоративного имени noreply@efir51.ru, а также принимать обращения на support@efir51.ru со 100% доставкой в папку «Входящие».
3.2 Парсинг и валидация позывных стандартов ITU / СРР
Проблема: Радиолюбительские позывные подчиняются строгой международной спецификации Международного союза электросвязи (ITU) и национального регламента Союза радиолюбителей России (СРР). Недопустимо разрешать регистрацию произвольных наборов символов в поле позывного.
Решение: Было разработано специализированное регулярное выражение и алгоритм предварительной нормализации регистра, распознающий структуру российских позывных (префиксы R, RA–RZ, UA–UI, районные цифры и суффиксы), а также поддерживающий служебные дроби (/P — полевая позиция, /M — подвижная станция, /MM — морская станция, /QRP — малая мощность передатчика).
3.3 Кадрирование аватаров без сторонних библиотек
Проблема: Внедрение возможности загрузки и масштабирования аватаров обычно требует подключения сторонних громоздких JavaScript-библиотек (например, Cropper.js или react-avatar-editor объёмом по 200–500 КБ), что нарушило бы фундаментальный принцип легковесности проекта.
Решение: Разработчик с нуля написал легковесный модуль кадрирования на чистом HTML5 Canvas. Он поддерживает перетаскивание курсором мыши, жесты пальцем (touch-события на смартфонах) и ползунок масштабирования (zoom), сжимая готовое круглое изображение в компактный формат JPEG/PNG перед отправкой на сервер. Размер всего кода инструмента составил менее 3 КБ!
3.4 Архитектура Zero-Dependencies на базе node:sqlite
В целях автономности и максимальной производительности серверный бэкенд «Эфир 51» не использует ни одного стороннего пакета из npm:
// Стек платформы базируется на нативных возможностях платформы Node.js 22+
const http = require("http");
const fs = require("fs");
const crypto = require("crypto");
const { DatabaseSync } = require("node:sqlite"); // встроенная быстрая база данных
База данных SQLite работает в синхронном высоконадёжном режиме с журналом упреждающей записи (WAL — Write-Ahead Logging), выдерживая высокие нагрузки без задержек ввода-вывода.
3.5 Защита закрытых маршрутов и анти-DDoS
По требованиям безопасности неавторизованные гости не должны иметь доступ к чтению закрытых чатов или профилей радиолюбителей по прямым ссылкам. Система была защищена на двух эшелонах:
- Сетевой уровень (Nginx): лимиты параллельных соединений (
limit_conn), ограничение частоты запросов к авторизации (limit_req zone=efir_auth) и фильтрация попыток внедрения путей (Directory Traversal). - Уровень приложения: проверка серверной сессии (
currentAuth) возвращает мгновенный HTTP 302-редирект на главную страницу/, если гость пытается открыть/murmanskили/chat/@позывной. Клиентский SPA-роутер также синхронно сбрасывает адресную строку.
4. Окончательная задумка и перспективы[будущее]
«Эфир 51» задуман не просто как текстовый чат, а как центральный цифровой хаб радиосообщества Мурманской области, интегрирующий физический радиоэфир с интернет-технологиями.
4.1 Шлюзы APRS и Packet Radio
В перспективе развития заложена интеграция со шлюзами APRS (Automatic Packet Reporting System). Радиолюбители, перемещающиеся на снегоходах, автомобилях или маломерных судах по Кольскому заливу и Баренцеву морю, передают координаты по радиоканалу 144.800 МГц (AX.25). Специальный серверный шлюз будет принимать эти пакеты и отображать местоположение радиостанций на интерактивной карте мессенджера в реальном времени.
4.2 Электронный аппаратный журнал (eQSL / Logbook)
Планируется запуск встроенного электронного журнала радиосвязей: прямо из диалога с собеседником операторы смогут зафиксировать факт проведённой радиосвязи (QSO) с подтверждением рапорта (RST), диапазона и времени, с возможностью экспорта в международный формат ADIF (Amateur Data Interchange Format).
4.3 Интерактивный статус репитеров Заполярья
Отображение состояния ключевых репитеров области (в первую очередь мурманского R4 на сопке Варничной и апатитского ретранслятора) в реальном времени через автоматический пинг и приём телеметрии.
4.4 Интеграция с городскими WebSDR-приёмниками
Подключение аудиопотоков мурманских программно-определяемых радиоприёмников (SDR), чтобы любой житель области или радиолюбитель без трансивера мог прямо в браузере слушать живой эфир вызывного канала 145.500 МГц и автоканала 27.200 МГц.
5. Разработчики и авторство[разработчик]
Проект полностью спроектирован, реализован и поддерживается:
- Артём Заков — автор идеи, системный архитектор, full-stack разработчик и администратор инфраструктуры «Эфир 51».
- Персональный сайт разработчика: zkvich.ru
- Контакты для связи и предложений: support@efir51.ru
6. Ссылки и источники[ссылки]
- Официальный сайт платформы «Эфир 51» (efir51.ru)
- Личный сайт Артёма Закова (zkvich.ru)
- Форма обращений и предложений (support@efir51.ru)
- Регламент радиосвязи Международного союза электросвязи (ITU Radio Regulations).
- Частотный план 1-го района IARU для диапазонов 144–146 МГц и 430–440 МГц.
Обсуждение: Эфир 51 (мессенджер)
Текущие обсуждения
1. Предложение по интеграции телеметрии с репитера R4 (Варничная сопка)
Участник: UB1AAB (Артём), 15 ноября 2026:
Коллеги, в следующем релизе планируется транслировать статус открытия шумоподавителя репитера прямо в заголовок городского чата Мурманска. Если у кого-то есть доступ к контроллеру ретранслятора, напишите на support@efir51.ru.
Ответ: R1ZAA, 15 ноября 2026:
Отличная идея! Также предлагаю на 27.200 МГц (Си-Би 20 канал) сделать бота дорожной обстановки по трассе «Кола».
2. Качество доставки почты с noreply@efir51.ru
Участник: Модератор, 15 ноября 2026:
Проверено на Gmail, Яндекс и Mail.ru — после настройки 465 SSL порта через релей zkvich.ru письма приходят моментально, спам-фильтры не ругаются. Коды верификации доходят за 1–2 секунды.
Просмотр исходного текста: Эфир 51 (мессенджер)
История изменений: Эфир 51 (мессенджер)
- 15 ноября 2026, 12:45 · Артём Заков (автор) (+48 120 байт) · /* Создание официальной энциклопедии wiki.efir51.ru, описание архитектуры, преодоления блокировки 25 порта и планов на APRS */
- 15 ноября 2026, 11:30 · Артём Заков (+12 400 байт) · /* Запуск службы поддержки support@efir51.ru и шаблонов обращений */
- 15 ноября 2026, 08:15 · Артём Заков (+18 900 байт) · /* Внедрение 3-шаговой регистрации, валидация почты, инструмент кадрирования аватара */
- 14 ноября 2026, 19:50 · Артём Заков (+15 200 байт) · /* Аудит безопасности Nginx, защита от DDoS, лимиты сессий */
- 13 ноября 2026, 18:20 · Артём Заков (+9 800 байт) · /* Добавление городов Мурманской области, панели вызова CQ Всем и репутации 73! */
- 12 ноября 2026, 16:30 · Артём Заков (+5 100 байт) · /* Инициализация проекта «Эфир 51» (Северный эфир), выбор архитектуры ES3/ES5 */
- 3 ноября 2026, 21:15 · Артём Заков (+3 250 байт) · /* Запуск первого прототипа ядра (Core Engine) на Node.js и SQLite, реализация Zero-Dependencies архитектуры */