THNX - Спасибо. Система донатов для авторов.
THNX - это серверная часть пет проекта Алексея Голобурдина.
Реализовано на базе Апостол CRM.
Мы используем OpenAPI для взаимодействия с Система донатов (THNX). Вы можете напрямую открыть пользовательский интерфейс Swagger через http://donate-system.ru/docs.
Кроме того, вы можете использовать любой клиент OpenAPI для импорта файла api.yaml из нашего репозитория (скачать).
Документация к REST API платформы Апостол CRM.
Документация к WebSocket API платформы Апостол CRM.
Вы можете собрать образ самостоятельно или получить уже готовый из докер-хаб:
docker build -t thnx .
docker pull apostoldevel/thnx
Если собрали самомтоятельно:
docker run -d -p 8080:8080 --rm --name thnx thnx
Если получили готовый образ:
docker run -d -p 8080:8080 --rm --name thnx apostoldevel/thnx
Swagger UI будет доступен по адресу http://localhost:8080/docs/ или http://host-ip:8080/docs/ в вашем браузере.
Для сборки проекта Вам потребуется:
- Компилятор C++;
- CMake или интегрированная среда разработки (IDE) с поддержкой CMake;
- Библиотека libpq-dev (libraries and headers for C language frontend development);
- Библиотека postgresql-server-dev-all (libraries and headers for C language backend development).
Для того чтобы установить компилятор C++ и необходимые библиотеки на Ubuntu выполните:
sudo apt-get install build-essential libssl-dev libcurl4-openssl-dev make cmake gcc g++
Подробное описание установки C++, CMake, IDE и иных компонентов необходимых для сборки проекта не входит в данное руководство.
Для того чтобы установить PostgreSQL воспользуйтесь инструкцией по этой ссылке.
Для того чтобы установить базу данных необходимо выполнить:
- Прописать наименование базы данных в файле db/sql/sets.conf (по умолчанию:
thanks
) - Прописать пароли для пользователей СУБД libpq-pgpass:
$ sudo -iu postgres -H vim .pgpass
*:*:*:kernel:kernel *:*:*:admin:admin *:*:*:daemon:daemon
- Указать в файле настроек /etc/postgresql/{version}/main/postgresql.conf:
Пути поиска схемы kernel:
search_path = '"$user", kernel, public' # schema names
- Указать в файле настроек /etc/postgresql/{version}/main/pg_hba.conf:
# TYPE DATABASE USER ADDRESS METHOD local all kernel md5 local all admin md5 local all daemon md5 host all kernel 127.0.0.1/32 md5 host all admin 127.0.0.1/32 md5 host all daemon 127.0.0.1/32 md5
- Выполнить:
$ cd db/ $ ./install.sh --make
Параметр --make
необходим для установки базы данных в первый раз. Далее установочный скрипт можно запускать или без параметров или с параметром --install
.
git clone https://github.com/apostoldevel/apostol-thanks.git
Далее:
- Настроить
CMakeLists.txt
(по необходимости); - Собрать и скомпилировать (см. ниже).
- Скачать THNX по ссылке;
- Распаковать;
- Настроить
CMakeLists.txt
(по необходимости); - Собрать и скомпилировать (см. ниже).
cd apostol-thanks
./configure
cd cmake-build-release
make
sudo make install
По умолчанию бинарный файл thnx
будет установлен в:
/usr/sbin
Файл конфигурации и необходимые для работы файлы, в зависимости от варианта установки, будут расположены в:
/etc/thnx
или
~/thnx
thnx
- это системная служба (демон) Linux.
Для управления thnx
используйте стандартные команды управления службами.
Для запуска thnx
выполните:
sudo systemctl start thnx
Для проверки статуса выполните:
sudo systemctl status thnx
Результат должен быть примерно таким:
● thnx.service - THNX - Donate System
Loaded: loaded (/etc/systemd/system/thnx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-05-27 13:41:41 MSK; 55s ago
Process: 420387 ExecStartPre=/usr/bin/rm -f /run/thnx.pid (code=exited, status=0/SUCCESS)
Process: 420388 ExecStartPre=/usr/sbin/thnx -t (code=exited, status=0/SUCCESS)
Process: 420389 ExecStart=/usr/sbin/thnx (code=exited, status=0/SUCCESS)
Main PID: 420390 (thnx)
Tasks: 5 (limit: 2364)
Memory: 5.8M
CPU: 579ms
CGroup: /system.slice/thnx.service
├─420390 thnx: master process /usr/sbin/thnx
├─420391 thnx: worker process ("websocket api", "application server", "authorization server", "web server")
├─420392 thnx: helper process ("pg fetch")
├─420393 thnx: message server
└─420394 thnx: task scheduler
Управлять thnx
можно с помощью сигналов.
Номер главного процесса по умолчанию записывается в файл /run/thnx.pid
.
Изменить имя этого файла можно при конфигурации сборки или же в thnx.conf
секция [daemon]
ключ pid
.
Главный процесс поддерживает следующие сигналы:
Сигнал | Действие |
---|---|
TERM, INT | быстрое завершение |
QUIT | плавное завершение |
HUP | изменение конфигурации, запуск новых рабочих процессов с новой конфигурацией, плавное завершение старых рабочих процессов |
WINCH | плавное завершение рабочих процессов |
Управлять рабочими процессами по отдельности не нужно. Тем не менее, они тоже поддерживают некоторые сигналы:
Сигнал | Действие |
---|---|
TERM, INT | быстрое завершение |
QUIT | плавное завершение |