zhivtone

module
v0.0.0-...-1788c2a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 8, 2023 License: MIT

README

Zhivtone — Пульс жизни

Zhivtone — проект кнопки "SOS" наоборот: пользователь в течении определённого времени уведомляет систему, что с ним всё хорошо, и если система не получает в течении некоторого времени отклика от пользователя, выполняются некоторые действия.

Установка

Примечание: в качестве ОС на сервере рекомендуется использовать Unix-подобные ОС, в частности GNU/Linux.

Сборка

Для сборки проекта Вам требуется компилятор для языка Go.

Этапы сборки:

  1. Скачать исходники и перейти в директорию с ними
  2. Создать директорию build в корне проекта и перейти в неё
  3. Последовательно скомпилировать компоненты из корня проекта srv/api, srv/actions_checker, srv/executor и (опционально) srv/webapp при помощи комманды go build. К примеру, для компиляции srv/api нужна следующая команда: go build ../srv/api".

У тех, у кого есть утилита make, можно скомпилировать при помощи команды из корня проекта make all все компоненты или make all-exclude-webapp для компиляции без компонента webapp

Конфигурация

Файл конфигурации пишется в формате TOML.

Примерный файл:

# ссылка для подключения к MongoDB с логином/паролем
db_url = "mongodb://name:p%40ssword@mongodb.url:27017/main"

[api]
# домен, на котором будет работать API-сервер
#
# также по-умолчанию используется сервером веб-приложения для
# общения с API-сервером
domain = "api.example.com"

# порт, на котором API-сервер будет слушать запросы
#
# также по-умолчанию используется сервером веб-приложения для
# общения с API-сервером
port   = 8181

# использовать ли tls (https)
#
# также по-умолчанию используется сервером веб-приложения для
# общения с API-сервером
use_tls = true

# сертификат для tls
cert_file = "./api_server.cert"

# ключ для tls
key_file = "./api_server.key"


[webapp]
# домен, на котором будет работать веб-приложение
domain         = "app.example.com"

# порт, используемый веб-приложением
port           = 80

# путь до ресурсов веб-приложения (папка /web в корне проекта), прямой
# или относительный
resources_path = "../web"

# разрешать ли самоподписанные сертификаты
# для API
allow_self_signed_api_cert = true

# использовать ли tls (https)
use_tls = true

# сертификат для tls
cert_file = "./webapp.cert"

# ключ для tls
key_file = "./webapp.key"

Примечания:

  • По-умолчанию файл конфигурации ищется в папке, из которой запускается файл, по имени config.toml, но его можно прямо указать с помощью флага --config
  • Сервер веб-приложения по-умолчанию использует путь до API из конфига (domain:port из секции api), но его можно указать отдельно при помощи флага --api-adress
  • Сервер веб-приложения по-умолчанию использует данные об использовании TLS API-сервером (use_tls из секции api), но можно заставить использовать TLS при помощи флага --api-tls
Интеграция с системой
actions_checker и executor

Для автоматического запуска actions_checker и executor при помощи cron можно написать подобную строчку в crontab:

0 */3 * * * $HOME/zhivtone/actions_checker 2>>qwe.log | $HOME/zhivtone/executor

Directories

Path Synopsis
internal
srv
api

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL