2025-10-12 15:41:13 +03:00
2024-09-17 23:59:38 +03:00
2024-09-17 23:59:38 +03:00
2025-10-12 15:27:41 +03:00
2024-09-17 23:59:38 +03:00
2024-09-17 23:59:38 +03:00
2025-10-12 15:27:41 +03:00
2025-10-12 15:27:41 +03:00
2024-09-17 23:59:38 +03:00
2025-10-12 15:41:13 +03:00
2024-09-17 23:59:38 +03:00

aleesa-webapp-go

Клиент для различных веб-приложений и API. Работает по протоколу Redis pubsub.

Механика работы

Клиент подписан на на redis-канал webapp-go. В этот канал пишет другой демоночек - aleesa-misc-go.

Формат протокола общения по redis pub-sub описан в репозитории aleesa-doc.

Список строк UserAgent

Для некоторых сервисов имеет смысл притворяться браузером, как минимум по user-agent-у, поэтому прикручен список из 31 различных UA, по количеству дней в месяце. В общем случае делается произвольная выборка из этого списка, но для некоторых сервисов сделана привязка ко дню недели.

Как это запустить?

Приложение тестировалось на alpine linux x86_64 3.16, но должно работать на любом (более свежем) linux-е.

После создания data/config.json из data/config_sample.json, можно запускать приложение.

Предполагается, что конфиг написан в формате human json, который допускает коментарии и некоторые другие вольности в форматировании json-а. Конфиг ищется последовательно по следующим путям по принципу "кто первый того и тапки":

~/.aleesa-misc-go.json
~/aleesa-misc-go.json
/etc/aleesa-misc-go.json
data/config.json

В каталоге contrib находится скрипт для alpine linux, системы инициализации openrc. Этот скрипт достаточно положить в /etc/init.d/aleesa-webapp-go. После чего скопировать бинарник в каталог /var/lib/aleesa-webapp-go, положить конфиг в одну из дефолтных локаций (тестировалась /var/lib/aleesa-webapp-go/data/config.json) и после этого сервис запускается командой:

service aleesa-webapp-go start

В автозагрузку его можно прописать через команду:

rc-update add aleesa-misc-go default

Nota Bene

Go не поддерживает системный вызов fork() из-за чего демонизация программ на гошке средствами самой гошки - это в некотором роде проблема. Решается она с помощью утилиты daemonize.

Соответствено, если для запуска этой программы предполагается использовать возможности демонизации, то можно воспользоваться этой программой.

В alpine linux есть средства openrc для супервайзинга foreground-сервисов.

Description
No description provided
Readme 9.6 MiB
Languages
Go 94.8%
Makefile 4.8%
Shell 0.4%