Параллельно с инфраструктурными активностями, у меня есть личные PET проекты программного уровня.
На текущий момент я имею некоторый опыт в части языка TypeScript (JS) и WEB фреймворка Vue под UI.
Немного личных проектов под железо на C и C++, но пока они не стоят внимания.
Какие-то проекты имеют публичное размещение, какие-то приватное.
Тут я просто хотел бы поделиться своими наработками. Возможно кому-то они окажутся полезными, как с точки зрения кода, так и с точки зрения идей или простой эксплуатации под свои нужды.
Ни на что не претендую, какой-либо специализации в этом не имею, все на уровне любительского использования. Воспринимаю конструктивную критику.
Больше информации можно найти в README.md файлах проектов.
Gost NR — Голосовое управление умным домом через Node-RED и Яндекс Алису
Главная суть это управлять голосом устройствами, которые напрямую в Яндекс Умный Дом прокинуть либо невозможно, либо вы заядлый приверженец приоритета локального умного дома.

Крупный личный проект нескольких лет вынашивания, который начинался с попыток написать сервер на базе Typescript, который в итоге получилось реализовать полноценно уже на базе Python.
Под капотом сервер на котором размещены:
- firewall ufw — помимо firewall хостера
- nginx — как proxy, лимитер, балансировщик простых запросов
- Nats.io — простой брокер, нужен для постоянного обмена между клиентскими модулями в Node-RED и сервером. Умеет в кластер и внешние механизмы авторизации.
- База MySQL — хранимые процедуры, партиционирование и прочее.
- Приложение авторизации на Python — занимается обработкой запросов авторизации приходящих на брокер и выдает права и ограничивает клиентов между собой.
- Главное приложение на Python занимающееся обработкой авторизаций, сообщений, обменом с Яндексом и persisting.
- certbot — для апдейта сертификатов
На капоте, отдельный модуль для Node-RED:
Собственно основной модуль через который авторизуемся и взаимодействуем с яндексом через сервер
https://www.npmjs.com/package/@gregory-gost/node-red-contrib-gost-yandex-alice

Ну и сам сайт https://iot.gregory-gost.ru/
Также в процессе была написана заглушка эмулирующая Yandex сторону. Созданы и проведены нагрузочные и E2E тесты.
Version Tagger
GitHub Action для поддержки версионности в репозитории для собственных проектов.
Попробовал использовать различные уже существующие из маркетплейса. Столкнулся с рядом нестыковок, которые не могли покрыть мои хотелки.
Написал свой, используя готовый TypeScript шаблон проекта от команды GitHub
https://github.com/marketplace/actions/version-tagger
https://github.com/GregoryGost/version-tagger
Transmission Daemon torrent processing
Отдельные приложения для обработки файлов фильмов и сериалов после их скачивания.
Имеют судьбу развития из простого Bash скрипта до Node.JS приложения.
Создавалось под эгидой статьи Домашний Сервер: Часть 4 – Настройка Transmission daemon в контейнере LXC Proxmox-VE
Кстати, как альтернативное решение, можно использовать приложения sonarr и radarr
Transmission Torrent Done
Данное приложение производит обработку файла после завершения скачивания. Распределяет файлы по папкам исходя из их именования.
https://github.com/GregoryGost/transmission-torrentdone
Transmission Torrent Clear
Данное приложение производит удаление уже скачанных торрент файлов, дабы не нагружать контейнер и сеть. Делает это либо по установленному Ratio, либо по установленному времени.
https://github.com/GregoryGost/transmission-torrentclear
GOST RDPR — Domain resolver
Приложение на Python для преобразования доменов в IP адреса и дальнейшего добавления их в firewall-list и routing таблицу в маршрутизаторах MikroTik на базе RouterOS v7. В последствии эти адреса могут транслироваться по BGP на конечные устройства в их таблицы маршрутизации.
Является HTTP REST API приложением.
Поддерживает OpenAPI документацию доступную по WEB, метрики prometheus для мониторинга.
Доступные методы
- Home — проверка состояния
- DNS Servers — работа с DNS серверами, которые будут применяться для получения IP адресов доменов
- Domains Lists — работа со списками доменов. Добавляются ссылки на файлы, которые потом скачиваются и все найденные в них домены попадают в базу.
- Domains — работа с доменами. Можно отслеживать состояние добавленных доменов, добавлять новые, по одному или пачкой.
- IP Address Lists — работа со списками IP адресов. Добавляются ссылки на файлы, которые потом скачиваются и все найденные в них IP адреса попадают в базу.
- IP address — работа с IP адресами. Можно отслеживать состояние добавленных IP адресов, добавлять новые, по одному или пачкой.
- RoS Configs — работа с целевыми устройствами, на которые затем адресуются IP адреса в базе приложения.
- Commands — запуск команд. Запуск процессов загрузки списков доменов или списков IP адресов, процесса резолвинга доменов, процесса обновления в RouterOS.
Использует базу данных SQLite
https://github.com/GregoryGost/gost-rdpr
Размещен на Docker Hub — https://hub.docker.com/r/gregorygost/gost-rdpr
Калькулятор крафт ресурсов для игры Dune Awakening
Фанатский статический русскоязычный калькулятор крафта для онлайн игры Dune: Awakening.
Калькулятор позволяет собрать несколько целей, выбрать профили станций, учесть имеющиеся ресурсы и получить дерево изготовления с общим списком материалов. План сохраняется локально в IndexedDB; все данные обрабатываются исключительно в браузере. Backend и сторонние runtime API не используются.
Используемый стек: Vue 3, TypeScript, Vite, Vue Router, Pinia, VueUse, Tailwind CSS 4 и SCSS.




