Initial commit
This commit is contained in:
57
README.md
Normal file
57
README.md
Normal file
@@ -0,0 +1,57 @@
|
||||
## 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](https://hjson.github.io), который допускает коментарии и
|
||||
некоторые другие вольности в форматировании 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**) и после этого сервис
|
||||
запускается командой:
|
||||
|
||||
```bash
|
||||
service aleesa-webapp-go start
|
||||
```
|
||||
|
||||
В автозагрузку его можно прописать через команду:
|
||||
|
||||
```bash
|
||||
rc-update add aleesa-misc-go default
|
||||
```
|
||||
|
||||
### Nota Bene
|
||||
|
||||
Go не поддерживает системный вызов fork() из-за чего демонизация программ на гошке средствами самой гошки - это в
|
||||
некотором роде проблема. Решается она с помощью утилиты [daemonize](https://github.com/bmc/daemonize).
|
||||
|
||||
Соответствено, если для запуска этой программы предполагается использовать возможности демонизации, то можно
|
||||
воспользоваться этой программой.
|
||||
|
||||
В alpine linux есть средства openrc для супервайзинга foreground-сервисов.
|
||||
Reference in New Issue
Block a user