Программные проекты

Параллельно с инфраструктурными активностями, у меня есть личные PET проекты программного уровня.
На текущий момент я имею некоторый опыт в части языка TypeScript (JS) и WEB фреймворка Vue под UI.
Немного личных проектов под железо на C и C++, но пока они не стоят внимания.

Какие-то проекты имеют публичное размещение, какие-то приватное.

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

Ни на что не претендую, какой-либо специализации в этом не имею, все на уровне любительского использования. Воспринимаю конструктивную критику.

Больше информации можно найти в README.md файлах проектов.

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.
  • Jobs — работа с задачами которые запускаются с помощью Commands

Использует базу данных SQLite

https://github.com/GregoryGost/gost-rdpr

Размещен на Docker Hub — https://hub.docker.com/r/gregorygost/gost-rdpr

GREGORY GOST